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">
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;
}
Code: Alles auswählen
else {
$button = 'delete_inact_h.gif';
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';
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;
Code: Alles auswählen
$button = 'delete_inact_h.gif';