Ergebnis 1 bis 6 von 6

Thema: [ToDo] [TUTORIAL] Multitemplating mit tt_news

  1. #1
    Benutzer
    Registriert seit
    01.09.2007
    Beiträge
    36

    [ToDo] [TUTORIAL] Multitemplating mit tt_news

    hi,

    vorweg, ich arbeite mit TYPO3 4.1.2 und der TV Version 2.0.9 von YAML

    diejenigen, die mit tt_news arbeiten haben vielleicht das selbe problem, welches ich hatte.
    Es geht darum auf mehreren Seiten, welche die News Extension tt_news beinhalten,
    unterschiedliche HTML Templates zu definieren. tt_news bietet von haus aus nur die Möglichkeit
    ein einziges HTML Template global per CONSTANTS zu definieren. Möchte man ein weiteres HTML
    Template definieren, muss man dies direkt im Contentelement unter dem Reiter "Template" einfügen.

    Der Nachteil:
    • man muss es mehrmals definieren, unzwar für jede Ansicht einzeln (Single, List, etc).
      Bei mehreren Seiten ein ziemlicher aufwand
    • bei jeder Definition wird die Originaldatei in das Verzeichnis "uploads/tx_ttnews/" kopiert. hat man
      mehrere Seiten welche das gleiche HTML Template nutzen wird die datei trotzdem mehrmals kopiert
      (template.html, template_01.html, template_02.html, ect)
    • unnötige dateivervielfältigung und speicherverschwendung. (fragen wie "welche datei muss ich nun
      editieren, wenn ich eine änderung des layouts vornehmen muss?" tauchen schnell auf)

    Da ich das persönlich ziemlich nervig finde, hab ich mir ne lösung programmiert. Ich habe eine kleine
    TypoSript Extension geschrieben, mit der man über den Constant Editor die HTML Dateien auswählen
    kann und jedem HTML Template eine Liste an PIDs geben kann, in der dieses HTML Template genutzt
    werden soll.

    Man erstellt zuerst ein Extension TS Template im "General Storage" SysFolder (meine heißt "+ext tt_news")
    im Constants Editor folgendes eintragen
    Code:
    TSConstantEditor.tt_news-HTML-Templates {
     header = HTML Templates for News Extension
     description = Dies ist eine kleine Erweiterung für die News Extension, mit der man bequem mehrere HTML Tempates für unterschiedliche Bereiche der Website angeben kann.
     1 = FirstHtmlTemplate, SecondHtmlTemplate, ThirdHtmlTemplate, FourthHtmlTemplate
     2 = PIDListFirstTemplate, PIDListSecondTemplate, PIDListThirdTemplate, PIDListFourthTemplate
    }
    
    # cat=tt_news-HTML-Templates/file/a; type=string; label= First HTML-Template File
    FirstHtmlTemplate = EXT:tt_news/pi/tt_news_v2_template.html
    # cat=tt_news-HTML-Templates/file/b; type=string; label= Second HTML-Template File
    SecondHtmlTemplate = EXT:tt_news/pi/tt_news_v2_template.html
    # cat=tt_news-HTML-Templates/file/c; type=string; label= Third HTML-Template File
    ThirdHtmlTemplate = EXT:tt_news/pi/tt_news_v2_template.html
    # cat=tt_news-HTML-Templates/file/d; type=string; label= Fourth HTML-Template File
    FourthHtmlTemplate = EXT:tt_news/pi/tt_news_v2_template.html
    
    # cat=tt_news-HTML-Templates/pid/a; type=string; label= PID of first HTML-Template:enter PID (or comma separated list of PIDs) where first template should be used
    PIDListFirstTemplate = 0
    # cat=tt_news-HTML-Templates/pid/b; type=string; label= PID of second HTML-Template:enter PID (or comma separated list of PIDs) where second template should be used
    PIDListSecondTemplate = 0
    # cat=tt_news-HTML-Templates/pid/c; type=string; label= PID of third HTML-Template:enter PID (or comma separated list of PIDs) where third template should be used
    PIDListThirdTemplate = 0
    # cat=tt_news-HTML-Templates/pid/d; type=string; label= PID of fourth HTML-Template:enter PID (or comma separated list of PIDs) where fourth template should be used
    PIDListFourthTemplate = 0
    Nun muss man dies im RootTemplate noch referenzieren:
    Modul Template -> Rootpage anklicken -> "Click here to edit whole template record" anklicken ->
    bei "Include basis template:" das erstellte Ext.Template eintragen.

    Im "Setup" Field folgendes eintragen (am besten da, wo auch der Rest zu tt_news steht):
    Code:
    [PIDinRootline = {$PIDListFirstTemplate}]
    plugin.tt_news.templateFile = {$FirstHtmlTemplate}
    [global]
    
    [PIDinRootline = {$PIDListSecondTemplate}]
    plugin.tt_news.templateFile = {$SecondHtmlTemplate}
    [global]
    
    [PIDinRootline = {$PIDListThirdTemplate}]
    plugin.tt_news.templateFile = {$ThridHtmlTemplate}
    [global]
    
    [PIDinRootline = {$PIDListFourthTemplate}]
    plugin.tt_news.templateFile = {$FourthHtmlTemplate}
    [global]
    "Speichern & Schließen" anklicken.

    Rechts oben den "Constant Editor" auswählen. Im Pulldown Menu sollte der Eintrag
    "TT_NEWS-HTML-TEMPLATES ( 8 )" erscheinen. Diesen auswählen.

    Um das ganze zu testen, sollte man den Original "templateFile" Eintrag der tt_news
    Extension löschen (also in der tt_news Extension kein html template auswählen).
    Auch kontrollieren, dass in den einzelnen ContentElementen kein html template
    referenziert ist.

    Nun können wir für den ersten Eintrag "FirstHtmlTemplate" meiner kleinen TypoScript
    Extension ein HTML Template auswählen. Im unteren Bereich muss man nun die PID
    angeben "PIDListFirstTemplate", auf welcher das gewählte HTML Template angewendet
    werden soll. Möchte man mehrere Seiten angeben, dann die PIDs durch ein Komma
    trennen. Bei verschachtelten Seitenstrukturen muss nur die PID der Seite der ersten
    Ebene angeben werden.

    Hat man nun einen anderen Bereich der Website auf der ebenfalls die tt_news Extension
    eingesetzt wird, jedoch ein anderes HTML Template erhalten soll, kann man im Feld
    "SecondHtmlTemplate" das zweite HTML Template und im Feld "PIDListSecondTemplate"
    die PID der dazugehörigen Seite eintragen.

    Das wars. Mehr muss nicht getan werden. Sollten einem die vier Eingabemöglichkeiten nicht
    ausreichen, dann kann es natürlich erweitert werden.

    Ich hoffe es ist alles verständlich und nachvollziehbar geschrieben.
    Ich wünsche allen ein besseres Arbeiten und viel Spaß mit meiner TS Extension :)


    PS: Cache löschen nicht vergessen ;)

  2. #2
    Erfahrener Benutzer
    Registriert seit
    17.03.2006
    Beiträge
    1.780

    Re: [TUTORIAL] Multitemplating mit tt_news

    Hallo,

    herzlichen Dank. So macht das Spaß... Es wäre phantastisch, wenn auch noch andere sich dazu aufraffen könnten, Ihre eigenen Erweiterungen auf diese Weise dem Rest der Welt zu zeigen.

    Ich habe das jetzt zwar nur überflogen, es sieht aber gut aus und ich werde es (natürlich nur wenn Du zustimmst) in die kommende Version (mit Hinweis auf Dich) einbauen.

    Viele Grüße

  3. #3
    Benutzer
    Registriert seit
    01.09.2007
    Beiträge
    36

    Re: [TUTORIAL] Multitemplating mit tt_news

    Zitat Zitat von db
    Hallo,

    herzlichen Dank. So macht das Spaß... Es wäre phantastisch, wenn auch noch andere sich dazu aufraffen könnten, Ihre eigenen Erweiterungen auf diese Weise dem Rest der Welt zu zeigen.

    Ich habe das jetzt zwar nur überflogen, es sieht aber gut aus und ich werde es (natürlich nur wenn Du zustimmst) in die kommende Version (mit Hinweis auf Dich) einbauen.

    Viele Grüße
    hi,
    wow, das wär natürlich absolut cool, wenn ihr das übernehmen würdet ... also meinen segen hast du :)
    Es lassen sich bestimmt noch weitere Einstellungsmöglichkeiten wie z.b. die PID der SingleView Page und
    Back PID jeweils für jedes HTML Template einrichten. ich wollte jetzt jedoch nicht alle Konfigurationen
    aus der tt_news übernehmen und hab mich auf das wichtigste beschränkt. Wenn ihr dass aber weiter
    ausbauen möchet hätte ich nix dagegen ;)

    und vielleicht kann man das ganze dann besser "zusammenfassen" sollten es doch mehr optionen werden.
    Aber da hast du sicher mehr erfahrung als ich wie man das am besten angeht :D

  4. #4
    Erfahrener Benutzer
    Registriert seit
    07.06.2007
    Beiträge
    130

    Re: [TUTORIAL] Multitemplating mit tt_news

    ja danke für Deine Tut hier, ich werde es die Tage mal einbauen, da ich es gebrauchen kann.
    in Besitz des Buches CSS-Layouts von Dirk Jesse | Lizens für Yaml und Typo3template |

  5. #5
    Neuer Benutzer
    Registriert seit
    28.09.2007
    Beiträge
    1

    Re: [ToDo] [TUTORIAL] Multitemplating mit tt_news

    hallo rony,

    ich habe das problem, dass ich mehrere tt_news plugins auf einer seite habe und jeweils ein anderes template benutzen möchte.
    soweit ich dein tut verstehe ist es dafür gedacht, wenn du mehrere plugins auf mehreren seiten hast.

    hast du eine idee, wie ich mein problem lösen könnte?
    ich möchte ungern über den reiter template die datei angeben, weil das unpraktisch ist und jede menge template dateien in upload/tt_news landen.

    viele grüße,
    michael

  6. #6
    Benutzer
    Registriert seit
    01.09.2007
    Beiträge
    36

    Re: [ToDo] [TUTORIAL] Multitemplating mit tt_news

    Zitat Zitat von spud
    hallo rony,

    ich habe das problem, dass ich mehrere tt_news plugins auf einer seite habe und jeweils ein anderes template benutzen möchte.
    soweit ich dein tut verstehe ist es dafür gedacht, wenn du mehrere plugins auf mehreren seiten hast.

    hast du eine idee, wie ich mein problem lösen könnte?
    ich möchte ungern über den reiter template die datei angeben, weil das unpraktisch ist und jede menge template dateien in upload/tt_news landen.

    viele grüße,
    michael
    hi,
    hmm ... das wäre dann mit meiner lösung nicht machbar. Ich wüsste jetzt leider auch nicht, wie man das am besten lösen könnte. :-[ Ich wüsste jetzt nicht wie man einzelne ContentElemente direkt per TS anspricht (sofern das überhaupt sinn macht. wenn du ein Contentelement verschiebst/löschst musst du das TS auch anpassen, wäre also eine etwas starre lösung).

    Was du vielleicht machen könntest wäre folgendes: du erstellst mehrere Subpages zu deiner eigentlichen NewsSeite und blendest die Subpages in der Navigation aus (Seitentyp "Not in menu" wählen). Dann verteilst du sämtliche Newselemente der NewsSeite auf die Unterseiten und gibts jeder Seite ein eigenes HTML Template über meine oben stehende Lösung. Nun sollte auf der eigentlichen NewsSeite kein Newsplugin mehr vorhanden sein. Per TS sagst du jetzt, dass du auf der NewsSeite (welche jetzt leer ist) die Inhalte der Unterseiten anzeigen werden sollen.

    Was ich gerade versucht habe zu beschreiben ist analog schon in den Seiteneigenschaften einer Seite vorhanden. Unzwar, wenn du den Seitentyp auf "Advanced" stellst, sollte es ein Feld namens "Show content from this page instead:" geben. Genau das gleiche sollst du auch machen, nur eben per TS weil es nicht nur um eine Seite sondern mehrere Seiten geht, deren Content auf der NewsSeite vereint gezeigt werden sollen.

    Ich kann dir aber nicht versichern ob dich das weiterbringt. War nur so eine Idee. Vielleicht probierst du es einfach aus und gibts bescheid wies gelaufen ist. :)

Ähnliche Themen

  1. Externe Textfragmente einbinden
    Von Vince_Vega im Forum Joomla
    Antworten: 2
    Letzter Beitrag: 28.07.2007, 21:04

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein