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)
temp.abstract = TEXT
temp.abstract.data = DB:pages:containerseite:abstract
temp.abstract.override {
required = 1
data = field:abstract
}
temp.abstract.wrap = <meta name="abstract" content="|" />
temp.keywords = TEXT
temp.keywords.data = DB:pages:containerseite:keywords
temp.keywords.override {
required = 1
data = field:keywords
}
temp.keywords.wrap = <meta name="keywords" content="|" />
temp.description = TEXT
temp.description.data = DB:pages:containerseite:description
temp.description.override {
required = 1
data = field:description
}
temp.description.wrap = <meta name="description" content="|" />
temp.author = TEXT
temp.author.data = DB:pages:containerseite:author
temp.author.override {
required = 1
data = field:author
}
temp.author.wrap = <meta name="author" content="|" />
temp.metas = COA
temp.metas {
1 < temp.abstract
2 < temp.keywords
3 < temp.description
4 < temp.author
}
Kleiner Hinweiß:
containerseite 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:
# Deklariert "temp.description als TEXT"
temp.description = TEXT
# 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"
temp.description.data = DB:pages:containerseite:description
# Falls Lokale Metas vorhanden sind, werden die globalen Metas nun hier mit den lokalen der Seite überschrieben
temp.description.override {
required = 1
data = field:description
}
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