Seite 1 von 1

[BUG] Umbenennen Alias [gelöst]

Verfasst: Mo 17. Jun 2013, 09:42
von rethus
Folgende Fehlermeldung erscheint, wenn man versucht einen Alias einer Kategorie umzubennen:
Warning: Missing argument 4 for strRenameCategory(), called in /....../contenido/main.php(242) : eval()'d code on line 1 and defined in /......./contenido/includes/functions.str.php on line 757
Parameter 4 ist laut Sourcecode (http://fossies.org/dox/Contenido_4.8.18 ... 0e7f781d5c) $newcategoryalias

Re: [BUG] Umbenennen Alias

Verfasst: Mo 17. Jun 2013, 11:03
von rethus
Ich habe den BUG weiter eingegrenzt.
Klicke ich den Bearbeiten-Stift für die Kategorie, erscheinen 2 Textfelder:

1) Categoryname
2) Alias

In Alias kann man eintragen was man will, der wird nie übernommen, sondern für beide Felder wird der Wert aus Categoryname übernommen.

Auch wenn beide Felde befüllt sind, wird oben die Fehlermeldung ausgegeben.

kann dass einer für 4.8.18 bestätigen?!

Re: [BUG] Umbenennen Alias

Verfasst: Mo 17. Jun 2013, 11:47
von rethus
Hab den Bug teilweise gelöst. Zumindest so, dass das Speichern der Alias-Werte nun funktioniert. Die Fehlermeldung erscheint immer noch am Kopf der Seite.

contenido/includes/include.str_overview.php:
Zeile: 55

Code: Alles auswählen

  if(!($perm->have_perm_area_action($tmp_area, "str_renamecat") || $perm->have_perm_area_action_item($tmp_area, "str_renamecat", $iIdCat)) ) {
ändern in:

Code: Alles auswählen

  if(($perm->have_perm_area_action($tmp_area, "str_renamecat") || $perm->have_perm_area_action_item($tmp_area, "str_renamecat", $iIdCat)) ) {

Re: [BUG] Umbenennen Alias

Verfasst: Mo 17. Jun 2013, 12:58
von rethus
Der eigentliche Fehler hat folgenden Trace:

contenido/main.php - Zeile 242

Code: Alles auswählen

eval($backend->getCode($action));
dies gibt die Funktion

Code: Alles auswählen

strRenameCategory($idcat, $lang, $newcategoryname);
zurück, welcher der 4. Parameter fehlt.

Die eigentliche Funktion ist in der DB-Tabele con_actions mit dem Namen str_renamecat gespeichert. Ergänzt man dort den 4. benötigten Parameter, ist der Fehler behoben:

Code: Alles auswählen

strRenameCategory($idcat, $lang, $newcategoryname, $newcategoryalias);

Re: [BUG] Umbenennen Alias [gelöst]

Verfasst: Do 8. Aug 2013, 17:29
von Faar
Ich habe das Problem nicht in 4.8.18, ich kann den Alias so umschreiben wie ich möchte und das wird so auch gespeichert.
Aber andersherum ist es so: wenn ich dann den Namen der Kategorie ändere, wird dieser auch für den Alias übernommen.
Das heißt, ich kann nachträglich keinen Kategorienamen ändern ohne den Alias (und somit die URL) zu verändern.

Re: [BUG] Umbenennen Alias ungelöst

Verfasst: Do 8. Aug 2013, 17:59
von Faar
Ich habe es nun in verschiedenen Installationen getestet, alle Version 4.8.18:

In einer Installation wird der Kategorie Alias überschrieben, sowie ich den Kategorie Namen ändere.
In zwei anderen Installationen kann ich den Namen oder Alias ändern wie ich will, das bleibt unberührt.
Woran kann es liegen, dass die eine Installation so reagiert und die andere anders?

Re: [BUG] Umbenennen Alias

Verfasst: Mo 12. Aug 2013, 15:59
von Faar
rethus hat geschrieben: In Alias kann man eintragen was man will, der wird nie übernommen, sondern für beide Felder wird der Wert aus Categoryname übernommen.
Auch wenn beide Felde befüllt sind, wird oben die Fehlermeldung ausgegeben.
kann dass einer für 4.8.18 bestätigen?!
Eine Fehlermeldung erscheint nicht bei mir.

Aber die Funktion in der Datei contenido/includes/include.str_overview.php ab Zeile 53

Code: Alles auswählen

  if(!($perm->have_perm_area_action($tmp_area, "str_renamecat") || $perm->have_perm_area_action_item($tmp_area, "str_renamecat", $iIdCat)) ) {
wäre eigentlich schon richtig, weil sie prüft ob die Berechtigung für das Umbenennen einer Kategorie nicht vor liegt, was laut Autor so sein soll:

Code: Alles auswählen

//Everybody is allowed to update aliases, if there is no Permission to update category names, this block updates category alias only
In der Folge wird Anhand der Formulardaten in Zeile 56 geprüft, ob es für den Alias bereits einen Eintrag gibt:

Code: Alles auswählen

if (trim($_POST['newcategoryalias']) != '') {
dann wird sinnigerweise der Eintrag übernommen:

Code: Alles auswählen

$sUrlName = capiStrCleanURLCharacters($_POST['newcategoryalias']);
Sollte es im Alias-Feld keinen Eintrag geben, wird ab Zeile 64 als Alias immer der Name übernommen:

Code: Alles auswählen

      if ($db->next_record()) {
        $sUrlName = capiStrCleanURLCharacters($db->f('name'));
Aber wo steht nun die Funktion für jene, die die Berechtigung für die Umbenennung des Kategorie-Namens haben?

Code: Alles auswählen

  elseif(($perm->have_perm_area_action($tmp_area, "str_renamecat") || $perm->have_perm_area_action_item($tmp_area, "str_renamecat", $iIdCat)) ) {
(man beachte das fehlende ! im Code)

Geschieht das dann beliebig je nachdem wie das Programm gerade Lust hat, ob der Alias mit dem Namen überschrieben wird oder nicht?

VG
Frank

Re: [BUG] Umbenennen Alias [gelöst]

Verfasst: Di 13. Aug 2013, 09:12
von xmurrix
Habe mir gerade den Code angesehen, deie Logik für das Umbenennen von Kategotien sollte man überarbeiten.

Werde dafür ein Ticket im CONTENIDO-Ticketsystem erstellen.

Danke für eure Anmerkungen.

Grüße
xmurrix