Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 4 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.171 22.07.2011, 14:54
Letzter Beitrag: dnlwgnr