Meta Navigation ModRewrite kein Kategoriename in URL

Gesperrt
tommykoeln
Beiträge: 40
Registriert: So 12. Jun 2005, 12:13
Wohnort: Köln
Kontaktdaten:

Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von tommykoeln »

Hallo liebe Community,

mit dem Standardmodul meta_navigation habe ich Probleme bei der Darstellung von URL mit Hilfe von mod_rewrite.
Anfang sahen meine Links in der Meta Navigation wie folgt aus:

www.beispiel.de/index.html&a=2&level=1

Nach der hier erläuterten Änderung http://forum.contenido.org/viewtopic.ph ... Blevel%3D1 sehen die Links wie nachstehend aus:

www.beispiel.de/index.html

Wieso werden die Kategorienamen nicht so wie in der Main Navigation mit angezeigt?
Zum Beispiel:

www.beispiel.de/impressum/index.html
www.beispiel.de/datenschutz/index.html

Dadurch stimmt die Verlinkung jedes Mal nicht und mit einem Klick gelangt man auf die Startseite.

Aufbau meiner Navigation:

Root
- Hauptnavigation
-- ...
-- ...
- Metanavigation
-- Impressum
-- Datenschutz
-- Kontakt

Modul Meta_Navigation:

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Meta Navigation on bottom of page
*
* @version 1.0.0
* @author Rxxx Bxxxxx
* @copyright fxxx fxx bxxxxxxxxxxx
*
* {@internal
* created 2008-04-07
* }}
*
* $Id$
*/

// include Contenido_FrontendNavigation class
cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation.class.php');

// get start idcat
$iIdcatStart = getEffectiveSetting('navigation', 'idcat-meta', 2);

//check if there is a template instance
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

// reset template object
$tpl->reset();

// build navigation
try {
    $oFeNav = new Contenido_FrontendNavigation($db, $cfg, $client, $lang, $cfgClient);
    $oContenidoCategories = $oFeNav->getSubCategories($iIdcatStart, true);
    if ($oContenidoCategories->count() > 0) {
        foreach ($oContenidoCategories as $oContenidoCategory) {
            // this is just for sample client - modify to your needs!
            if ($cfg['url_builder']['name'] == 'front_content' || $cfg['url_builder']['name'] == 'MR') {
				$aParams = array('lang' => $lang, 'idcat' => $oContenidoCategory->getIdCat());
            } else {
                $aParams = array('a' => $oContenidoCategory->getIdCat(), 
                                'idcat' => $oContenidoCategory->getIdCat(), // needed to build category path
                                'lang' => $lang, // needed to build category path
                                'level' => 0); // needed to build category path
            }
            try {
                $tpl->set('d', 'url', Contenido_Url::getInstance()->build($aParams));
            } catch (InvalidArgumentException $e) {
                $tpl->set('d', 'url', 'front_content.php?idcat='.$oContenidoCategory->getIdCat());
            }
            $tpl->set('d', 'title', $oContenidoCategory->getCategoryLanguage()->getName());
            $tpl->set('d', 'label', $oContenidoCategory->getCategoryLanguage()->getName());
            $tpl->next();
        }
        $sItems = $tpl->generate('templates/navigation_meta_item.html', true, false);
        $tpl->reset();
        $tpl->set('s', 'items', $sItems);
        $tpl->generate('templates/navigation_meta_container.html');
    }
} catch (Exception $e) {
    echo 'Shit happens: ' . $e->getMessage() . ': ' . $e->getFile() . ' at line '.$e->getLine() . ' ('.$e->getTraceAsString().')';
}
?>
Contenido Version: 4.8.14
Errorlog: keine Einträge

Über eine Antwort würde ich mich sehr freuen!
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von xmurrix »

Hallo tommykoeln,

der Modulcode ist so in Ordnung, also liegt es nicht daran.

Vielleicht liegt es an den Plugineinstellungen. Was für Einstellungen hast du im AMR-Plugin gemacht?

Sollte bei dir die Contenido-Einstellung $cfg["is_start_compatible"] = true; (siehe contenidoincludes/config.php) sein, ist das der Grund. Das Plugin funktioniert mit der Einstellung nicht.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Anaman
Beiträge: 105
Registriert: So 26. Mär 2006, 22:19
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von Anaman »

Ich habe das gleiche Problem.
Die Einstellung steht bei mir auf "false". Hauptnavi funktioniert super nur die Meta will nicht..
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von xmurrix »

Welche ModRewrite Version und welche Einstellung wird dabei verwendet?

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
tommykoeln
Beiträge: 40
Registriert: So 12. Jun 2005, 12:13
Wohnort: Köln
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von tommykoeln »

Entschuldigung, dass ich mich jetzt erst wieder melde. Hatte leider ein wenig Stress in der Uni.

Ich habe die contenido/includes/config.php überprüft und $cfg["is_start_compatible"] steht bei mir ebenfalls auf false.

Meine Einstellung des AMR-Moduls sind die Standardeinstellungen (habe daran nicht modifiziert):
Pfad zur .htaccess Datei aus Sicht des Web-Browsers: /
Pfad zur .htaccess Datei überprüfen: Ja
...

Plug-In Version: 0.5.5
Anaman
Beiträge: 105
Registriert: So 26. Mär 2006, 22:19
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von Anaman »

Ich habe die gleiche Version: Version: 0.5.5

Schon Verschiede Einstellungen probiert, aber keine Änderung.
Bei Aktivierung des Plugins ist die Metanavigation nutzlos. In den Links wird noch die Sprach-ID angezeigt und dahinter nichts mehr, also keine Kategorien oder Dateien. Wäre klasse, wenn jmd auf des Rätsels Lösung kommt. ;)
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von xmurrix »

Hallo tommykoeln, hallo Anaman,

