Seit 4.8 wird mit Contenido ein Plugin installiert, dass automatisch Werte für Metatags generieren kann, für die in den Artikeleigenschaften keine Werte angegeben wurden. Das Plugin liegt unter contenido/plugins/chains/include/include.chain.content.createmetatags.php.
Was wird erzeugt?
Es werden nur Werte für Metatags erstellt, für die der Benutzer keine Werte in den Artikeleigenschaften eingetragen hat. Die Felder in den Artikeleingenschaften bleiben dabei aber leer. Die Ausgabe erfolgt nur im Quellcode im Frontend. Hier die Übersicht der unterstüzten Metatags und der verwendeten Werte:
author
Name des Benutzers, der den Artikel zuletzt bearbeitet hat. Nicht der Name des Benutzers der den Artikel erstellt hat.
date
Das Datum der letzten Artikeländerung
description
Die ersten 100 Zeichen einer Artikelheadline (CMS_HEAD[x] oder CMS_HTMLHEAD[x]). Welche Headline verwendet wird scheint Zufall zu sein. Ist im Code zumindest nicht genau definiert.
keywords
Die häufigsten Wörter über 4 Zeichen Länge, die in allen Artikeltexten vorkommen (CMS_HTML[X] und CMS_TEXT[x])
revisit-after, robots, expires
Für diese Tags werden als Standard die Werte der Mandantenstartseite verwendet. D.h. des Artikels, der erscheint wenn man front_content.php ohne Parameter aufruft.
Cache
Da das generieren der Tags verhältnissmäßig aufwändig ist, werden die erzeugen Werte der Metatags gechached unter /cms/cache/metatag_(MD5).tmp. Der Cache umfasst die Werte aller Metatags (auch der manuell eigegebenen) und hält eine Stunde. Wenn also Änderungen an den Metatags in den Artikeleigenschaften vorgenommen werden kann es bis zu einer Stunde dauern, bis diese Änderungen auch im Frontend im Quellcode sichtbar werden.
Encoding
In 4.8.4 hat das Plugin Probleme mit nichtdeutschen Umlauten und Akzenten. Buchstaben wie è oder î werden einfach weggelassen. Das Problem kann umgangen werden, indem in contenido/plugins/repository/keyword_density.php Zeile 17
Code: Alles auswählen
$tmp[$i] = preg_replace($patterns, $replaces, $tmp[$i]);
Kompatibilität mit anderen Metatag-Plugins
Sollten bei bestehenden Webseiten bereits andere Plugins zur Bearbeitung der Metatags eingesetzt werden (z.B. PSMetaTags) kann es zu Konflikten kommen, weil ein Plugin die Änderungen des anderen überschreibt. Die Ladereihenfolge in Contenido-Chains ist leider nicht sehr sauber programmiert, d.h. es ist nicht endeutig festgelegt in welcher Reihenfolge Plugins in derselben Chain abgearbeitet werden. Eine gewisse Sortierung kann man durch gegenseitiges includieren der config.plugin.php -Dateien erreichen. Im Zweifelsfall nicht benötigte Plugins einfach abschalten.
HowTos
Wie kann ich das Plugin abschalten?
contenido/plugins/chains/includes/config.plugin.php Zeile 12
Code: Alles auswählen
$_cecRegistry->addChainFunction("Contenido.Content.CreateMetatags", "cecCreateMetatags");
Wie kann ich die Cache-zeit verändern?
contenido/plugins/chains/includes/include.chain.contents.createmetatags.php Zeile 25
Code: Alles auswählen
$cachetime = 3600; // measured in seconds
Die generierung der Werte läuft in contenido/plugins/chains/includes/include.chain.contents.createmetatags.php zwischen Zeile 172 und 219 ab. Für die Bearbeitung sind PHP-Kentnisse erforderlich.
Es ist warscheinlich sinnvoller, wenn auch aufwändiger ein neues Plugin zu schreiben, das die Metatags nach den eigenen Bedürfnissen anpasst, denn sämtliche Änderungen an include.chain.contents.createmetatags.php werden bei einem Update gelöscht.
offenen Fragen
Zu denen ich beizeiten etwas schreiben möchte. Jeder ist gerne willkommen beizutragen.
Wie kann ich verhindern, dass leere Metatags angezeigt werden?
Changelog
11.06.08: Schriftgrößen zur besseren Übersicht angepasst.