Ich nutze in meinem Forum das Plugin Index Top Poster und habe es aktuell auf meinem Index, jetzt wollte ich das gerne in die Navigation einbauen, so dass dieses nur auf einer anderen Seite sichtbar ist und nicht auf dem Index. Habe es mittels
Nenne einfach des Template topposter und die Datei topposter.php und ersetze jedes Mal das Wort "Impressum" aus dem Beispiel durch "Topposter" (immer die Groß- und Kleinschreibung beachten).
Im Template ersetzt du dann INHALT durch {$itpf}{$itph}
Dann suchst du in der Datei inc/plugins/itp.php nach der Zeile:
PHP-Code:
$plugins->add_hook('index_start', 'itp');
und änderst sie in:
PHP-Code:
$plugins->add_hook('global_intermediate', 'itp');
Danach sollte es eigentlich keinen Fehler mehr geben und du kannst auf die Topposterseite verlinken mit:
Hast du die PHP-Dateien mit einem geeigneten Editor bearbeitet?
Ich habe dir hier mal eine topposter.php angehängt, die funktioniert. Natürlich muss auch hierfür die Zeile in inc/plugins/itp.php geändert werden zu:
Habe deine PHP einmal eingebaut, soweit wurde mit auch die Seite angezeigt, bis ich das Plugin finden Ordner lade, nachdem ich die Zeile geändert habe. Nun ergibt sich folgender Fehler im Forum auf der Startseite, sowie im ACP:
Fatal error: Call to a member function set_language() on null in /global.php on line 94
/** * @author Pars (http://MyBBIran.com) * @copyright 2010 */
//Add hook for index top posters $plugins->add_hook('global_intermediate‘ , 'itp‘);
//info for index top poster function itp_info() { return array( 'name' => 'Index Top Posters', 'description' => 'Show Todays/Weekly/Monthly/Forum Top Posters in Index', 'website' => 'http://MyBBIran.com', 'author' => 'Pars, MyBBIran.com', 'authorsite' => 'http://MyBBIran.com', 'version' => '1.0.1', 'compatibility' => '*' ); }
//actition for MyBB Iran function itp_activate() { require MYBB_ROOT.'/inc/adminfunctions_templates.php'; global $lang, $db, $mybb, $templates, $captcha; $query = $db->simple_select("settinggroups","COUNT(*) as rows"); $rows = $db->fetch_field($query,"rows"); $itp_group = array('name' => 'itp','title' => 'Index Top Posters','description' => 'Settings for Index Top Posters Plugin','disporder' =>$rows + 1,'isdefault' => '0',); $db->insert_query('settinggroups',$itp_group); $gid = $db->insert_id(); $itp_setting_1 = array('name' => 'showitp','title' =>'On/Off','description' =>'Display Index Top Posters in Index?','optionscode' => 'onoff','value' => '1','disporder' => 1,'gid' => intval($gid),); $itp_setting_2 = array('name' => 'pofitp','title' =>'Position ','description' =>'Where do you want to display Index Top Posters?','optionscode' => 'select\nheader=Header\nfooter=Footer','value' => 'header','disporder' => 2,'gid' => intval($gid),); $itp_setting_3 = array('name' => 'inbitp','title' =>'Custom text or banner','description' =>'You can enter text or arbitrary code for displayed in below Index Top Posters.','optionscode' => 'textarea','value' => '','disporder' => 3,'gid' => intval($gid),); $itp_setting_4 = array('name' => 'limititp','title' =>'Number of Users','description' =>'How many users would be displayed?','optionscode' => 'text','value' => '5','disporder' => 4,'gid' => intval($gid),); $itp_setting_5 = array('name' => 'userstyleitp','title' =>'Username Style','description' =>'Do you want to display Username Style?','optionscode' => 'yesno','value' => '1','disporder' => 5,'gid' => intval($gid),); $itp_setting_6 = array('name' => 'itpava','title' =>'Display User Avatar','description' =>'Do you want to Display User Avatar?','optionscode' => 'yesno','value' => '0','disporder' => 6,'gid' => intval($gid),); $db->insert_query('settings',$itp_setting_1); $db->insert_query('settings',$itp_setting_2); $db->insert_query('settings',$itp_setting_3); $db->insert_query('settings',$itp_setting_4); $db->insert_query('settings',$itp_setting_5); $db->insert_query('settings',$itp_setting_6); rebuildsettings(); $itp_template = array( "title" => 'itp', "template" => $db->escape_string('<table border="0" cellspacing="{$theme[\'borderwidth\']}" cellpadding="{$theme[\'tablespace\']}" class="tborder"> <tr> <td class="thead" colspan="4" align="center"><strong>{$lang->itp}</strong></td> </tr> <tr> <td class="tcat" width="25%" align="center"><strong>{$lang->t_itp}</strong></td> <td class="tcat" width="25%" align="center"><strong>{$lang->w_itp}</strong></td> <td class="tcat" width="25%" align="center"><strong>{$lang->m_itp}</strong></td> <td class="tcat" width="25%" align="center"><strong>{$lang->top_itp}</strong></td> </tr> <tr> <td class="trow1" width="25%" valign="top"> {$today_itp} </td> <td class="trow2" width="25%" valign="top"> {$week_itp} </td> <td class="trow1" width="25%" valign="top"> {$m_itp} </td> <td class="trow2" width="25%" valign="top"> {$top_itp} </td> </tr> {$banner} </table> <div style="text-align: right; font-size: 10px;"> Top Posters by <a href="http://www.MyBBIran.com" target="blank">MyBBIran.com</a></div> <br />'), "sid" => "-1", "version" => "1.0", "dateline" => "1157735635", ); $db->insert_query("templates", $itp_template); find_replace_templatesets("index", '#{\$boardstats}#', "{\$itpf}\n{\$boardstats}"); find_replace_templatesets("index", '#{\$header}#', "{\$header}\n{\$itph}"); }
//Deactive ITP (very good because no change need) function itp_deactivate() { require MYBB_ROOT.'/inc/adminfunctions_templates.php'; global $db; $db->query("DELETE FROM ".TABLE_PREFIX."templates WHERE title='itp'"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('showitp', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('pofitp', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('inbitp', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('limititp', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('userstyleitp', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name IN('itpava', 'itp')"); $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='itp'"); rebuildsettings(); find_replace_templatesets("index", '#'.preg_quote('{$itpf}').'#', '',0); find_replace_templatesets("index", '#'.preg_quote('{$itph}').'#', '',0); }
In der geänderten Zeile sind zwei falsche Anführungsstriche, jeweils am Ende von intermediate und itp. Wenn du diese beiden änderst, sollte es funktionieren.