Please make sure IN_MYBB is defined."); } $page->add_breadcrumb_item("Inplaytracker - Administration", "index.php?module=tools-inplaytracker"); // Inaktive Szenen seit x Tagen finden if(!$mybb->input['action']) { // Zeit-Filter erstelen $time = TIME_NOW; $time = date("d.m.Y", $time); $days = $mybb->get_input('days'); if(empty($days)) { $days = 30; } // Szenen auslesen $ipforum = $mybb->settings['inplaytracker_forum']; $filter = strtotime("$time - $days days"); $query = $db->query("SELECT * FROM ".TABLE_PREFIX."threads LEFT JOIN ".TABLE_PREFIX."forums ON ".TABLE_PREFIX."threads.fid = ".TABLE_PREFIX."forums.fid WHERE parentlist LIKE '%$ipforum%' AND ".TABLE_PREFIX."threads.lastpost < '$filter' ORDER BY ".TABLE_PREFIX."threads.lastpost ASC"); // Navigation erstellen $page->output_header("Inplaytracker Administration"); $sub_tabs['inplaytracker'] = array( 'title' => "Inaktive Szenen", 'link' => "index.php?module=tools-inplaytracker", 'description' => "Finde Szenen die seit $days Tagen inaktiv sind." ); $sub_tabs['inplaytracker_deleted'] = array( 'title' => "Szenen mit inaktiven Mitgliedern", 'link' => "index.php?module=tools-inplaytracker&action=find-deleted", 'description' => "Finde Szenen mit inaktiven Charakteren." ); $sub_tabs['inplaytracker_update'] = array( 'title' => "Plugin updaten", 'link' => "index.php?module=tools-inplaytracker&action=update", 'description' => "Inplaytracker auf die neueste Version updaten." ); $page->output_nav_tabs($sub_tabs, 'inplaytracker'); // Formular & Tabelle generieren $form = new Form("index.php?module=tools-inplaytracker", "post"); $form_container = new FormContainer("Inaktive Szenen"); $form_container->output_row_header("Filter"); $form_container->output_row_header("Suchen"); $html_filters = "