konte euer Proble m auf einer frischen Contenido-Installation (4.8.14) inkl. des AMR-Plugins (0.5.5) nicht reproduzieren.

Überprüft doch bitte noch folgende Punkte:
Falls es mehrere Sprachen gibt, und Artikelaliase in verschiedenen Sprachen identisch sind, kann das Plugin beim Auflösen der ankommenden URL eventuell nicht Schwierigkeiten bekommen. Damit das nicht passiert, gibt es die Option "Id/Name der Sprache der URL voranstellen". Dies wird bei mehrsprachigen Contenido-Auftritten empfohlen.

Wenn das euch nicht weiter hilft, bräuchte ich mehr Infod/Details. Wenn die Projekte online erreichbar sind, könnt ihr mir gerne die Zugänge per PM schicken, ich sehe mir das dann an.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Anaman
Beiträge: 105
Registriert: So 26. Mär 2006, 22:19
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von Anaman »

Hi xmurrix,

die Option ist bei mir eingestellt.

Hab dir die Zugansdaten zum Projekt geschickt.

Danke und viele Grüße,
Anaman
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von xmurrix »

Hallo zusammen,

eine mögliche Ursache für das Problem scheint die Synchronisation der Artikel von einer Sprache zu sein.

Vermutlich wird dabei der URL-Pfad zur Kategorien, der in einer Datei gecached wird, nicht aktualisiert. Daas AMR-Plugin verwendet die URL-Pfade der Kategorien zum Generieren der Clean-URLs, sind diese nicht in der cache-Datei, kann das Plugin die keine Clean-URLs erstellen.

Abhilfe schafft das erneute Speichern der Kategorien im Backend, da dabei die cache-Datei mit URL-Pfaden aktualisiert wird.

Die Beschreibung der Ursache ist, wie schon erwähnt, eine Vermutung, dies muss noch genauer geprüft werden.

Grüße
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
tommykoeln
Beiträge: 40
Registriert: So 12. Jun 2005, 12:13
Wohnort: Köln
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von tommykoeln »

Hey xmurrix,

ich bin leider wieder etwas spät dran.
Habe gerade eben alle Kategorien in Content > Kategorie neu abgespeichert und siehe da: es funktioniert nun! 8)

Vielen herzlichen Dank aus Köln!
tommykoeln
Anaman
Beiträge: 105
Registriert: So 26. Mär 2006, 22:19
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von Anaman »

Murat, vielen Dank für die tolle Unterstützung.
Ijon_Tichy
Beiträge: 7
Registriert: Fr 27. Jun 2008, 16:10
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von Ijon_Tichy »

Jetzt habe ich auch so das Problem. Zuerst die Umstände:

Das Plugin (0.5.5 auf Contenido 4.8.14) läuft seit einem halben Jahr völlig fehlerfrei, tut genau was es soll.

Heute Morgen ist während der redaktionellen Arbeit die mySQL-Datenbank beim Provider abgestürzt und neu gestartet worden. Im Contenido-Backend konnte danach wieder normal weitergearbeitet und der Artikel fertiggestellt werden.

Nur geht seither das rewrite der Kategorie, die zu dem Zeitpunkt in Arbeit war nicht mehr (es kommt <domain>/index.html statt <domain>/kategoriename/index.html). Bei allen anderen Kategorien geht es wie gehabt fehlerfrei.

Was ich getan habe:
- Nach Abschalten des Moduls geht es - natürlich mit der Contenido-üblichen Nomenklatur
- Cache-Verzeichnis des Mandanten geleert
- Aliase zürükgesetzt (in der AMR Maske im Backend)
- Der Blick auf die Datenbank hat nichts auffälliges ergeben. Keine korrupten Datensätze, soweit ich erkennen konnte.
- Alle Tabellen sind Case-Insensitive (latin1_german1_ci)
- $cfg["is_start_compatible"] = false; War vorher true, was aber nie Probleme gemacht hatte.
- Kategorie und Artikel neu gespeichert

Der Fehler bleibt völlig beharrlich.
Gibt es eine Debugging-Möglichkeit?

Grüße eines Fans
xmurrix
Beiträge: 3213
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: Meta Navigation ModRewrite kein Kategoriename in URL

Beitrag von xmurrix »

Hallo Ijon_Tichy,

was da jetzt genau passiert ist, also was die Ursache für dein Problem ist, kann ich nicht sagen.

Du kannst aber versuchen, das Debugging des AMR Plugins zu aktivieren. Be einem Liveauftritt wäre das aber nicht sehr ideal.

Öffne die Datei contenido/plugins/mod_rewrite/includes/config.plugin.php und ändere darin die Zeilen

Code: Alles auswählen

// set debug configuration
$options = array(
    'enable'                    => false, // disable debug
    'ressource_urls'            => array('/contenido/logs/errorlog.txt'),
    'dump_super_globals'        => array('$_GET', '$_POST', '$_COOKIE', '$_SESSION'),
    'ignore_empty_superglobals' => true
);

Code: Alles auswählen

// set debug configuration
$options = array(
    'enable'                    => (isset($_GET['topsecret'])),
    'ressource_urls'            => array('/contenido/logs/errorlog.txt'),
    'dump_super_globals'        => array('$_GET', '$_POST', '$_COOKIE', '$_SESSION'),
    'ignore_empty_superglobals' => true
);
Wenn du nun die Seite mit dem Parameter topsecret aufrufst, sollte der AMR-Debugger aktiviert werden und die einige Infos zu den generierte URLs ausgegeben.

Bei einer Seite, in der sehr viele URLs generiert werden, kann die Ausgabe des Debuggers unübersichtlich werden. Hier kannst du aber ein Layout mit einem Dummymodul in der nur die problematische Kategorieurl generiert wird.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Gesperrt