Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Beim aktivieren eines Plugins Templateveränderung
#1
Hallo zusammen!

Ich bin gerade dabei mir mein eigenes Punktesystem für MyBB zu scripten. Big Grin Leider komme ich an einer Stelle nicht mehr weiter: Wenn ich das Plugin aktivieren, soll eine Templateveränderung in "member_profile" durchgeführt werden. Dies gelingt mir ab und zu aber ich bekomme sie beim deaktivieren nicht mehr weg. Kann mir da jemand helfen (auch bei der Änderung bei aktivieren), wie geht das? Ach und noch was: Wenn ich dort im Template eine von mir definierte Variable einbaue, zum Beispiel "$punkte", wie weise ich diese Variable dann über das Plugin einen Wert zu? Würde mich freuen, wenn ihr meine Fragen beantworten könnt!

Gruß, Henning
Zitieren
#2
Kannst du den entsprechenden Code aus deinem Plugin posten?

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
#3
Das ist der wichtigste Teil. Den Info-Teil habe ich mal weg gelassen. Das mit dem einfügen in das Template habe ich gerade hinbekommen. Wenn ich nun zum Beispiel {$punkte} einfüge, wie kann ich dieser Variable einen Wert zu ordnen? Ich will, dass in der einen hinzugefügten Zelle, die Punkte aus der Datenbank setehen.

PHP-Code:
function punktesystem_install()
{
    global 
$db;
    
$db->write_query("ALTER TABLE `".TABLE_PREFIX."users` ADD `punkte` INT(10) NULL DEFAULT '100';");
}

function 
punktesystem_is_installed()
{
    global 
$db;
    if(
$db->num_rows($db->query("SHOW COLUMNS FROM `".TABLE_PREFIX."users` LIKE 'punkte';")) != 0)
    {
        return 
true;
    }
    return 
false;
}

function 
punktesystem_uninstall()
{
    global 
$db;
    
$db->write_query("ALTER TABLE `".TABLE_PREFIX."users` DROP `punkte`;");
}

function 
punktesystem_activate()

{
    require 
"../inc/adminfunctions_templates.php";
    
find_replace_templatesets("member_profile"'#{\$warning_level}#''{\$warning_level}<tr><td class="trow1"><strong>Punkte:</strong></td><td class="trow1">xxxxxxx</td></tr>');
}

function 
punktesystem_deactivate()

{
    require 
"../inc/adminfunctions_templates.php";    
    
find_replace_templatesets("member_profile"'#<tr><td class="trow1"><strong>Punkte:</strong></td><td class="trow1">xxxxxxx</td></tr>#'''0);
}
    
find_replace_templatesets("member_profile"'#'.preg_quote('{punktesystem}').'#'''0);
}

function 
punktesystem_thread()
{
    global 
$db$mybb;
    
$query $db->simple_select('users''punkte'"uid='".$mybb->user['uid']."'"1);
    
$row $db->fetch_array($query);
    
$neu = array(
        
'punkte'    => $row["punkte"] + 15
    
);
    
$db->update_query('users'$neu"uid='".$mybb->user['uid']."'"1);
}

function 
punktesystem_reply()
{
    global 
$db$mybb;
    
$query $db->simple_select('users''punkte'"uid='".$mybb->user['uid']."'"1);
    
$row $db->fetch_array($query);
    
$neu = array(
        
'punkte'    => $row["punkte"] + 10
    
);
    
$db->update_query('users'$neu"uid='".$mybb->user['uid']."'"1);

Zitieren
#4
Du musst eine Funktion des Plugins an einem Hook ausführen, der vor dem Laden des Templates ausgeführt wird, in dem sich die Variable befindet. In der Funktion musst du dann $punkte definieren und die Variable bei den Globals der Funktion aufnehmen.

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


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Installation eines Plugins Stawler 4 1.882 28.01.2012, 20:01
Letzter Beitrag: Stawler
  PHP-Warnungen beim Aktivieren des eigenen Plugins Michael Malin 24 6.529 12.11.2009, 20:33
Letzter Beitrag: Michael Malin
Sad Problem beim installieren eines Plugins Shadow_Gengar 5 2.562 05.11.2009, 14:05
Letzter Beitrag: StefanT
  Beim aktivieren eines Plugins Templateveränderung henningstorck 1 1.692 30.11.2008, 16:35
Letzter Beitrag: StefanT
  Erklärung eines Plugins... Murphy 9 2.656 03.01.2008, 12:49
Letzter Beitrag: mP765