"; $form_container->output_cell($html_filters); $form_container->output_cell("
".$form->generate_submit_button("Szenen suchen", array("name" => "filter_scenes"))."
"); $form_container->construct_row(); $form_container->end(); // Szenen auflisten $form_container = new FormContainer(Szenen); $i = 0; while($scenes = $db->fetch_array($query)) { $parentlist = ",".$scenes['parentlist'].","; if(preg_match("/,$ipforum,/i", $parentlist)) { $form_container->output_cell("settings['bburl']}/showthread.php?tid={$scenes['tid']}\" target=\"blank\">{$scenes['subject']}"); $form_container->construct_row(); $i++; } } // Keine inaktiven Szenen? if($i == 0) { $form_container->output_cell("Keine inaktiven Szenen gefunden!"); $form_container->construct_row(); } $form_container->end(); $form->end(); $page->output_footer(); } // Szenen mit inaktiven Charakteren finden if($mybb->input['action'] == "find-deleted") { // Navigation erstellen $page->output_header("Inplaytracker Administration"); $sub_tabs['inplaytracker'] = array( 'title' => "Inaktive Szenen", 'link' => "index.php?module=tools-inplaytracker", 'description' => "Finde Szenen die seit $days Tagen inaktiv sind." ); $sub_tabs['inplaytracker_deleted'] = array( 'title' => "Szenen mit inaktiven Mitgliedern", 'link' => "index.php?module=tools-inplaytracker&action=find-deleted", 'description' => "Finde Szenen mit inaktiven Charakteren." ); $sub_tabs['inplaytracker_update'] = array( 'title' => "Plugin updaten", 'link' => "index.php?module=tools-inplaytracker&action=update", 'description' => "Inplaytracker auf die neueste Version updaten." ); $page->output_nav_tabs($sub_tabs, 'inplaytracker_deleted'); // Formular & Tabelle generieren $form = new Form("index.php?module=tools-inplaytracker&action=find-deleted", "post"); $form_container = new FormContainer("Szenen mit inaktiven Mitgliedern"); $form_container = new FormContainer(Szenen); $i = 0; // Szenen auslesen $ipforum = $mybb->settings['inplaytracker_forum']; $query = $db->query("SELECT * FROM ".TABLE_PREFIX."threads LEFT JOIN ".TABLE_PREFIX."forums ON ".TABLE_PREFIX."threads.fid = ".TABLE_PREFIX."forums.fid WHERE parentlist LIKE '%$ipforum%' ORDER BY tid ASC"); // Szenen auflisten while($scenes = $db->fetch_array($query)) { $parentlist = ",".$scenes['parentlist'].","; if(preg_match("/,$ipforum,/i", $parentlist)) { $partners = explode(",", $scenes['partners']); foreach($partners as $partner) { $user = get_user($partner); if(empty($user)) { $form_container->output_cell("settings['bburl']}/showthread.php?tid={$scenes['tid']}\" target=\"blank\">{$scenes['subject']}"); $form_container->construct_row(); $i++; } } } } // Keine inaktiven Szenen? if($i == 0) { $form_container->output_cell("Keine Szenen gefunden!"); $form_container->construct_row(); } $form_container->end(); $form->end(); $page->output_footer(); } // Inplaytracker updaten if($mybb->input['action'] == "update") { if($mybb->request_method == "post") { // Datenbank aktualisieren if(isset($mybb->input['update_database'])) { if(!$db->field_exists("iport", "threads")) { $db->query("ALTER TABLE `".TABLE_PREFIX."threads` ADD `iport` VARCHAR(155) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `ipdate`;"); } if(!$db->field_exists("iport", "posts")) { $db->query("ALTER TABLE `".TABLE_PREFIX."posts` ADD `iport` VARCHAR(155) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `ipdate`;"); } if(!$db->field_exists("ipdaytime", "threads")) { $db->query("ALTER TABLE `".TABLE_PREFIX."threads` ADD `ipdaytime` VARCHAR(155) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `iport`;"); } if(!$db->field_exists("ipdaytime", "posts")) { $db->query("ALTER TABLE `".TABLE_PREFIX."posts` ADD `ipdaytime` VARCHAR(155) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `iport`;"); } if(!$db->field_exists("openscene", "threads")) { $db->query("ALTER TABLE `".TABLE_PREFIX."threads` ADD `openscene` int(11) NOT NULL DEFAULT '-1';"); } if(!$db->field_exists("openscene", "posts")) { $db->query("ALTER TABLE `".TABLE_PREFIX."posts` ADD `openscene` int(11) NOT NULL DEFAULT '-1';"); } if(!$db->field_exists("postorder", "threads")) { $db->query("ALTER TABLE `".TABLE_PREFIX."threads` ADD `postorder` int(11) NOT NULL DEFAULT '1';"); } if(!$db->field_exists("postorder", "posts")) { $db->query("ALTER TABLE `".TABLE_PREFIX."posts` ADD `postorder` int(11) NOT NULL DEFAULT '1';"); } } // ACP Einstellungen aktualisieren if(isset($mybb->input['update_settings'])) { $gid = $db->fetch_field($db->query("SELECT gid FROM ".TABLE_PREFIX."settinggroups WHERE name = 'inplaytracker'"), "gid"); $setting_array = array( 'inplaytracker_location' => array( 'title' => 'Ort-Feld hinzufügen?', 'description' => 'Sollen User ein Feld ausfüllen können, in dem siie zusätzlich den Spielort angeben können?', 'optionscode' => 'yesno', 'value' => 1, 'disporder' => 3 ), 'inplaytracker_daytime' => array( 'title' => 'Tageszeit-Feld hinzufügen?', 'description' => 'Sollen User ein Feld ausfüllen können, in dem siie zusätzlich die Tageszeit angeben können?', 'optionscode' => 'yesno', 'value' => 0, 'disporder' => 4 ), 'inplaytracker_timeformat' => array( 'title' => 'Eigene Zeitrechnung nutzen?', 'description' => 'Soll das Plugin eine Zeitrechnung abseits vom gregorianischen Kalender nutzen (auch ankreuzen, wenn euer Forum vor 1970 oder nach 2038 spielt!)?', 'optionscode' => 'yesno', 'value' => 0, 'disporder' => 5 ), 'inplaytracker_months' => array( 'title' => 'Monatsnamen', 'description' => 'Nur bei eigener Zeitrechnung: Welche Monate sollen in deinem Forum auswählbar sein? Besonders interessant für Fantasy- und/oder Fandomforen!', 'optionscode' => 'text', 'value' => 'Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember', 'disporder' => 6 ), ); foreach($setting_array as $name => $setting) { $setting['name'] = $name; $setting['gid'] = $gid; $db->insert_query('settings', $setting); } rebuild_settings(); } // Datenbankspalte partners aktualisieren if(isset($mybb->input['update_partner'])) { // Szenen auslesen $ipforum = $mybb->settings['inplaytracker_forum']; $query = $db->query("SELECT * FROM ".TABLE_PREFIX."threads WHERE partners != ''"); while($scenes = $db->fetch_array($query)) { $partners = explode(", ", $scenes['partners']); $partners_new = array(); foreach($partners as $partner) { $partner = $db->escape_string($partner); $user_id = $db->fetch_field($db->query("SELECT uid FROM ".TABLE_PREFIX."users WHERE username = '$partner'"), "uid"); $partners_new[] = $user_id; } $partners_new = implode(",", $partners_new); $new_record = array( "partners" => $partners_new ); $db->update_query("threads", $new_record, "tid = '$scenes[tid]'"); } } // Datenbankspalte ipdate aktualisieren if(isset($mybb->input['update_date'])) { $ipforum = $mybb->settings['inplaytracker_forum']; $query = $db->query("SELECT * FROM ".TABLE_PREFIX."threads WHERE ipdate != ''"); while($scenes = $db->fetch_array($query)) { $ipdate = explode(" ", $scenes['ipdate']); $months = array( "january" => "Januar", "february" => "Februar", "march" => "März", "april" => "April", "may" => "Mai", "june" => "Juni", "july" => "Juli", "august" => "August", "september" => "September", "october" => "Oktober", "november" => "November", "december" => "Dezember" ); $ipdate['1'] = array_search($ipdate['1'], $months); $ipdate = implode(" ", $ipdate); $ipdate = strtotime($ipdate); $new_record = array( "ipdate" => $ipdate ); $db->update_query("threads", $new_record, "tid = '$scenes[tid]'"); } } if(isset($mybb->input['update_alerts'])) { if(class_exists('MybbStuff_MyAlerts_AlertTypeManager')) { $alertTypeManager = MybbStuff_MyAlerts_AlertTypeManager::getInstance(); if (!$alertTypeManager) { $alertTypeManager = MybbStuff_MyAlerts_AlertTypeManager::createInstance($db, $cache); } $alertType = new MybbStuff_MyAlerts_Entity_AlertType(); $alertType->setCode('inplaytracker_newthread'); // The codename for your alert type. Can be any unique string. $alertType->setEnabled(true); $alertType->setCanBeUserDisabled(true); $alertTypeManager->add($alertType); $alertType = new MybbStuff_MyAlerts_Entity_AlertType(); $alertType->setCode('inplaytracker_newreply'); // The codename for your alert type. Can be any unique string. $alertType->setEnabled(true); $alertType->setCanBeUserDisabled(true); $alertTypeManager->add($alertType); } } } // Navigation erstellen $page->output_header("Inplaytracker Administration"); $sub_tabs['inplaytracker'] = array( 'title' => "Inaktive Szenen", 'link' => "index.php?module=tools-inplaytracker", 'description' => "Finde Szenen die seit $days Tagen inaktiv sind." ); $sub_tabs['inplaytracker_deleted'] = array( 'title' => "Szenen mit inaktiven Mitgliedern", 'link' => "index.php?module=tools-inplaytracker&action=find-deleted", 'description' => "Finde Szenen mit inaktiven Charakteren." ); $sub_tabs['inplaytracker_update'] = array( 'title' => "Plugin updaten", 'link' => "index.php?module=tools-inplaytracker&action=update", 'description' => "Inplaytracker auf die neueste Version updaten." ); $page->output_nav_tabs($sub_tabs, 'inplaytracker_update'); // Optionen generieren $form = new Form("index.php?module=tools-inplaytracker&action=update", "post"); $form_container = new FormContainer("Inplaytracker updaten"); $form_container = new FormContainer("Plugin aktualisieren"); $form_container->output_row_header("Status"); $form_container->output_row_header("Update"); // Datenbank aktualisieren $form_container->output_cell("Datenbankmodifizierungen"); $form_container->output_cell("
".$form->generate_submit_button("Datenbank updaten", array("name" => "update_database"))."
"); $form_container->construct_row(); // Admin CP Settings hinzufügen $form_container->output_cell("Admin CP Einstellungen aktualisieren"); $form_container->output_cell("
".$form->generate_submit_button("Einstellungen aktualisieren", array("name" => "update_settings"))."
"); $form_container->construct_row(); // Datenbankspalte "partners" aktualisieren $form_container->output_cell("Charakternamen in User-ID umwandeln"); $form_container->output_cell("
".$form->generate_submit_button("Postingpartner aktualisieren", array("name" => "update_partner"))."
"); $form_container->construct_row(); // Datenbankspalte "ipdate" aktualisieren $form_container->output_cell("Datum in Zeitstempel umwandeln
Voraussetzung ist die Formatierung Tag Monat Jahr für das ursprüngliche Datum!"); $form_container->output_cell("
".$form->generate_submit_button("Datum aktualisieren", array("name" => "update_date"))."
"); $form_container->construct_row(); // MyAlerts-Integration anlegen $form_container->output_cell("Alert-Types anlegen
Nur, wenn MyAlerts nach dem Tracker installiert wurde!"); $form_container->output_cell("
".$form->generate_submit_button("Alert Types anlegen", array("name" => "update_alerts"))."
"); $form_container->construct_row(); $form_container->end(); $form->end(); $page->output_footer(); } ?>