MyBB.de Forum

Normale Version: Mein erstes Plugin - Probleme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Murphy schrieb:
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()
{
}

?>
Du erstellst zwar ein Array, doch du verarbeitest es nicht. Ist das Absicht?
Dave schrieb:Mehr zum Plugin System und den Hooks von MyBB kannst du hier finden:
MyBB Wiki
Siehe auch: http://www.mybbcoder.info/wiki/informati...ugins.html
Hallo.

Ich hab mir das Tut von Michael nochmal angeschaut, und dieses hat mir sehr gut geholfen. Doch irgendwie klappt das immernoch nicht. Das Plugin wird in dem Manager einfach nicht angezeigt.

Woran liegt es, dass das Plugin nicht angezeigt wird?
Gibt es Fehler im Code?

Hier der Aktuelle Plugin-Code:

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

 
$plugins->add_hook("portal_start""birthdayportal");

function 
birthdayportal_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",
        
"authorsite"    => "http://mybboard.de/",
        
"version"    => "1.0 Beta",
    );
 }
 
// Plugin aktivieren
function birthdayportal_activate()
 {
  global 
$db;


  
$templatearray = array(
                
"tid" => "NULL",
        
"title"        => "birthdayportal",
        
"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"    => '',
               );
 }

 
// Plugin deaktivieren
function birthdayportal_deactivate()
 {
  global 
$db;

  
$db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='birthdayportal'"); 
 }

?>
Wenn ich eine Datei mit dem Namen birthdayportal.php und oben genanntem Inhalt ins Pluginverzeichnis kopiere, wird das Plugin auch im Pluginmanager angezeigt. Das Problem liegt also nicht am Plugin selbst. Hast du an der MyBB-Installation etwas geändert, das den Fehler verursachen könnte?
Ich hab die Datei nun umbenannt, und bekomme folgenden Fehler:


Fatal error: Cannot redeclare birthdayportal_info() (previously declared in /usr/export/www/vhosts/funnetwork/hosting/sarekk/board/inc/plugins/portal_birthday.php:11) in /usr/export/www/vhosts/funnetwork/hosting/sarekk/board/inc/plugins/portalbirthday.php on line 18
Es befinden sich jetzt beide Dateien im Pluginordner, die die gleichen Funktionen beinhalten. Dadurch kommt es zur Fehlermeldung. Die Datei muss genauso heißen wie die Funktionen benannt sind (+ Endung .php).
Ah, jetzt klappt das ganze doch wunderbar.
Nun 2 Fragen:

- Sind die Befehle soweit richtig, dass ein neues Template eingetragen ist? Das Template wird nämlich nicht hinzugefügt.
- Gibt es ansonsten noch Fehler, die ich beheben sollte?
An sich ist der Code richtig. Wie Dragon schon sagte erstellst du ein Array mit den Informationen zum Template, speicherst die neuen Daten aber nicht in der Datenbank. Schau dir mal bei anderen Plugins an wie das geht.
Michael schrieb:An sich ist der Code richtig. Wie Dragon schon sagte erstellst du ein Array mit den Informationen zum Template, speicherst die neuen Daten aber nicht in der Datenbank. Schau dir mal bei anderen Plugins an wie das geht.

Ah, Oke :-)
Es geht vorran. Soweit läuft alles. Es wird ein Template in der Datenbank erstellt, und dieses wird beim deaktivieren auch wieder gelöscht. Nun noch 2 Fragen:

- Was muss ich einfügen, damit das Plugin auch geladen wird, und angezeigt wird?
- Wofür genau sind diese Angaben bei einer Template-Erstellung:

status
dateline
Hallo Murphy,

zur 1. Frage: wie sieht denn die Plugin-Datei jetzt aus? Kannst du sie noch einmal posten oder anhängen?

Die Antwort auf deine 2. Frage findest du im > "Beitrag #3" in diesem Thema.
linwinman schrieb:zur 1. Frage: wie sieht denn die Plugin-Datei jetzt aus? Kannst du sie noch einmal posten oder anhängen?

Gerne, ist im Anhang.
[attachment=3185]

linwinman schrieb:Die Antwort auf deine 2. Frage findest du im > "Beitrag #3" in diesem Thema.

Das habe ich mir bereits durchgelesen, doch ich weiß einfach nicht genau, was mit dieser dateline bezeichnet wird? Was wird damit ausgesagt, und wie bestimmt man diese? Zudem welche Einstellungen sind undbedingt nötig?
Seiten: 1 2 3 4 5