[Frage] tx_news: Erweiterung der Detail.html view mit Markern [Gelöst] TYPO3-Version: 6.2.7

  • Phigiro Phigiro
    Padawan
    0 x
    39 Beiträge
    0 Hilfreiche Beiträge
    09. 06. 2015, 11:38

    Hallo zusammen,

    und nochmal brauche ich eure Hilfe. :-)

    Ich versuche das mal zu beschreiben.

    Für tx_news habe ich ein NewsDetail-Template mit nur einem Marker erstellt, nämlich: ###hauptinhalt###.
    Dieses Template wird als Erweiterungstemplate in der Artikel-Detail Seite, die ich für tx_news angelegt habe eingebunden.
    Wenn ich dies nun starte, bekomme ich wie gewünscht nach Klick auf einen Artikel nur die Ausgabe der \Resources\Private\Templates\News\Detail.html

    Jetzt möchte ich die \Resources\Private\Templates\News\Detail.html erweitern um Teile eines anderen Templates, welches Marker enthält, die über das setup der Root-Page angesprochen werden, z.B. die Hauptnavigation.

    Wenn ich nun auf den Artikel klicke, erhalte ich die Ausgabe der \Resources\Private\Templates\News\Detail.html plus dem Template-Teilen. Allerdings werden die dort enthaltenen Marker nun nicht mehr angesprochen, sondern mit ###Marker### ausgegeben.

    Mir ist schon fast klar warum, da das NewsDetail-Template ja auch page.10.template.file überschreibt und dort gibt es ja nur den Marker ###hauptinhalt###. Die anderen Marker werden ja quasi darüber mit eingepflegt.

    Gibt es einen Weg diese darin wieder anzusprechen?

    Warum ich das möchte ist recht einfach. Das Teaserbild der News-Artikel soll zusätzlich an den Kopf der Seite.

    DANKE schon mal! :-)

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    10. 06. 2015, 08:41 - Lösung

    Dann schau dir deinen geposteten TS-Code noch mal genauer an und such nach weiteren Unterschieden,
    die gibt es nämlich.

    So sollte es gehen:

    1. page.10.marks.artikelteaser = RECORDS
    2. page.10.marks.artikelteaser {
    3. dontCheckPid = 1
    4. tables = tx_news_domain_model_news
    5. source.data = GP:tx_news_pi1|news
    6. source.intval = 1
    7. conf.tx_news_domain_model_news = TEXT
    8. conf.tx_news_domain_model_news {
    9. field = teaser
    10. }
    11. wrap = |
    12. }

    Es ist immer eine gute Idee,
    mit reduziertem Code zu beginnen und auf wrap, htmlSpecialChars usw. erstmal zu verzichten,
    bis man sicher ist,
    daß ein richtiges Ergebnis geliefert wird.
    Verfeinern kann man dann später.


  • 1
  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    09. 06. 2015, 15:27

    Zitiert von: Phigiro

    Das Teaserbild der News-Artikel soll zusätzlich an den Kopf der Seite.

    Dann mach das doch mit Javascript, mit jQuery wären das 1-2 Zeilen Code...

  • Phigiro Phigiro
    Padawan
    0 x
    39 Beiträge
    0 Hilfreiche Beiträge
    10. 06. 2015, 07:57

    Guten Morgen,

    ich glaube ich habe da ein wenig zu kompliziert gedacht.

    Nun habe ich einen sehr viel einfacheren Weg über Typoscript gefunden.
    In dem Erweiterungs-Template auf der Artikel-Detail Seite binde ich mein News-Detail-Template ein und spreche die Marker für Bild, Titel und Teaser wie unten eingefügt an.

    Allerdings verstehe ich nicht wirklich was ich da tue und wäre über eine Erklärung glücklich, da ich es gern verstehen würde und es nicht schaffe den Teaser auf diesem Weg zu ziehen.

    Ich habe in news/classes/domain/model/news.php und in der DB-Tabelle tx_news_domain_model_news nachgesehen, das Feld heißt teaser, nur wenn ich (im eingefügten Code-Block ganz unten) das als field = teaser belege statt field = titel passiert nichts.

    Vielleicht kann mir dabei ja noch jemand helfen, hier der Code ...

    1. [globalVar = GP:tx_news_pi1|news >0]
    2. page.10.marks.artikelbild = RECORDS
    3. page.10.marks.artikelbild {
    4. dontCheckPid = 1
    5. tables = tx_news_domain_model_news
    6. source.data = GP:tx_news_pi1|news
    7. source.intval = 1
    8. conf.tx_news_domain_model_news = FILES
    9. conf.tx_news_domain_model_news {
    10. references {
    11. table = tx_news_domain_model_news
    12. fieldName = fal_media
    13. uid.field = uid
    14. }
    15. begin = 0
    16. renderObj = IMG_RESOURCE
    17. renderObj.file {
    18. maxW = 1200
    19. import.data = file:current:publicUrl
    20. treatIdAsReference = 1
    21. }
    22. }
    23. wrap = <img src="|" />
    24. }
    25.  
    26. page.10.marks.artikeltitel = RECORDS
    27. page.10.marks.artikeltitel {
    28. dontCheckPid = 1
    29. tables = tx_news_domain_model_news
    30. source.data = GP:tx_news_pi1|news
    31. source.intval = 1
    32. conf.tx_news_domain_model_news = TEXT
    33. conf.tx_news_domain_model_news {
    34. field = title
    35. }
    36. wrap = <h1>|</h1>
    37. }
    38.  
    39. page.10.marks.artikelteaser = RECORDS
    40. page.10.marks.artikelteaser {
    41. dontCheckPid = 1
    42. tables = tx_news_domain_model_news
    43. source.data = GP:tx_news_pi1|news
    44. source.intval = 1
    45. conf.tx_news_domain_model_news = TEXT
    46. conf.tx_news_domain_model_news {
    47. references {
    48. table = tx_news_domain_model_news
    49. fieldName = teaser
    50. }
    51. }
    52. wrap = <p>|</p>
    53. }
    54.  
    55. [end]

    ... und DANKE schon mal.

    @Flash: an jQuery hatte ich auch schon gedacht, das wäre mein Plan B gewesen, ich will aber eine Typo3 Lösung. ;-)

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    10. 06. 2015, 08:41

    Dann schau dir deinen geposteten TS-Code noch mal genauer an und such nach weiteren Unterschieden,
    die gibt es nämlich.

    So sollte es gehen:

    1. page.10.marks.artikelteaser = RECORDS
    2. page.10.marks.artikelteaser {
    3. dontCheckPid = 1
    4. tables = tx_news_domain_model_news
    5. source.data = GP:tx_news_pi1|news
    6. source.intval = 1
    7. conf.tx_news_domain_model_news = TEXT
    8. conf.tx_news_domain_model_news {
    9. field = teaser
    10. }
    11. wrap = |
    12. }

    Es ist immer eine gute Idee,
    mit reduziertem Code zu beginnen und auf wrap, htmlSpecialChars usw. erstmal zu verzichten,
    bis man sicher ist,
    daß ein richtiges Ergebnis geliefert wird.
    Verfeinern kann man dann später.

  • Phigiro Phigiro
    Padawan
    0 x
    39 Beiträge
    0 Hilfreiche Beiträge
    12. 06. 2015, 09:02

    Hey Jenses,

    danke, das hat geklappt!

    Eine Frage hätte ich dazu aber noch.
    Ich erzeuge doch tables = tx_news_domain_model_news

    Warum heißt es dann nicht conf.tables = TEXT ... ?

  • 1