18.02.2013, 11:45
Ich schreibe aktuell ein Plugin, wobei folgendes Problem auftritt:
Ist in der Datenbank die entsprechende Tabelle nicht vorhanden, kann ich das Plugin in der Übersicht Installieren & Aktivieren. Klicke ich dort, kann ich nur noch Deaktivieren. Es bietet sich mir keine Möglichkeit, es über das Controll-Panel wieder zu deinstallieren, ich muss die Tabelle also manuell löschen. Warum wird mir die Deinstallieren-Schaltfläche nicht angezeigt?
Pluginaufbau:
Weiteres hänge ich mich über den Hook admin_tools_menu_logs ins Logmenü im ACP, um eine neue Seite anzuzeigen. Per admin_tools_action_handler und admin_load will ich eine neue action ermöglichen. Der Link wird angezeigt, klicke ich ihn an, erscheint nur ein Fehler:
[attachment=8360]
Was muss ich hierbei noch beachten?
Ist in der Datenbank die entsprechende Tabelle nicht vorhanden, kann ich das Plugin in der Übersicht Installieren & Aktivieren. Klicke ich dort, kann ich nur noch Deaktivieren. Es bietet sich mir keine Möglichkeit, es über das Controll-Panel wieder zu deinstallieren, ich muss die Tabelle also manuell löschen. Warum wird mir die Deinstallieren-Schaltfläche nicht angezeigt?
Pluginaufbau:
PHP-Code:
function plugin_install() {
// Tabelle kreieren
}
function plugin_is_installed() {
// Tabelle prüfen
}
function plugin_deinstall() {
// Tabelle löschen wenn existiert
}
function plugin_activate() {
// Optionen erstellen
}
function plugin_deactivate() {
// Optionen löschen
}
// Und die Funktionen die zur Laufzeit benötigt werden
Weiteres hänge ich mich über den Hook admin_tools_menu_logs ins Logmenü im ACP, um eine neue Seite anzuzeigen. Per admin_tools_action_handler und admin_load will ich eine neue action ermöglichen. Der Link wird angezeigt, klicke ich ihn an, erscheint nur ein Fehler:
[attachment=8360]
PHP-Code:
function plugin_admin() {
global $db, $lang;
$lang->load("pluginsprachdateien");
require_once MYBB_ROOT.'inc/functions_rebuild.php';
if ($page->active_action != 'meine_action') {
return false;
} else {
// Das, was mir auf der Seite angezeigt werden soll
}
}
function plugin_admin_action() {
$action['meine_action'] = array('active' => 'meine_action');
return $action;
}