Probleme bei Anzeige der Kategorien

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
bodil
Beiträge: 370
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Probleme bei Anzeige der Kategorien

Beitrag von bodil »

Liebe Gemeinde!
Ich habe in einer (aktuellen) Contenid-Installation eine Benutzergruppe angelegt, die kein Recht hat, Kategorien zu löschen. Das führt aber zu einem Problem in der Kategorie-Übersicht (include.str_overview.php), solange die Kategorie leer ist. In die Variable $button sollte der Dateiname einer Grafik geladen werden, um dann in dieselbe Variable ein Img-Tag zu schreiben, das den Dateinamen als src enthält. Das Problem: in meinem speziellen Fall (Kategorie leer) wird aber keine Grafik geladen, in der Variable $button steht noch das Img-Tag der Vorgämngerzeile und Contenido schreibt etwas in den Quellcode, das so aussieht:

Code: Alles auswählen

<img class="con_img_button_off" src="images/<img class=" con_img_button_off"="" alt="" title="">" alt="Kein Zugriff" title="Kein Zugriff"&gt;
Der lange Rede kurzer Sinn: in der include.str_overview.php fehlt etwa in Zeile 818 eine else-Anweisung:

Code: Alles auswählen

if ($hasChildren && $hasArticles) {
	$button = 'delete_inact.gif';
	$alt = $lngUnableToDeleteReasonArticleMsg;
} elseif ($hasChildren) {
	$button = 'delete_inact_h.gif';
	$alt = $lngUnableToDeleteReasonSubtreeArticleMsg;
} elseif ($hasArticles) {
	$button = 'delete_inact_g.gif';
	$alt = $lngUnableToDeleteReasonArticleMsg;
} 
Ich habe bei mir folgenden Code ergänzt:

Code: Alles auswählen

    else {
	$button = 'delete_inact_h.gif';
und konnte das Problem damit abstellen.
Ich bin mir etwas unsicher, warum hier für jede Eventualität andere alt-Texte zugewiesen werden. Es geht in allen Fällen darum, dass der User kein Recht zum Löschen der Kategorie hat. Das würde als Info eigentlich reichen. So wird erklärt: die Kategorie kann nicht gelöscht werden, weil sie andere Kategorien enthält oder weil sie Artikel enthält. Auch die verschiedenen Grafiken, die hier geladen werden, sehen alle gleich aus. Insofern ließe sich der Code hier straffen, in dem man in ihn auf

Code: Alles auswählen

$alt = $lngNoPermissions;
$button = 'delete_inact.gif';
reduziert.

Ein ganz anderes Problem, das diesselbe Datei betreffen dürfte, das ich aber bisher nicht lösen konnte: Nach jedem Editieren ist der Frame leer, um ihn wieder angezeigt zu bekommen, muss ich oben auf Übersicht klicken. Schau ich noch mal nach. Aber vielleicht kann mir jemand bestätigen, dass der Fehler bei ihm ebenfalls auftritt?
Dank und Gruß!
Bodil

Edit: diese if-elseif-Konstruktion ist doch sinnvoll, weil man in diesem Bereich nicht nur landet, wenn man keine Berechtigung hat, sondern eben auch, wenn man Kategorien nicht löschen darf, weil sie nicht leer sind. Und somit reicht es eigentlich, wenn man die Zeile

Code: Alles auswählen

$alt = $lngNoPermissions;
(etwa Zeile 807) ergänzt durch die Zeile

Code: Alles auswählen

$button = 'delete_inact_h.gif';
Dann hat man beide Default-Werte gesetzt und kann sich ein weiteres else sparen.
xmurrix
Beiträge: 3205
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 2 Mal
Danksagung erhalten: 14 Mal
Kontaktdaten:

Re: Probleme bei Anzeige der Kategorien

Beitrag von xmurrix »

Hallo bodil,

danke dir für die Hinweise und für die detaillierte Analyse.

Über die verschiedenen Dateinamen der inaktiven Löschen-Icons kann ich momentan nicht viel sagen, vermutlich war es mal angedacht, dass es verschiedene Icons für die verschiedenen Varianten gibt, die Icons dafür aber nie erstellt wurden.

Dazu gibt es ein Ticket in GitHub, in der das Problem mit den Icons und der Anzeige der Übersichtsseite nach dem Bearbeiten einer Kategorie bearbeitet wurde:
https://github.com/CONTENIDO/CONTENIDO/issues/500
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.
bodil
Beiträge: 370
Registriert: Fr 7. Okt 2011, 04:10
Hat sich bedankt: 2 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Probleme bei Anzeige der Kategorien

Beitrag von bodil »

Dankeschön!
Ich denke, zu dem anderen Problem (weiße Seite nach dem Speichern) habe ich auch eine Lösung.
Im Formular, das da geladen wird, steht in der action die area nicht drin.
Änder ich das hier

Code: Alles auswählen

$tpl->set('s', 'ACTION_EDIT_URL', $sess->url("main.php?frame=$frame"));
in das hier

Code: Alles auswählen

$tpl->set('s', 'ACTION_EDIT_URL', $sess->url("main.php?frame=$frame&area=$area"));
funktioniert das Neuladen.
Das alles in der Datei include.str_overview.php etwa in Zeile 577.
Antworten