Lernen am Beispiel: Metatag-Extension mittels T-Skript

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2005, 08:52

    Ich wurde in letzer Zeit öfter gefragt wie ich das mit meinen Metas handhabe und wie man per TS in die Datenbank zugreift, auch wurde mir oft berichtet das es für viele ein Problem dastellt das die Extension Metatags so aufgebaut ist das nur Administratoren die Metatags (vorallem für die Globalen des Auftritts) ändern können...

    Dieses Problem habe ich mir demnach selber folgendermaßen zusammengefasst:
    - User müssen Metas ändern können
    - Lösung in TS
    - Globale Metas falls User keine Metas angibt (am besten auch durch User änderbar)
    - Metas für jede Seite individuell
    - Irgendwas mit Datenbanken
    - Wenn möglich Aliases als Alternative erklären

    Und tatsächlich, nach kurzem überlegen fiel mir diese Lösung ein ;) :
    (schaut komplizierter aus wie es ist, die Muster wiederholen sich nämlich)

    1. temp.abstract = TEXT
    2. temp.abstract.data = DB:pages:containerseite:abstract
    3. temp.abstract.override {
    4. data = field:abstract
    5. }
    6. temp.abstract.wrap = <meta name="abstract" content="|" />
    7.  
    8. temp.keywords = TEXT
    9. temp.keywords.data = DB:pages:containerseite:keywords
    10. }
    11. temp.keywords.wrap = <meta name="keywords" content="|" />
    12.  
    13. temp.description = TEXT
    14. temp.description.data = DB:pages:containerseite:description
    15. temp.description.override {
    16. data = field:description
    17. }
    18. temp.description.wrap = <meta name="description" content="|" />
    19.  
    20. temp.author = TEXT
    21. temp.author.data = DB:pages:containerseite:author
    22. temp.author.override {
    23. data = field:author
    24. }
    25. temp.author.wrap = <meta name="author" content="|" />
    26.  
    27. temp.metas = COA
    28. temp.metas {
    29. 1 < temp.abstract
    30. 2 < temp.keywords
    31. 3 < temp.description
    32. 4 < temp.author
    33. }

    Kleiner Hinweiß:

    [b]containerseite[/b] ist ein Alias (das ist eine Art Benennung für eine Seite die dann Stat einer ID eingegeben werden kann!)

    Alle Felder die hier referenziert werden sind bei JEDER beliebigen Seite unter "Seite bearbeiten" zu finden! (auch Alias)

    Zum schluss noch zur Funktionsweise:

    1. # Deklariert "temp.description als TEXT"
    2. temp.description = TEXT
    3. # Startet eine Datenbankabfrage auf das Element Pages der Seite "containerseite" (wie schon erwähnt steht der Begriff für eine ID) genauergesagt auf das Datenfeld "description"
    4. temp.description.data = DB:pages:containerseite:description
    5. # Falls Lokale Metas vorhanden sind, werden die globalen Metas nun hier mit den lokalen der Seite überschrieben
    6. temp.description.override {
    7. data = field:description
    8. }

    Ich hoffe ich konnte hier ein wenig Erfahrung mit TS, Datenbankabfrage u.ä. vermitteln und dabei dazu beitragen das zukünftig öfters Aliases verwendet (was mir viel Arbeit mit Portierungen von Typo3-ID-Configurationen ersparen würde)

    MFG Proximo


  • 1
  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2005, 10:06

    Kein Comment? Zu kompliziert? Oder eh schon klar? :o


  • 0 x
    13. 07. 2005, 10:21

    super Sache :) Bis auf das mit dem "containerseite" kams mir schon bekannt vor sh. http://www.typo3.net/forum/list/list_post//26016/
    Mit dem Alias ist eine witzige Sache, das werd ich auf alle Fälle mal testen. Immer gut, hier im Forum, wenn sich jemand mal die Mühe für ein Mini-Tutorial macht!

    Viele Grüße!
    Niki

  • Proximo Proximo
    Jedi-Ratsmitglied
    0 x
    563 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2005, 10:41

    Danke das gibt mir wenigstens Kraft für das nächste Mini-Tut ;)

    MFG Proximo

    EDIT: Is mir garnicht aufgefallen das ich das schonmal präsentiert habe ;) aber so wird es wenigstens mal wieder gesehen *g* (ich hab einen großen Pool Codes und versuch sie dann und wann im Forum "unterzubringen", ich möchte aber erwähnen das diese Codes alle von mir persönlich stammen und niemals 1:1 von anderen kopiert werden^^)

  • 1