- Falsch gesetzte Berechtigung für die Benutzer-Rolle "ROLE_USER_FULL"
Das gemeine an dem Fehler ist, dass er erst auffällt, wenn man die Berechtigung für diese Rolle ändert. Fatal dabei ist, dass alle Benutzer mit dieser Berechtigung durch das hinzufügen von "acl_m_" zur Rolle volle Moderatoren Rechte bekommen. Beheben könnt ihr den Fehler mithilfe von phpmyadmin. Wie üblich, wenn ihr mit myphpadmin direkte Änderungen an der Datenbank vornehmt, legt zuvor ein Backup der Datenbank an.
- Wählt eure phpbb Datenbank und klickt auf
phpbb_acl_options
sucht nach dem Eintragm_
und notiert euch dieauth_option_id
(z.B. 31) - Danach klickt auf
phpbb_acl_roles
und notiert euch dierole_id
fürROLE_USER_FULL
(bei einer phpBB Standard-Installation sollte es die ID 5 sein). - Wenn ihr euch beide Werte notiert habt klickt abschließend auf
phpbb_acl_roles_data
und sucht nach einer Überstimmung fürrole_id 5
undauth_option_id 31
und löscht diesen Eintrag
- Wählt eure phpbb Datenbank und klickt auf
- Template Inheritance funktioniert nicht mit den Knowledge Base Plugins
Dieser Fehler ist recht einfach zu beheben, aber sicher nicht für alle Benutzer relevant. Er tritt nur auf, wenn mehrere Templates/Styles verwendet werden. Dieses Problem wurde hier bereits diskutiert. Einen möglichen Lösungsansatz findet ihr hier:
Siehe Knowledge Base Funktion für Template Parsing ändern - Fehler im Berechtigungs-System, der es Knowledge Base Modeartoren nicht gestattet Anfragen zu löschen bzw. zu bearbeiten.
Zur Behebung des Fehlers
Öffne includes/kb.php
FindeEresetze mit:Code: Alles auswählen
// Permission to do the action asked? $is_authed = false; switch ($this->action) { case 'add': if ($auth->acl_get('u_kb_request')) { $is_authed = true; } break; case 'edit': case 'delete': if ($user->data['is_registered'] && $auth->acl_gets('u_kb_request', 'm_kb_edit_req')) { $is_authed = true; } break; }
Damit diese Änderungen im Berechtigungs-System ersichtlich sind, sollte man auch die Sprachdateien entsprechend Anpassen.Code: Alles auswählen
// Permission to do the action asked? $is_authed = false; switch ($this->action) { case 'add': if ($auth->acl_get('u_kb_request')) { $is_authed = true; } break; case 'edit': if ($user->data['is_registered'] && $auth->acl_gets('u_kb_edit', 'm_kb_req_edit')) { $is_authed = true; } case 'delete': if ($user->data['is_registered'] && $auth->acl_gets('u_kb_delete', 'm_kb_req_edit')) { $is_authed = true; } break; }
Öffne language/en/mods/permissions_kb.php
FindeErsetze mitCode: Alles auswählen
'acl_u_kb_delete' => array( 'lang' => 'Can delete own articles', 'cat' => 'write', ),
FindeCode: Alles auswählen
'acl_u_kb_delete' => array( 'lang' => 'Can delete own articles and requests', 'cat' => 'write', ),
Ersetze mitCode: Alles auswählen
'acl_u_kb_edit' => array( 'lang' => 'Can edit own articles', 'cat' => 'write', ),
Code: Alles auswählen
'acl_u_kb_edit' => array( 'lang' => 'Can edit own articles and requests', 'cat' => 'write', ),
- Fehler beim löschen von Artikeln
Die Artikel werden zwar gelöscht, sind aber unter Umständen in der Kategorie-Ansicht weiterhin zu sehen. Der Fehler tritt auf, wenn es sich beim gelöschten Artikel um den letzten/neuesten bzw. einzigen Artikel einer Kategorie gehandelt hat. Nach erstem durchsehen des Codes, bin ich mir relativ sicher, dass der Fehler in der Funktion "handle_latest_articles" zu suchen ist. Genau genommen in diesem Teil der Funktion:
Wie genau dieser Fehler behoben werden kann, ist mir nicht so ganz klar. Ein versierter Coder dürfte da eher den Durchblick haben.Code: Alles auswählen
case 'delete': // Call delete here only used it article id thats getting deleted is is recent articles for that cat $sql = $db->sql_build_query('SELECT', array( 'SELECT' => 'c.latest_ids', 'FROM' => array( KB_CATS_TABLE => 'c'), 'WHERE' => 'cat_id = ' . $cat_id, )); $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); $latest_articles = unserialize($row['latest_ids']); for($i = 0; $i < count($latest_articles); $i++) { if(isset($latest_articles[$i]) && ($data['article_id'] == $latest_articles[$i]['article_id'])) { unset($latest_articles[$i]); continue; } } $sql_ary = array('latest_ids' => serialize($latest_articles)); $sql = 'UPDATE ' . KB_CATS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE cat_id = ' . $cat_id; $db->sql_query($sql);
- Undefined Variable 'edit_data' in includes/kb.php Zeile 2214
Auch beim diesem Fehler bin ich mir noch nicht so ganz sicher, wie er zu beheben ist. - Das Aktivieren der Option "Aktiviere die Suchmaschinen Optimierung" unter "Allgemeine Einstellungen" der MOD führt zu einem Fehler und ist nicht möglich
Ein bekannter Fehler der von den MOD-Autoren nie behandelt wurde. Siehe auch [ABD] PhpBB3 Knowledge Base
- Deinstallieren der Knowledge Base MOD
Bevor ihr die MOD deinstalliert, müßt ihr die Berechtigungen zurücksetzen. Macht ihr das nicht, sind nach erneuter Installation die "Knowledge Base Berechtigungs-Rollen" doppelt vorhanden bzw verbleiben in der Datenbank - Die erste Kategorie wird nach dem Entfernen und erneutem Installieren der MOD nicht angzeigt.