Seite 1 von 1

Doppelte Alias in Kat. erzeugen AMR-Fehler

Verfasst: Mi 19. Okt 2011, 12:27
von funomat
Ändert man von Hand einen Alias und speichert diesen ab, kommt es zu folgendem Fehler, wenn es bereits einen gleich lautenden Alias gibt:
Fatal error: Call to a member function get() on a non-object in /homepages/31/d36329574/htdocs/CMS/contenido/plugins/mod_rewrite/includes/functions.mod_rewrite.php on line 122
AMR-Version 0.5.5

Die Contenido-Installation war ursprünglich eine 4.8.12 mit AMR 0.5.5 und wurde auf 4.8.15 geupdated. An der AMR-Installation wurden keine Veränderungen vorgenommen.

Server Betriebssystem: Apache
PHP Datenbankerweiterung: mysql
Datenbankserver-Version: 5.0.91-log
Installierte PHP-Version: 5.2.17
safe_mode: Deaktiviert
magic_quotes_gpc: Aktiviert
magic_quotes_runtime: Deaktiviert
gpc_order:
memory_limit: 90M
max_execution_time: 50000
Deaktivierte Funktionen: nichts deaktiviert
Gettext Erweiterung: geladen
sql.safe_mode: Deaktiviert

Re: Doppelte Alias in Kat. erzeugen AMR-Fehler

Verfasst: Mi 19. Okt 2011, 13:05
von Oldperl
:!: Verschoben nach Plugins.

Kein direkter Bug von Contenido sondern ein Bug des AMR-Plugins, daher Titel geändert und verschoben.

Gruß aus Franken

Ortwin

Re: Doppelte Alias in Kat. erzeugen AMR-Fehler

Verfasst: Mi 19. Okt 2011, 22:27
von xmurrix
Hallo funomat,

das Plugin lässt es nicht zu, dass mehrere Kategorien/Artikel mit gleichen Aliasen vorkommen. Pro Sprache kann es nur einen eindeutigen Kategorie- Artikelalias geben. Will man einen Alias definieren, den es schon gibt, wird diesem Alias immer die ID der Kategorie/des Artikels angehängt, so dass es immer eindeutig ist.

Habe das Verhalten gerade sicherheitshalber mit einer frischen CONTENIDO-Installation (Version 4.8.15 und AMR 0.5.5) getestet und konnte den Fehler nicht reproduzieren.

Warum auch immer, wird in deinem Fall die Kategorie der aktuellen Sprache (Tabelle con_cat_lang) nicht gefunden, was aber nicht passieren darf.

Gab es in der CONTENIDO-Installation irgendwelche Änderungen an der Klasse cApiCategoryLanguageCollection() oder an den Generic-DB Klassen?

Du kannst es einfach testen, indem du den betroffenen Code-Bereich separat z. B. in einem Modul ausführts.

Code: Alles auswählen

cInclude("classes", "contenido/class.categorylanguage.php");

$idcat = 123; // id der betroffenen kategoie
$lang = 1; // id der betroffenen sprache

$str = 'idcat=' . $idcat . ' AND idlang=' . $lang;
$oCatLangColl = new cApiCategoryLanguageCollection($str);
$oCatLang = $oCatLangColl->next();
var_dump($oCatLang);

Die Variable $oCatLang sollte ein Objekt sein und den entsprechenden Datensatz aus der Tabelle con_cat_lang enthalten. Wenn nicht, dann gibt es ein Problem...

Gruß
xmurrix