Re: [3.3] Probleme beim Hinzufügen von Modulen zum Schnellzugriff im ACP
Verfasst: 28.10.2020 13:26
Danke für deine Arbeit Mike!
phpBB.de - Die deutsche phpBB-Community
https://www.phpbb.de/community/
is_duplicate
gesetzt und damit erhält es im Array der anzuzeigenden Module statt seiner module_id
das Attribut "false", und letzteres verursacht dann die Fehlermeldung.Code: Alles auswählen
public function update_data()
{
return [
['module.add', [
'acp',
'ACP_CAT_DOT_MODS',
'ACP_TEST_TITLE'
]],
['module.add', [
'acp',
'ACP_TEST_TITLE', [
'module_basename' => '\autor\extname\acp\test_module',
'module_langname' => 'ACP_TEST_SETTINGS',
'module_mode' => 'overview',
'module_auth' => 'ext_autor/extname && acl_a_board',
]
]],
['module.add', [
'acp',
'ACP_QUICK_ACCESS', [
'module_basename' => '\autor\extname\acp\test_module',
'module_langname' => 'ACP_QUICK_TEST_SETTINGS',
'module_mode' => 'acp_test_quick',
'module_auth' => 'ext_autor/extname && acl_a_board',
]
]],
];
}
Code: Alles auswählen
class test_info
{
function module()
{
return [
'filename' => 'autor\extname\test_module',
'title' => 'ACP_TEST_TITLE',
'version' => '1.0.0',
'modes' => [
'settings' => [
'title' => 'ACP_TEST_SETTINGS',
'auth' => 'ext_autor/extname&& acl_a_board',
'cat' => ['ACP_TEST_TITLE']
]
],
];
return [
'filename' => 'autor\extname\test_module',
'title' => 'ACP_QUICK_ACCESS',
'version' => '1.0.0',
'modes' => [
'settings' => [
'title' => 'ACP_TEST_SETTINGS',
'auth' => 'ext_autor/extname&& acl_a_board',
'cat' => ['ACP_TEST_TITLE']
]
],
];
}
}
LFWWH ist klar, ich weiss inzwischen warum. Aber dbtool kann ich nicht nachvollziehen. In dem Moment wo ich das in den Schnellzugriff hinzufüge, kann ich die Einstellungen an der original Stelle nicht mehr aufrufen und es kommt zum bekannten Fehler. Getestet mit dbtool 1.2.0. Jetzt wäre die Frage, warum das bei dir anders ist.
Was deinen ersten Code angeht: Das ist aber eher was für Ext Coder, weniger für Endbenutzer. Insbesondere wenn man die Mechanismen dahinter nicht kennt, kann man über falsche Modul Kommandos sich auch mal ganz elegant aus dem ACP aussperren und darf dann erstmal in der DB herumfuhrwerken.chris1278 hat geschrieben: 16.09.2021 21:00 Also wenn jemand über migration seiner Extenion etwas in den Schnellzugrif anhängen möchte dann kann man dies so tun:
return
gesprochen und ich dachte du hättest das verstanden. Dein zweites return
wird niemals ausgeführt. Davon abgesehen kann in einer *_info.php
nur ein Modul definiert werden, nicht mehrere. Es können aber mehrere Modi definiert werden, aber das ist was anderes. Du versuchst jedoch zwei Module zu definieren.Leider weiß ich nicht mehr wie das damals genau war. Heute bekomme ich folgende Fehlermeldung:LukeWCS hat geschrieben: 17.09.2021 13:55 Getestet mit dbtool 1.2.0. Jetzt wäre die Frage, warum das bei dir anders ist.
Code: Alles auswählen
Allgemeiner Fehler
Auf das Modul kann nicht zugegriffen werden
BACKTRACE
FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()
FILE: [ROOT]/includes/functions_module.php
LINE: 565
CALL: trigger_error()
FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()
Alles klar, dann haken wir das als "nicht mehr nachvollziehbares Mysterium" ab. Alleine der Cache kann ja schon manchmal für seltsame Phänomene sorgen, die dann später nicht mehr nachvollzogen werden können.HaioPaio hat geschrieben: 17.09.2021 14:38 Leider weiß ich nicht mehr wie das damals genau war. Heute bekomme ich folgende Fehlermeldung:
HaioPaio hat geschrieben: 17.09.2021 14:38Leider weiß ich nicht mehr wie das damals genau war. Heute bekomme ich folgende Fehlermeldung:LukeWCS hat geschrieben: 17.09.2021 13:55 Getestet mit dbtool 1.2.0. Jetzt wäre die Frage, warum das bei dir anders ist.
Code: Alles auswählen
Allgemeiner Fehler Auf das Modul kann nicht zugegriffen werden BACKTRACE FILE: (not given by php) LINE: (not given by php) CALL: msg_handler() FILE: [ROOT]/includes/functions_module.php LINE: 565 CALL: trigger_error() FILE: [ROOT]/adm/index.php LINE: 81 CALL: p_master->load_active()
So wie es momentan aussieht, tritt das Problem nur da auf, wo die Modul-Definition einwandfrei und nach "Lehrbuch" gemacht wurde.HaioPaio hat geschrieben: 19.11.2020 15:01 Bei einigen wenigen Erweiterungen tritt das Problem aber nicht auf. Es muss also noch was anderes dahinter stecken.
Ich habe mir dazu den Stand von User Reminder angeschaut, wie er zu dem Zeitpunkt war, als Mike schrieb. Dann habe ich mit LFWWH2 verglichen. LFWWH2 ist eine komplett eigenständige Ext die von LFWWH1 abgeleitet wurde. Diese wiederum war eine direkte Weiterentwicklung von NVWWH (3.1 Ext von Anvar). Das heisst, auch wenn die Codebasis und viele Dateien inzwischen radikal anders sind, gibt es dennoch Strukturen die noch von Anvar erstellt wurden.Mike-on-Tour hat geschrieben: 28.10.2020 12:40 Der Unterschied ist die Benennung der "Modes" für die ACP-Module. Stimmen die Namen in der Migrationsdatei (module_mode
) und in der entsprechenden_info.php
Datei (Definitionmodes
) überein, funktioniert nach Hinzufügen des Moduls in den Schnellzugriff nur noch dieser, der Link imErweiterungen
Reiter produziert den Fehler. Benutzt der Entwickler unterschiedliche Benennungen (was die Entwicklerdokumentation so nicht andeutet), funktioniert es.
*_info.php
schlicht irrelevant, wie ich durch Versuche herausfand. Ich habe bei einer Test Installation sogar diese Datei komplett gelöscht. Installation war trotzdem fehlerfrei und auch das ACP Modul war vorhanden und funktionierte problemlos. Ebenso interessant ist, das man ein Modul in der Modul-Verwaltung überhaupt nur dann woanders einhängen kann, wenn der Ext Coder auch eine passende *_info.php
erstellt hat. Eine Ext bräuchte diese Datei aber nicht zwingend, deren ACP Modul würde auch problemlos ohne diese Datei funktionieren, wenn der Ext Coder den manuellen Modus gewählt hat.*_info.php
absolut relevant. Anvar hat den manuellen Modus gewählt und die abweichenden Angaben bei *_info.php
und in der Migration sind hier quasi bedeutungslos. Der Versuch LFWWH zusätzlich in den Schnellzugriff zu legen hat also nur deswegen funktioniert, weil phpBB zu dieser Aktion die *_info.php
genutzt hat und weil der Modus-Name, wie Mike schon festgestellt hat, anders lautet als per Migration vorgegeben. phpBB hat also beides als zwei verschiedene Module betrachtet und darum ging das.