Aktuelle Jahreszahl in Überschrift [Gelöst]

  • Meischel Meischel
    T3PO
    0 x
    12 Beiträge
    0 Hilfreiche Beiträge
    25. 03. 2009, 11:29

    Hallo,

    bei einem Typo3-Projekt habe ich auf mehreren Seiten ein Contentelement vom Typ "Standardtext". Diese Contentelemente haben immer eine Überschrift wie folgt "Referenzen 1983 - 2009".

    Ich hätte nun gerne, dass die 2009 immer durch die aktuelle Jahreszahl ersetzt wird. Haupsächlich um zu vermeiden, dass es halt auf einer Seite vergessen wird, wenn ein neues Jahr anbricht. Der Kunde hätte die Jahreszahl gerne immer aktuell auch wenn sich an den Referenzen nichts ändert.

    Ich habe schon mehrere Stunden gegoogelt und finde einfach keinen Lösungsansatz. Ist das überhaupt möglich oder stehe ich z.Z. nur ganz furchtbar auf dem Schlauch?

    Gruß
    Meischel


  • 1
  • 0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    25. 03. 2009, 20:38

    ja hallo erstmal...

    der einfachste weg wär, das über constants lösen. ins TS setup einfach irgendwo z.b.:

    [TS]constants.JAHR = 2009[/TS]

    eintragen, dann wir der entrspechende marker [b]###JAHR###[/b] im RTE eingegeben, im text nachher als [b]2009[/b] erscheinen. das funktioniert leider nur für text aus dem RTE... aber man kann ja die passende überschrift auch ebendort einfügen.

    ansonsten können natürlich auch extensions wie z.b. contagged u.a. sowas übernehmen.

    [b]EDIT:.... aber letztenendes hats mir ja dann doch keine ruhe gelassen #giggle# [/b]

    also man kann das natürlich auch komplett mit TS lösen:

    Schritt 1 - wir bauen uns ein jahr:
    [TS]temp {

    JAHR = TEXT
    JAHR.data = date:U
    JAHR.strftime = %Y
    }
    [/TS]
    Schritt 2 - wir holen uns den content und jagen ihn durch ein template:
    [TS]temp {
    MYCONTENT < styles.content.get
    CONTENTREPLACED = TEMPLATE
    CONTENTREPLACED {
    template < temp.MYCONTENT
    marks {
    JAHR < temp.JAHR
    }
    }

    }[/TS]
    Schritt 3 - den inhalt dann ins endgültige template schicken, z.b. so:
    [TS]page.10 = TEMPLATE
    page.10 {

    template = FILE
    template.file = your template file
    workOnSubpart = YOURMAINSUBPART

    ### hier einfach den replaceten content in den subpart packen
    ### wo sonst auch der content reinkommt
    subparts.MYCONTENT < temp.CONTENTREPLACED
    }[/TS]

    dann klappts auch mit headern etc. und natürlich auch innerhalb von RTE content. überall wo dann ###JAHR### drin steht wird dann das aktuelle jahr ausgegeben.
    schritt 2 und 3 muss man wohlgemerkt natürlich für den content der einzelnen spalten, so er denn in verschiedenen subparts im haupttemplate landet, separat durchführen.

    greetz, iggy :)

  • Meischel Meischel
    T3PO
    0 x
    12 Beiträge
    0 Hilfreiche Beiträge
    26. 03. 2009, 08:04

    Hallo sensomedia,

    vielen Dank für deine ausführliche Erklärung. Ich habe nur ein kleines Problem.

    In meiner lokalen Testinstallation (Typoversion: 4.2.1) funktioniert das wunderbar, nur auf dem Kundenserver (Typoversion: 4.1.6) wird der Platzhalter einfach nicht ersetzt.

    Gibt es da eine Option, die man setzen muss, damit Platzhalter im "RTE content" ersetzt werden? Ich glaube nämlich nicht, dass es an der Version liegt.

    PS: Die Marker im Template funktionieren ohne Probleme, nur die Marker im "RTE content" werden nicht ersetzt.

    Gruß und nochmals Danke

    Meischel

  • 0 x
    29 Beiträge
    0 Hilfreiche Beiträge
    26. 03. 2009, 14:28

    jo ez, gerne :)

    ... aber ehrlichgestanden bin ich bislang noch nicht in die verlegenheit gekommen marker in content elementen überhaupt zu verwenden, also selten ma ne constants, und so hab mir vorhin quasi ad hoc überlegt wies gehen könnte und das hat dann auch so funktioniert :D
    hab hier auch keine 4.1er version mehr am start grad, da ich zum glück auch schon alle ausser einen 3.8er kunden auf 4.2 hieven konnte... von daher kann ich das leider auch nicht spontan nachvollziehen...

    probier doch ma ob dort überhaupt das temp.JAHR objekt da reinkommt. also statt:
    [TS]CONTENTREPLACED {
    template < temp.MYCONTENT
    marks {
    JAHR < temp.JAHR
    }
    }
    [/TS]

    mal sowas:
    [TS]CONTENTREPLACED {
    template < temp.MYCONTENT
    marks {
    JAHR = TEXT
    JAHR.value = blabla
    }
    }
    [/TS]

    und schau ob das ankommt. ansonsten bin ich clueless... o.O

    cheers, iggy

  • 0 x
    64 Beiträge
    0 Hilfreiche Beiträge
    26. 03. 2009, 21:58

    Hallo Meischel,

    wenn du es noch dynamischer magst, habe ich dir eine andere Lösung. Damit kann sogar der Kunde einfach die Art der Überschrift ändern, wenn er die aktuelle Jahreszahl an den Titel anhängen möchte.

    Dafür benutze ich das Überschriften-Layout "Layout 5", das sowieso fast nie genutzt wird (korrigiere mich, wenn ich falsch liege). Wählt der Kunde dieses Layout, so wird der Überschrift automatisch das aktuelle Jahr angehängt.

    Dazu musst auf deiner Hauptseite (erste Seite unterhalb der Weltkugel) in die Seiteneigenschaften und im Feld "TSconfig" im Tab "Options" folgenden Text einfügen:

    [TS]TCEFORM.tt_content.header_layout.altLabels.5 = Header with current Year
    [/TS]

    Du kannst das Layout gerne auch anders nennen.

    Anschließend fügst du folgende Zeilen möglichst weit Oben im "Setup-Feld" deiner TypoScript-Konfiguration ein:

    [TS]## Add current Year to header layout 5
    lib.stdheader.5 = COA
    lib.stdheader.5 {
    wrap = <h1>|</h1>

    10 = TEXT
    10.field = header

    20 = TEXT
    20 {
    data = date:U
    strftime = %Y
    wrap = & nbsp;1983& nbsp;-& nbsp;|
    }
    }
    [/TS]

    Bitte achte darauf, dass ich für die Darstellung hier die HTML-Codes für Leerzeichen trennen musste: "[b]& nbsp;[/b]" (einfach das Leerzeichen dazwischen entfernen)

    Wenn du jetzt den Cache leerst und deinen Datensatz öffnest, hast du unter der Überschrift ein Feld "Type". Das ist nicht neu, aber der Inhalt hat sich geändert. Du findest dort nun statt "Layout 5" "Header with current Year ". Wenn du dieses Layout für deine Überschrift wählst, den Datensatz speicherst und ihn im Frontend anschaust, wird ihm das Jahr angehängt.

    Du kannst gerne auch den "wrap" anpassen, falls du die Überschrift nicht mit <h1> ausgeben möchtest.

  • Meischel Meischel
    T3PO
    0 x
    12 Beiträge
    0 Hilfreiche Beiträge
    27. 03. 2009, 08:46

    Danke an alle die sich mit dem Thema beschäfftigt haben und mir Lösungsvorschläge angeboten haben.

    Das funktioniert nun wie gewollt. Das Problem mit der Version 4.1.6 auf dem Kundenserver hat sich auch gelöst. Wenn man zu blöd ist "constants" richtig zuschreiben, kann Typo3 auch nicht richtig funktionieren. Ich hatte das 2. t vergessen. Schande über mich.

    Nochmals Danke.

    Meischel

  • 1