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 = "
Inaktiv seit wie vielen Tagen?
";
$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();
}
?>