Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Mein erstes Plugin - Probleme
#1
Hallo.

Ich versuche mich gerade an meinem ersten Plugin. Es ist nur etwas kleines, weil ich das ganze erstmal üben möchte.

Hier der Code:

PHP-Code:
<?php
/**
* Copryright by Murphy 2008, All Rights Reserved
*/

$plugins->add_hook("portal_start", "birthday_portal");

function
birthday_portal_info()
{
return array(
"name" => "Birthday Portal",
"description" => "Mit diesem Plugin wird eine Box im Portal hinzugefügt. In der Box werden die heutigen Geburtstage angezeigt.",
"website" => "http://mybboard.de/",
"author" => "Murphy",
"version" => "1.0 Beta",
);
}

// Plugin aktivieren
function birthday_portal_activate()
{
$boardmsg_template = array(
"title" => 'portal_birthday',
"template" => "<table border=\"0\" cellspacing=\"{\$theme[\'borderwidth\']}\" cellpadding=\"{\$theme[\'tablespace\']}\" class=\"tborder\">
<tr>
<td class=\"thead\"><strong>Test</strong></td>
</tr>
<tr>
<td class=\"trow1\">
1
</td>
</tr>
</table><br />"
,
"sid" => -1,
"version" => 120,
"status" => '',
"dateline" => 1134703642,
);
}


// Plugin deaktivieren
function birthday_portal_deactivate()
{
}

?>

Es wird im Plugin-Manager kein Fehler ausgegeben, doch die Datei wird zum aktvieren nicht ausgewählt.

Dann habe ich noch 2 Fragen:

Wofür sind diese Dinge:

"sid" => -1,
"version" => 120,
"status" => '',
"dateline" => 1134703642,

Und, wie sollte ich das ganze beim deaktivieren machen?
Bitte die Suche u. die Doku nutzen.
______________________________

mfg Murphy
Zitieren
#2
Hallo Murphy,

siehe dir hierzu z. B. den Aufbau der Plugin-Datei > "Side Boxes! 2.0" an.

Wenn du nur eine Box anzeigen möchtest, kannst du die Funktion "sideboxes_activate()" entsprechend auf das Einfügen eines Templates (s. "$sideboxes_setting_5") "abspecken" - z. B. nur ein Template "birthday_portal".

Ich hoffe, dies hilft dir weiter.
Zitieren
#3
Murphy schrieb:Es wird im Plugin-Manager kein Fehler ausgegeben, doch die Datei wird zum aktvieren nicht ausgewählt.
Wird das Plugin nicht angezeigt? Heißt die Datei birthday_portal.php? Es kann auch ein Problem sein, dass die Hauptfunktion birthday_portal() nicht definiert ist.
Murphy schrieb:Wofür sind diese Dinge:

"sid" => -1,
"version" => 120,
"status" => '',
"dateline" => 1134703642,
sid = Set-ID des Templatesets. -1 steht für globale Templates.
version = Version des Templates (entsprechend der MyBB-Version)
status = Originaltemplate/Geändertes Template
dateline = Zeitpunkt
Murphy schrieb:Und, wie sollte ich das ganze beim deaktivieren machen?
Da musst du alle Änderungen rückgängig machen, d.h. Templates löschen usw. Schau dir dazu auch schon fertige Plugins an.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#4
Michael schrieb:
Murphy schrieb:Es wird im Plugin-Manager kein Fehler ausgegeben, doch die Datei wird zum aktvieren nicht ausgewählt.
Wird das Plugin nicht angezeigt? Heißt die Datei birthday_portal.php? Es kann auch ein Problem sein, dass die Hauptfunktion birthday_portal() nicht definiert ist.


Ganz genau. Das Plugin wird im Plugin-Manager nicht angezeigt. Die Datei heißt genau so, Ja.
Bitte die Suche u. die Doku nutzen.
______________________________

mfg Murphy
Zitieren
#5
Befindet sich im Ordner inc/plugins/ eine Datei, die kein Plugin ist?

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#6
Michael schrieb:Befindet sich im Ordner inc/plugins/ eine Datei, die kein Plugin ist?

Nur eine Html-Datei, damit dort niemand in dem Ordner rumschlummern kann. Also eine Automatische Weiterleitung.
Bitte die Suche u. die Doku nutzen.
______________________________

mfg Murphy
Zitieren
#7
Hallo Murphy,

vllt. hilft dir auch dieses Thema weiter: > "Wie ist ein Plugin aufgebaut?".
Zitieren
#8
Michael schrieb:Es kann auch ein Problem sein, dass die Hauptfunktion birthday_portal() nicht definiert ist.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#9
Michael schrieb:
Michael schrieb:Es kann auch ein Problem sein, dass die Hauptfunktion birthday_portal() nicht definiert ist.

Das bedeutet?
Welche Funktion muss ich hinzufügen?
Im Eingans-Post ist der gesamte Code vorhanden.
Bitte die Suche u. die Doku nutzen.
______________________________

mfg Murphy
Zitieren
#10
Mittels dir Zeile
PHP-Code:
$plugins->add_hook("portal_start", "birthday_portal");
gibst du ja dem System an der Stelle portal_start die Funktion birthday_portal auszuführen. portal_start ist ein so genannter Hook und dient dazu Funktionen von Plugins an diversen Stellen in Code ausführen zu können, ohne den eigentliche Code bearbeiten zu müssen. Die funktion birthday_portal ist aber nicht definiert, daher kommt es da zu Problemen.

Mehr zum Plugin System und den Hooks von MyBB kannst du hier finden:
MyBB Wiki
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  erstes Posting soll oben stehen bleiben im Thread Bogus 3 2.436 22.07.2011, 15:54
Letzter Beitrag: dnlwgnr