Closed TobiasKrais closed 7 years ago
Noch ein Zusatz: mit der Funktion UrlGenerator::getId() bekomme ich nur die ID, nicht aber den Namen des Parameters. SEO42 hatte das so gelöst, dass der Wert in den $_POST array geschrieben wurde.
Deine Config ist falsch. Du kannst nicht denselben Artikel für zwei Tabellen verwenden. Wie du schon bemerkt hast, wird dir zwar immer eine Id geliefert aber du kannst nicht unterscheiden zu welcher Tabelle diese gehört.
Du solltest für die Kategorien einen eigenen Artikel anlegen, so dass dir dann solche Urls generiert werden: /de/kategorien/containerruehrwerke/
. (Hier heißt der Artikel kategorien)
Hier wiederum kannst du deine Übersicht der Maschinen auflisten, die dann mit der Url
/de/maschinen/containerruehrwerke/promi-con-600/
zur Detailansicht verlinken. (Hier heißt der Artikel maschinen, wobei in der Config noch die Relationstabelle der Kategorien vorgehangen werden)
SEO42 hatte das so gelöst, dass der Wert in den $_POST array geschrieben wurde.
Das Addon konnte keine Urls aus Tabellen generieren.
Ja, hab mir schon gedacht, dass es nicht anders zu lösen ist. Wie viel Aufwand wäre es, das so zu programmieren, dass es mit einem Artikel funktioniert?
Kann ich irgendwie herausfinden, wie die Bezeichnung der ID ist, also machine_id oder category_id? Denn im Template brauche ich hierfür eine Abfrage.
Vermutlich geht es doch bereits. Probier mal
$data = Generator::getData();
echo '<pre>'; print_r($data); echo '</pre>';
Das ist eine sehr gute Idee. Ich habe einen Pull request für eine entsprechende Methode erstellt. Was steht nun noch einer Verwendung von zwei Parametern in einem Artikel im Weg?
Das funktioniert bereits und kann über den UrlParamKey unterschieden werden.
$data = Generator::getData();
if ($data->urlParamKey == 'mein-param') {}
Du meinst:
$data = UrlGenerator::getData(); if ($data->urlParamKey == 'mein-param') {}
Danke. Der Code funktioniert.
Noch ein Fehler: zwar kann ich für einen Artikel mehrere Parameter übergeben und auch wie in dem Codebeispiel von dir gezeigt unterscheiden. Jetzt aber zum Fehler: wenn ich im URL Addon zwei Konfigurationen mit dem selben Artikel angebe, wohl aber mit unterschiedlicher Parameterbezeichnung, wird nur die letze der beiden Konfigurationen verarbeitet. Die erstere entweder übergangen oder überschrieben. Sichtbar wird das besonders gut in der sitemap.xml.
Hi Thomas, was denkst du, ist der Fehler leicht zu fixen? Kannst du mir einen Hinweis geben, wo im Code ich danach suchen müsste? Vielleicht kann ich helfen.
@TobiasKrais Ersetze mal diese Datei lib/Url/Generator.php mit der aus GH. Ich hatte da was eingespielt.
Hi Thomas, das ist super! Ich habs auf Herz und Nieren getestet. Auch mit drei URL Typen auf einen Artikel. Es passt alles. Vielen, vielen Dank!
Noch eine kleine Anmerkung: kann es sein, dass beim Speichern und bearbeiten der Datensätze im Backend als createdate und updatedate immer nur das Jahr gespeichert wird? Sieht so aus als ob du einen Datetime in ein int Feld speichern willst.
Ich habe eine Maschinendatenbank. Die Maschinen sind in Kategorien eingeteilt. Also habe ich zwei Konfigurationen: