Ohje, ich hab noch nie einen Plugin selbst gecoded! ... weiß gar nicht wie ich da anfangen soll... Hmm, mal schaun... Ich kann die Änderungen aber auf jedenfall posten. Dauert nur etwas, da ich die Einstellungen erst wieder zusammensuchen muß.
Den Fehler hatte ich auch (deshalb auch dieser Thread hier).
Wer eine Wahrheit verbergen will, braucht sie nur offen auszusprechen - sie wird einem ja doch nicht geglaubt.
(Charles Talleyrand)
Der Fehler scheint aufzutreten wenn man das erste mal wieder auf die Seite geht. Wäre nett wenn du deine Änderungen bei Gelegenheit zusammensuchen könntest . Bei der Erstellung des Plug-ins kann ich dir evtl. helfen.
12.10.2006, 15:09 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2006, 23:17 von Grauer-Magier.)
Damit man die Statistikbox aus dem Portal, auf der Startseite nutzen kann, habe ich folgenden Code aus der Portal.php kopiert und in die index.php geschrieben. Und zwar über die Zeile
PHP-Code:
// Build the who's online bit on the index page.
PHP-Code:
// If user is known, welcome them { if($mybb->user['uid'] != 0) { if($mybb->user['receivepms'] != "no" && $mybb->usergroup['canusepms'] != "no" && $mybb->settings['portal_showpms'] != "no" && $mybb->settings['enablepms'] != "no") { $query = $db->simple_select(TABLE_PREFIX."privatemessages", "COUNT(*) AS pms_total, SUM(IF(dateline>'".$mybb->user['lastvisit']."' AND folder='1','1','0')) AS pms_new, SUM(IF(status='0' AND folder='1','1','0')) AS pms_unread", "uid='".$mybb->user['uid']."'"); $messages = $db->fetch_array($query); if(!$messages['pms_new']) { $messages['pms_new'] = 0; } // the SUM() thing returns "" instead of 0 if($messages['pms_unread'] == "") { $messages['pms_unread'] = 0; } $lang->pms_received_new = sprintf($lang->pms_received_new, $mybb->user['username'], $messages['pms_new']); eval("\$pms = \"".$templates->get("portal_pms")."\";"); } // get number of new posts, threads, announcements $query = $db->simple_select(TABLE_PREFIX."posts", "COUNT(pid) AS newposts", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newposts = $db->fetch_field($query, "newposts"); if($newposts) { // if there aren't any new posts, there is no point in wasting two more queries $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newthreads", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newthreads = $db->fetch_field($query, "newthreads"); $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newann", "dateline>'".$mybb->user['lastvisit']."' AND fid IN (".$mybb->settings['portal_announcementsfid'].") $unviewwhere"); $newann = $db->fetch_field($query, "newann"); if(!$newthreads) { $newthreads = 0; } if(!$newann) { $newann = 0; } } else { $newposts = 0; $newthreads = 0; $newann = 0; }
Dann hab ich in die Sprachdatei index.lang.php die Sprachvariablen aus portal.lang.php eingefügt:
"$l['new_announcements']"
"$l['new_announcement']"
"$l['new_threads']"
"$l['new_thread']"
"$l['new_portal_posts']" (diese ist im Original "$l['new_posts']"
"$l['new_post']"
Und um es graphisch so zu machen wie ich es wollte habe ich dann folgendes in das Template index eingefügt:
12.10.2006, 15:24 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2006, 15:34 von frankrieger.)
Zu dem Schönheitsfehler:
Kommentier den Originaleintrag $l['new_posts'] der index.lang.php wieder ein (//entfernen).
Danach ändere den Eintrag des neuen (von der portal.lang.php) in
$l['new_portal_posts']
Und ändere in der index.php die Zeile
P.S.: Die Templates
index_announcement
index_announcement_numcomments
index_announcement_numcomments_no
index_latestthreads
index_latestthreads_thread
kann man sich so wie ich das sehe sparen (keine Garantie, einfach mal ausprobieren)...
[edit] In deinem Quelltext ist glaube ich folgender Teil doppelt:
PHP-Code:
// get number of new posts, threads, announcements $query = $db->simple_select(TABLE_PREFIX."posts", "COUNT(pid) AS newposts", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newposts = $db->fetch_field($query, "newposts"); if($newposts) { // if there aren't any new posts, there is no point in wasting two more queries $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newthreads", "dateline>'".$mybb->user['lastvisit']."' $unviewwhere"); $newthreads = $db->fetch_field($query, "newthreads"); $query = $db->simple_select(TABLE_PREFIX."threads", "COUNT(tid) AS newann", "dateline>'".$mybb->user['lastvisit']."' AND fid IN (".$mybb->settings['portal_announcementsfid'].") $unviewwhere"); $newann = $db->fetch_field($query, "newann"); if(!$newthreads) { $newthreads = 0; } if(!$newann) { $newann = 0; } } else { $newposts = 0; $newthreads = 0; $newann = 0; }
Eine Homepage ist nie fertig, man hört nur auf an ihr zu arbeiten - Unbekannter Verfasser