Hi!
RexSEO bietet die Möglichkeit an, beliebige URLs zu erzeugen und mit beliebigen Artikeln und Artikelparametern zu verknüpfen.
Wenn ihr also die Tags schön in der URL haben wollt, könnt ihr das wie folgt machen.
1. Ihr braucht eine Funktion, die eure URLs für RexSEO generiert:
Code: Alles auswählen
function my_extended_urls($_params)
{
global $REX;
$sql = rex_sql::factory();
$tags = $sql->getArray("
SELECT t.id, t.term, t.clang as clang_id, c.clang as clang_name
FROM `".$REX['TABLE_PREFIX']."mp_tags` t
LEFT JOIN `".$REX['TABLE_PREFIX']."clang` c
ON c.id = t.clang
");
foreach($tags as $tag)
{
$pathname = '';
$pathname = rexseo_appendToPath($pathname, 'tag');
$pathname = rexseo_appendToPath($pathname, $tag['clang_name']);
$pathname = rexseo_appendToPath($pathname, $tag['term']);
$pathname = substr($pathname,0,strlen($pathname)-1).$REX['ADDON']['rexseo']['settings']['url_ending'];
$_params['subject']['REXSEO_URLS'][$pathname] = array (
'id' => 123, // <- hier die Artikel-ID des Artikels eintragen, der das "tag articles"-Modul enthält
'clang' => $tag['clang_id'], // (int) clang
'params' => array('tag_id', $tag['id'])
);
}
return $_params['subject'];
}
2. Jetzt muss die Funktion RexSEO bekannt gemacht werden, so dass sie immer aufgerufen wird, wenn RexSEO die Pathlist neu generiert. Das passiert z. B. wenn unter "System" der Cache gelöscht wird.
Code: Alles auswählen
rex_register_extension('REXSEO_PATHLIST_CREATED', 'my_extended_urls');
3. Damit auch neu eingetragene Tags in den Genuss der schönen URLs kommen, müsst ihr dafür sorgen, dass die Funktion "rexseo_generate_pathlist()" auch dann aufgerufen wird, wenn ein neues Tag eingetragen wird.
Dazu muss in der Datei /pages/article.inc.php des mp_tags-Addons einfach in Zeile 62 nach "echo rex_info($I18N->msg('tags_form_tag_added', $term));" "rexseo_generate_pathlist()" hinzugefügt werden.
Jetzt sind eure kategorisierten Artikel über
http://example.org/tag/SPRACHE/TAG_NAME verfügbar.
Wer die Sprache nicht braucht, kann sie auch weglassen, muss dafür aber natürlich auch die Funktion "my_extended_urls" anpassen.