'.ucfirst($arr_category['category_name']).'';
}
}
else
{
$str_sql = 'SELECT category_id, category_name FROM special_category';
$db_result = db_query($str_sql);
while ($arr_category = db_fetch_assoc($db_result))
{
$arr_categories[] = $arr_category;
$str_output .= '';
}
}
return $str_output;
}
if ($_GET['op']=='')
{
$str_output.=get_title('`7Specialeditor').'
Mit diesem Tool kann festgelegt werden, welches Special, ab welcher Anzahl an Heldentaten, wie oft und mit welcher Wahrscheinlichkeit eintreten wird.';
}
elseif ($_GET['op']=='neu')
{
if ($dir = @dir('./special'))
{
$files_on_hdd = array();
while (false !== ($file = $dir->read()))
{
if (strpos($file,'.php')>0)
{
$files_on_hdd[] = $file;
}
}
$dir->close();
// eingetragene specials auslesen
$sql = 'SELECT filename FROM special_events';
$result = db_query($sql);
$anzahl = db_num_rows($result);
// in array speichern
while($row = db_fetch_assoc($result))
{
$files_in_db[]=$row['filename'];
}
if (count($files_on_hdd)==0)
{
$str_output.='`b`@
Keine Specials vorhanden
`n';
}
else
{
$str_output .= '`c`b`7Special Einstellungen:`0`b`c`n`7';
// checken
$i=0;
foreach($files_on_hdd as $val)
{
if (!in_array($val,$files_in_db))
{
$sql = "
INSERT INTO
special_events
(filename, descr, prio, dk, anzahl)
VALUES
('".$val."', 'keine Beschreibung vorhanden', '0', '0', '0')";
db_query($sql);
$str_output .= strip_appoencode($sql).' ';
$i++;
}
}
$str_output.='`bEs wurden '.$i.' neue Specials eingetragen.`b`n';
}
}
else
{
$str_output.='`c`b`$FEHLER!!!`b`c`&Kann den Ordner mit den Specials nicht finden. Bitte benachrichtige den Admin!! Du bist der Admin?!?... Ja... das könnte sich zum Problem entwickeln';
}
// gelöschte Specials aus DB löschen
$j=0;
if (count($files_in_db)>0)
{
foreach($files_in_db as $val)
{
$str_path = './special/'.$val;
if (!file_exists($str_path))
{
$sql = "
DELETE FROM
special_events
WHERE
filename = '".$val."'
";
db_query($sql);
$str_output .= $sql.'`n';
$j++;
}
}
}
$str_output.='`bEs wurden '.$j.' Specials aus der Datenbank gelöscht`b`n`0';
if ($i+$j==0)
{
$str_output='
Es gibt keine Veränderungen im Special-Ordner...
';
}
}
elseif($_GET['op']=='edit')
{
$sql = "
SELECT
*
FROM
special_events
ORDER BY
category_id ASC,
filename ASC
";
$result = db_query($sql);
$anzahl = db_num_rows($result);
if ($anzahl)
{
$str_output.='
`n`n
Special Editor`n`n
Priorität absteigend! Je niedrieger die Prio ist, desto öfters kommt das Special dran!`n
Achte darauf, dass mind. ein Special Prio 0 und DK 0 hat!`n`n
';
} // ende check ob was in DB steht
else
{ // steht nix in DB
$str_output.='
Du solltest erstmal ein paar Specials importieren!
';
}
}
elseif($_GET['op']=='save')
{
$count = count($_POST['data']);
for ($i=0;$i<$count;$i++)
{
if(!isset($_POST['data'][$i]['checked']))
{
continue;
}
$sql = "
UPDATE
special_events
SET
prio = '".abs((int)$_POST['data'][$i]['prio'])."',
dk = '".abs((int)$_POST['data'][$i]['dk'])."',
author = '".db_real_escape_string($_POST['data'][$i]['author'])."',
descr = '".db_real_escape_string($_POST['data'][$i]['descr'])."',
public_description = '".db_real_escape_string($_POST['data'][$i]['public_description'])."',
anzahl = '".abs((int)$_POST['data'][$i]['anzahl'])."',
released = '".(int)$_POST['data'][$i]['released']."',
category_id = '".(int)$_POST['data'][$i]['category_id']."'
WHERE
row_id = '".(int)$_POST['data'][$i]['row_id']."'
";
db_query($sql);
$check = db_error($link);
if ($check!='')
{
$str_output.=' '.$check.' ';
}
}
$str_output .= "Einstellungen gespeichert!";
}
else if($_GET['op']=='administrate_categories')
{
$str_sql = 'SELECT * FROM special_category';
$db_result = db_query($str_sql);
$str_output = '`c`bListe aller vorhandenen Kategorien`b`c`n`n';
$str_output .= '`tDie folgende Liste enthält alle vorhandenen Kategorien in die Specials eingruppiert werden können.
Jedem Special muss eine eindeutige Kategorie zugewiesen werden, damit es auch nur an dem für das Special vorgesehenen Ort auftaucht.
Die Standard Kategorie für Specials lautet forest. Diese kann auch nicht gelöscht werden.`n`n`0`n';
while ($arr_category = db_fetch_assoc($db_result))
{
$str_output .= '
';
}
addpregnav('/'.$str_file.'\?op=administrate_categories_(edit|del)&category_id=\d+/');
addnav('Neue Kategorie hinzufügen',$str_file.'?op=administrate_categories_edit');
}
else if($_GET['op']=='administrate_categories_del')
{
if((int)$_GET['category_id'] != 1)
{
$str_sql = 'UPDATE special_events SET category_id=1, released=0 WHERE category_id='.(int)$_GET['category_id'];
$db_result = db_query($str_sql);
$str_sql = 'DELETE FROM special_category WHERE category_id='.(int)$_GET['category_id'];
$db_result = db_query($str_sql);
if($db_result !== false)
{
$str_output .= 'Die gewünschte Kategorie wurde gelöscht, alle darauf verweisenden Specials wurden auf die Standardkategorie gesetzt und deaktiviert';
}
else
{
$str_output .= 'Die gewünschte Kategorie wurde nicht gelöscht!';
}
}
else
{
$str_output .= 'Die Kategorie forest kann nicht gelöscht werden!';
}
}
else if($_GET['op']=='administrate_categories_edit')
{
if(isset($_POST['add_category']))
{
$str_sql = 'INSERT INTO special_category (category_name) VALUES ("'.$_POST['category_name'].'")';
$str_output .= $str_sql;
$db_result = db_query($str_sql);
if($db_result !== false)
{
$str_output .= 'Die gewünschte Kategorie wurde eingefügt';
}
else
{
$str_output .= 'Die gewünschte Kategorie kann nicht eingefügt werden';
}
}
if(isset($_POST['edit_category']))
{
$str_sql = 'UPDATE special_category SET category_name="'.$_POST['category_name'].'" WHERE category_id='.(int)$_POST['category_id'];
$db_result = db_query($str_sql);
if($db_result !== false)
{
$str_output .= 'Die gewünschte Kategorie wurde editiert';
}
else
{
$str_output .= 'Die gewünschte Kategorie konnte nicht editiert werden';
}
}
//Editiere vorhandenes special
if(isset($_GET['category_id']))
{
if((int)$_GET['category_id'] != 1)
{
$str_sql = 'SELECT * FROM special_category WHERE category_id='.(int)$_GET['category_id'];
$db_result = db_query($str_sql);
$arr_category = db_fetch_assoc($db_result);
if(db_num_rows($db_result) == 1)
{
$str_output .= '';
}
else
{
$str_output .= 'Die Kategorie konnte nicht gefunden werden';
}
}
else
{
$str_output .= 'Die Kategorie forest kann nicht editiert werden!';
}
}
//Erstelle neue Kategorie
else
{
$str_output .= '';
}
addnav('',$str_file.'?op=administrate_categories_edit');
}
//Testen von Specials
if($_GET['editor_op'] == 'test')
{
$session['user']['specialinc'] = '';
$str_output .= '`n`nSUPERUSER Specials:`n
Alle hier getesteten Specials verhalten sich so als wären sie dort aufgerufen wo sie auch normalerweise zu finden sind. Das bedeutet: `bNach Beendigung des Specials landet ihr auch bspw. im Wald/Schenke/usw.`b`n`n`0';
$query_result = db_query('SELECT filename,category_name FROM special_events LEFT JOIN special_category USING (category_id) ORDER BY category_name ASC, filename ASC');
$str_category = '';
while (($row = db_fetch_assoc($query_result)) !== false)
{
if($str_category != $row['category_name'])
{
$str_category = $row['category_name'];
$str_output .= '