ich möchte automatisiert speziell formatierte URLs für jeden Artikel erzeugen. Da RexSeo im Einsatz ist, soll das Feld RexSeo Custom URL in den Metadaten/Sonstiges gefüllt werden, ohne das der User diese Eingabe von Hand vornehmen muss.
Alle betroffenen Artikel werden über ein spezielles Modul befüllt, so dass ich an dieses eine Aktion anknüpfen kann, die immer passend ausgeführt wird.
Meine Aktion ist nachfolgend aufgeführt. Dort schreibe ich direkt in die DB die neu generierte RexSeo-Url rein. Mit dem Neugenerieren der Cachedaten für den Artikel versuche ich die Änderung wirksam zu machen. Das funktioniert aber leider so nicht. Vielleicht funkt RexSEO später nochmal dazwischen oder ich hab einen grundsätzlichen Denkfehler.
Weiß jemand, wie ich die Aktion dazu bewegen kann, die URL zu setzen, so dass diese sofort so wirksam wird, als würde man die Metadaten/Sonstiges manuell ändern und speichern?
Vielen Dank und viele Grüße
Max Smily
Code: Alles auswählen
<?php
$thisArticle = OOArticle::getArticleById($REX_ACTION['ARTICLE_ID'], $REX['CUR_CLANG']);
$catname = $thisArticle->getValue('catname');
$slice = OOArticleSlice::getSlicesForArticleOfType($REX_ACTION['ARTICLE_ID'], 16, $REX['CUR_CLANG']);
$sliceElem = array(
'object_id' => $slice->getValue(1),
'plz' => $slice->getValue(2),
'ort' => $slice->getValue(3)
);
$path = rex_parse_article_name(strtolower($catname));
$file = rex_parse_article_name(strtolower($sliceElem['object_id'].'-'.$sliceElem['plz'].'-'.$sliceElem['ort']));
$url = $path.'/'.$file.'.html';
$sql = new rex_sql;
$query = "UPDATE rex_article SET art_rexseo_url = '".$url."' WHERE id=".$REX_ACTION['ARTICLE_ID']." AND clang=".$REX['CUR_CLANG'];
$sql->setQuery($query);
rex_generateArticle($REX_ACTION['ARTICLE_ID']);
unset($thisArticle, $catname, $slice, $sliceElem, $path, $file, $url, $sql, $query);
?>