News mit Google-konformer RealURL unter TYPO3
Das tolle an TYPO3 ist, dass es sehr fexibel. Doch nicht immer sind alle Kniffe und Tricks bekannt, um das Gewünschte zu erzielen.
Eine der wenigen Herausforderungen ist es, das bekannte tt_news- Modul zusammen mit RealUrl in eine Google-konforme URL umzugestalten.
Die Verwendung von tt_news ohne RealURL sieht wie folgt aus:
tx_ttnews[tt_news]=101&tx_ttnews[backPid]=13&cHash=e525dc45cc
Mit aktiven RealUrl sieht es schon besser aus:
/datum/2006/09/14/news-fuer-google/
Diese Formatierung reicht in der Regel auch vollkommen aus, beinhaltet jedoch einige für Google unnötig tiefe Verzeichnisstrukturen.
Unabhängig dessen, beschreiben die Regeln von Google zur Aufnahme der eigenen Inhalte in Google-News folgendes:
- Die URL muss für jeden News einmalig sein
- Eine jede URL muss eine mindestens dreistellige und einmalige Zahl besitzen
Damit wird die Standard-Formatierung von RealUrl unbrauchbar, denn das Jahr als eine einmalige Zahl zu nutzen entfällt hierfür.
Mit TypoScript beginnen
Mit dieser Einstellungen entfernen wir die Datums-Informationen in der URL und mit dem passenden RealURL-Konfigurationen sieht die URL dann wie folgt aus: /details/news-fuer-google/
plugin.tt_news.useHRDatesSingle = 0
plugin.tt_news.useHRDatesSingleWithoutDay = 0
plugin.tt_news.dontUseBackPid = 1
plugin.tt_news.useHRDates = 0
Die passende RealURL konfiguration ohne Datums-Parameter würde dann wie folgt aussehen:
'postVarSets' => array(
'_DEFAULT' => array (
'details' => array(
array(
'GETvar' => 'tx_ttnews[tt_news]',
'lookUpTable' => array(
'table' => 'tt_news',
'id_field' => 'uid',
'alias_field' => 'title',
'addWhereClause' => ' AND NOT deleted',
'useUniqueCache' => 1,
'useUniqueCache_conf' => array(
'strtolower' => 1,
'spaceCharacter' => '-',
),
),
),
),
),
),
Der Erste gute Schritt wäre getan, mit den nächsten bekommen wir nun auch die Unique-ID, also die einmalige Ganzzahl in die URL und welche würde sich hierfür am besten eignen, als die eigene AutoIncrement-ID von tt_news.
Da Google-News eine mindestens dreistellige Ganzzahl vorsieht, muss ggf. bei einer Neuinstallation und noch nicht geschriebenen News der Increment Wert in der Datenbank auf 100 gesetzt werden, da diese beginnend mit dem Ersten Eintrag immer mit der 1 anfangen werden.
Der Entscheidende Eintrag in der RealURL zur Verwendung einer ID in der URL sieht nur eine Zeilenänderung des oberen Beispiels vor:
'alias_field' => 'concat(title,\'-\',uid)',
Damit haben verwenden wir die URL mit dem Wert des Titels, gefolgt von einem Bindestrich und dann der uid aus der Datenbank.
Somit hätten wir eine Google-konforme URL erstellt.