Ok gut ich denke auch das ohne den eigentlichen code kein weiterkommen möglich ist.. in der Regel mache ich dies nicht gerne Code zu posten der unfertig ist oder nicht richtig funktioniert.. aber da wir so nicht weiter kommen..
Das Problem, soweit läuft alles ganz gut die abfragen sind alle korrekt, das Problem ist jetzt wenn ich ein neues Thema aufmache oder auf einen beitrag antworte wird die Anzeige nicht aktualisiert. auch ein Reload der page bringt nichts.. erst das Deaktivieren und Aktivieren des Plugins bringt den erwünschten effekt das die daten aktuallisiert werden.. was aber so nicht sein soll.. es sollte sich halt durch reload aktuallisieren...
hier nochmal ein beispiel Bild von meiner Toplist, und der Overview...
Das Leben ist schon ein scheiss Game, aber mit einer Pervers geilen Grafik DOS Forum | DOSHISTORY
Du führst die Funktionen beim Aktivieren vom Plugin aus und schreibst die Daten in das Template. Du musst aber den Code bei jedem Aufruf ausführen und als Variable ins Template einfügen.
Versuche das:
PHP-Code:
<?php ############################################################# # Top List 0.5 Beta # ############################################################# # # # Explora.Pc's Software # # Copyright (c) 1998 - 2007 # # by. Benjamin Nehls # # # # Website: www.Exp-Soft.de # # # # learn from this file but do not change any data on this # # file write your file / plugin self! # # # #############################################################
if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); }
$plugins->add_hook("index_start","toplist");
function toplist_info() { return array( "name" => "TopList", "description" => "Zeigt die letzten Beiträge der User an & die besten Poster an.", "website" => "http://www.Exp-Soft.de", "author" => "Benjamin Nehls", "authorsite" => "http://www.Exp-Soft.de", "version" => "0.5 Beta", ); }
require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets("index", '#{\$toplist}(\r?)\n#', "", 0); $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='index_toplist'"); // Einstellungsgruppen löschen $query = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='TopList'"); $g = $db->fetch_array($query); $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid='".$g['gid']."'");
// Einstellungen löschen $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='".$g['gid']."'");
// Rebuilt settings.php rebuild_settings(); }
// ###################### Hier werden die Besten Poster ermittelt und ausgegeben ##################################### function top10() { global $db; $top10 .= "<table border=\"0\" width=\"100%\"><tr><td width=\"60%\"><strong>Username</strong></td><td width=\"40%\" align=\"right\"><strong>Beiträge</strong></td></tr>";
$query2 = $db->query ("SELECT username,uid,postnum FROM ".TABLE_PREFIX."users ORDER BY postnum DESC LIMIT 0,10"); while ($topposters = $db->fetch_array($query2)) { $top10 .= "<tr><td class=\"smalltext\"><a href=\"member.php?action=profile&uid=".$topposters['uid']."\">".$topposters['username']."</a></td><td align=\"right\" class=\"smalltext\"><a href=\"search.php?action=finduser&uid=".$topposters['uid']."\">".$topposters['postnum']."</a></td></tr>"; }
$top10 .= "</table>";
return $top10; }
// ###################### Hier werden die letzten Beiträge der User ermittelt und ausgegeben ######################### function thrd10() { global $db; $thrd10 .= "<table border=\"0\" width=\"100%\"><tr><td width=\"60%\"><strong>Thread</strong></td><td width=\"20%\" align=\"right\"><Strong>Erstellt von</strong></td><td width=\"20%\" align=\"right\"><Strong>Antowrten</strong></td></tr>";
$query2 = $db->query ("SELECT * FROM ".TABLE_PREFIX."threads ORDER BY lastpost DESC LIMIT 0,10")or die ("error"); while ($threadsdb = $db->fetch_array($query2)) { $query3 = $db->query ("SELECT uid,pid,tid FROM ".TABLE_PREFIX."posts WHERE tid=".$threadsdb['tid'].""); $threadsdb2 = $db->fetch_array($query3); $thrd10 .= "<tr><td width=\"60%\" class=\"smalltext\"><a href=\"showthread.php?tid=".$threadsdb['tid']."&pid=".$threadsdb2['pid']."#pid".$threadsdb2['pid']."\">".substr(mysql_real_escape_string($threadsdb['subject']),0,50)."</a></td><td width=\"20%\" align=\"right\" class=\"smalltext\">".$threadsdb['lastposter']."</td><td width=\"20%\" align=\"right\" class=\"smalltext\">".$threadsdb['replies']."</td></tr>"; }
Jup, und nun ist da wieder das Problem, es Funktioniert nicht, so hatte ich das anfangs auch nach deiner Anleitung gecodet..
Allerdings ist das Resultat dann dieses:
Und genau das Verstehe ich nicht.. denn eigentlich müsste es doch funktionieren?!
P.s: das Script ist ja noch Beta in der Finale wird das dann auch alles beachtet aber erstmal hab ich halt dieses Problem ohne die lösung komm ich dann nicht weiter..
Das Leben ist schon ein scheiss Game, aber mit einer Pervers geilen Grafik DOS Forum | DOSHISTORY
27.08.2007, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2007, 16:24 von MonGol.)
hey leute!!
versucht mal diesen code:
PHP-Code:
<?php ############################################################# # Top List 0.5 Beta # ############################################################# # # # Explora.Pc's Software # # Copyright (c) 1998 - 2007 # # by. Benjamin Nehls # # # # Website: www.Exp-Soft.de # # # # learn from this file but do not change any data on this # # file write your file / plugin self! # # # #############################################################
if(!defined("IN_MYBB")) { die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined."); }
$plugins->add_hook("index_start","toplist");
function toplist_info() { return array( "name" => "TopList", "description" => "Zeigt die letzten Beiträge der User an & die besten Poster an.", "website" => "http://www.Exp-Soft.de", "author" => "Benjamin Nehls", "authorsite" => "http://www.Exp-Soft.de", "version" => "0.5 Beta", ); }
require MYBB_ROOT."/inc/adminfunctions_templates.php"; find_replace_templatesets("index", '#{\$toplist}(\r?)\n#', "", 0); $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='index_toplist'"); // Einstellungsgruppen löschen $query = $db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name='TopList'"); $g = $db->fetch_array($query); $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE gid='".$g['gid']."'");
// Einstellungen löschen $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE gid='".$g['gid']."'");
// Rebuilt settings.php rebuild_settings(); }
// ###################### Hier werden die Besten Poster ermittelt und ausgegeben ##################################### function top10() { global $db; $top10 .= "<table border=\"0\" width=\"100%\"><tr><td width=\"60%\"><strong>Username</strong></td><td width=\"40%\" align=\"right\"><strong>Beiträge</strong></td></tr>";
$query2 = $db->query ("SELECT username,uid,postnum FROM ".TABLE_PREFIX."users ORDER BY postnum DESC LIMIT 0,10") OR die($db->error()); while ($topposters = $db->fetch_array($query2)) { $top10 .= "<tr><td class=\"smalltext\"><a href=\"member.php?action=profile&uid=".$topposters['uid']."\">".$topposters['username']."</a></td><td align=\"right\" class=\"smalltext\"><a href=\"search.php?action=finduser&uid=".$topposters['uid']."\">".$topposters['postnum']."</a></td></tr>"; }
$top10 .= "</table>";
return $top10; }
// ###################### Hier werden die letzten Beiträge der User ermittelt und ausgegeben ######################### function thrd10() { global $db; $thrd10 .= "<table border=\"0\" width=\"100%\"><tr><td width=\"60%\"><strong>Thread</strong></td><td width=\"20%\" align=\"right\"><Strong>Erstellt von</strong></td><td width=\"20%\" align=\"right\"><Strong>Antowrten</strong></td></tr>";
$query2 = $db->query ("SELECT * FROM ".TABLE_PREFIX."threads ORDER BY lastpost DESC LIMIT 0,10") OR die($db->error()); while ($threadsdb = $db->fetch_array($query2)) { $query3 = $db->query ("SELECT uid,pid,tid FROM ".TABLE_PREFIX."posts WHERE tid=".$threadsdb['tid'].""); $threadsdb2 = $db->fetch_array($query3); $thrd10 .= "<tr><td width=\"60%\" class=\"smalltext\"><a href=\"showthread.php?tid=".$threadsdb['tid']."&pid=".$threadsdb2['pid']."#pid".$threadsdb2['pid']."\">".substr(mysql_real_escape_string($threadsdb['subject']),0,50)."</a></td><td width=\"20%\" align=\"right\" class=\"smalltext\">".$threadsdb['lastposter']."</td><td width=\"20%\" align=\"right\" class=\"smalltext\">".$threadsdb['replies']."</td></tr>"; }
27.08.2007, 23:03 (Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2007, 23:06 von Garlant.)
Dein Fehler liegt im Einfügen des Templates.
Dadurch, dass du die Variablen/Funktionen beim einspeisen des Templates nicht escaped hast, wurden diese beim Einfügen des Templates ausgeführt und bereits im ausgeführten Zustand in Template geschrieben.
Das im Anhang enthaltene Archiv enthält eine funktionierende Version deines Plugins.
Ich habe darin Kleinigkeiten angepasst.
Geht es dann? Ist die Datei inc/settings.php beschreibbar?
Gruß,
Michael Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.