URL-struktur bei SEO-Aktivierung in com_abook

  • Hi,


    wenn ich über das PlugIn, das die J!-Suche nutzt, in der Detailansicht eines Treffers auf den bereitgestellten Kategorie-Link klicke, wird mit SEO immer die Basiskategorie angezeigt und keine Subkategorie: also eine Art "fall-back" zur Basis.

    Kann jemand evtl. am generierten "mit-SEO"-Link einen Struktur-Fehler sehen?

    Das sind im Folgenden jeweils der Detailansicht-Link und der Kategorie-Link:


    ---------ohne SEO---------

    ://www.domain.de/index.php?option=com_abook&view=book&id=1526:titel&catid=31:kategorie-stuff&Itemid=101&lang=de

    zu ok, richtig

    ://www.domain.de/index.php?option=com_abook&view=category&id=31&Itemid=101&lang=de

    ---------mit SEO---------

    ://www.domain.de/de/component/abook/book/31-kategorie-verschiedenes/kategorie-stuff/1526-titel.html?Itemid=101

    zu falsch, "fall-back":

    ://www.domain.de/de/component/abook/category/31-kategorie-verschiedenes/kategorie-stuff.html?Itemid=101


    ich habe in der Komponenten-route.php und in der PlugIn-Datei schon probiert, aber ohne Erfolg.

    Ist der SEO-Linkaufbau wie oben dargestellt OK?

    Wie müssen die grundsätzlich aussehen und

    wie & wo greift hier überhaupt J!s SEO ein?


    Version 3.9.22

    Dank für Tipps,

    Grüße, robert

  • Wie schon erwähnt ist es wichtig, dass Du Dein Problem mit der aktuellsten Joomlaversion hier postest.


    Um die IDs aus der URL zu bekommen, stellst Du in den globalen Optionen für Beiträge/Integration die URL-Generierung auf Modern und IDs aus URL entfernen auf JA.

  • > aktuellsten Joomlaversion

    ja. So groß ist der Abstand ja nicht. Habe ich im Blick.

    Das ist ja aufwändiger, da man die Komponeten zu beobachten hat ...



    >Optionen für Beiträge/Integration die URL-Generierung auf Modern und IDs aus URL entfernen auf JA.

    danke.

    keine Verbesserung. Die IDs blieben auch drin.

    ://www.domain.de/de/component/abook/category/31-kategorie-verschiedenes/kategorie-stuff.html?Itemid=101

    abook- und such-cache und content-cache habe ich geleert.



    abook hat auch eine eigene Suche, die funktioniert. Da sehen die SEO-Links so aus:

    ---------mit SEO---------

    ://www.domain.de/de/publik/menuelink-biblio.html?option=com_abook&view=book&id=1526:titel&catid=31:kategorie-stuff&Itemid=109

    ://www.domain.de/de/publik/menuelink-biblio/31-kategorie-verschiedenes/kategorie-stuff.html



    wenn ich abook's J!-such-plugin-Links bloß so ändern könnte ...

    Ich weiß aber nicht, wo dieser part hergestellt wird:

    .../component/abook/book/...

    das scheint in J! zu passieren?



    wie sind J!'s links der Komponenten grundsätzlich zu gestalten?

    Gibts da ein howTo zu?

    Ich nehme an, die Folge ist egal und die Form ist nur schlicht

    &view=book

    sozusagen Kategorie=Wert



    grüße

  • ja. So groß ist der Abstand ja nicht.

    Weiß man aber als Helfer nicht auswendig, ob was an veralteten Versionen, egal, ob Joomla oder Erweiterungen, liegen könnte. Deshalb kann man das erwarten, dass Frager ein aktuelles System verwenden, damit Helfer ggf. selbst mal schnell testen können. Auch eine Frage des Respekts...

    das scheint in J! zu passieren?

    Das passiert in Joomla unter Nutzung der Router-Klassen. Wenn die Komponente einen eigenen dabei hat, wird dieser mit eingeschaltet, wenn nicht, dann eben der pure von Joomla.


    Wenn die Menüführung unsauber ist, also z.B. für eine Kategorie und/oder Erweiterung kein Menüeintrag existiert. kann auch der Joomla-Router nichts ausrichten.


    Wenn du mal ins search-Plugin content/content.php schaust, siehst, dass das eine com_content-spezifische Router-Klasse lädt, um die erst mal nicht-SEO-URL korrekt zu ermitteln.

    Code
    JLoader::register('ContentHelperRoute', JPATH_SITE . '/components/com_content/helpers/route.php');
    Code
    $list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catid, $item->language);

    Auf der Suche-Seite wird dann erst bei der Ausgabe daraus der SEO-Link von der Klasse JRoute ermittelt:

    PHP
    <a href="<?php echo JRoute::_($result->href); ?>"<?php if ($result->browsernav == 1) : ?> target="_blank"<?php endif; ?>>

    Wenn also deine Komponente das auf der eigenen Sucheseite korrekt macht UND die halbwegs Joomla-standardkonform arbeitet, wirst wohl irgendwo ähnliche Abläufe finden und die musst im Plugin integrieren.


    Wie du oben siehst, benötigt der

    Code
    ContentHelperRoute

    mehrere Angaben zum Ziel (id UND catid) um seine Sache richtig zu machen. Andernfalls sind die URLs auch mehr oder weniger "schräg".

  • Hey,

    Danke!


    wieder eine "Notlösung":


    /components/com_abook/router.php

    ca. z152

    // $array[0] = (int)$catid.':'.$array[0]; // line commented out

    ca. z159

    $segments[2] = $path[0]; // added: 2nd path source corrected statically: only for 2nd hierarchy


    eine grobe "Korrektur". War & bin mir noch nicht im Klaren, wie der Fehler zustande kommt.

    Manche Schlüssel & Werte scheinen "unpässlich" überschrieben zu werden. Im array stand dann ID neben einem falschen Namen ... ich gebe es an die Entwickler weiter.


    Mir "tieferen" / mehr Kategorie-Ebenen, müsste man da wohl nochmal ran. Ich habe aber nur 2 Ebenen.


    Grüße, rob