* @version DS-E V/2
*/
$str_filename = basename(__FILE__);
require_once('common.php');
// Suchmaske
$arr_form = array(
'account_id' =>'Account-ID / -Login und/oder..,int',
'guild_id' =>'..Gilden-ID oder..,int',
'world' =>'..Globale Aufzeichnungen,bool',
'msg' =>'Stichwortsuche in Nachrichten',
'results_per_page' =>'Ergebnisse pro Seite,enum,5,5,10,10,25,25,50,50,75,75,100,100'
);
$arr_data = array(
'account_id' => $_REQUEST['account_id'],
'guild_id' => $_REQUEST['guild_id'],
'world' => $_REQUEST['world'],
'msg' => $_REQUEST['msg'],
'results_per_page' => (empty($_REQUEST['results_per_page']) ? 100 : (int)$_REQUEST['results_per_page'])
);
if( (int)$arr_data['account_id'] == 0 && !empty($arr_data['account_id']) ) {
$arr_tmp = db_fetch_assoc(db_query('SELECT acctid FROM accounts WHERE login="'.$arr_data['account_id'].'" LIMIT 1'));
if($arr_tmp['acctid'] > 0) {
$arr_data['account_id'] = $arr_tmp['acctid'];
}
else {
$arr_data['account_id'] = 0;
}
}
// END Suchmaske
page_header('Aufzeichnungen - Kontrolle');
output('`c`b`&Aufzeichnungen - Kontrolle`0`b`c`n');
// Grundnavi erstellen
addnav('Zurück');
grotto_nav();
addnav('Aktionen');
addnav('Suche',$str_filename);
addnav('Neuer Eintrag',$str_filename.'?op=edit');
// END Grundnavi erstellen
// Evtl. Fehler / Erfolgsmeldungen anzeigen
if($session['message'] != '') {
output('`n`b'.$session['message'].'`b`n`n');
$session['message'] = '';
}
// END Evtl. Fehler / Erfolgsmeldungen anzeigen
function show_history_search () {
global $str_filename,$arr_form,$arr_data,$str_type;
$str_out = '';
$str_lnk = $str_filename.'?op=search';
addnav('',$str_lnk);
$str_out .= '
';
return($str_out);
}
// MAIN SWITCH
$str_op = ($_REQUEST['op'] ? $_REQUEST['op'] : '');
switch($str_op) {
// Suchergebisse
case 'search':
$str_baselnk = $str_filename . '?op=search&';
foreach($arr_data as $key => $val) {
$str_baselnk .= $key.'='.urlencode($val).'&';
}
$str_where = ' WHERE 1 '
.($arr_data['account_id'] > 0 ? ' AND h.acctid = '.$arr_data['account_id'] : '')
.($arr_data['guild_id'] > 0 ? ' AND h.guildid = '.$arr_data['guild_id'] : '')
.($arr_data['world'] > 0 ? ' AND h.guildid = 0 AND h.acctid = 0' : '')
.(!empty($arr_data['msg']) ? ' AND h.msg LIKE "%'.$arr_data['msg'].'%"' : '');
$str_count_sql = ' SELECT COUNT( * ) AS c
FROM history h'
.$str_where;
$str_data_sql = ' SELECT h.*,a.name AS aname,g.name AS gname
FROM history h
LEFT JOIN accounts a ON a.acctid = h.acctid
LEFT JOIN dg_guilds g ON g.guildid = h.guildid '
.$str_where;
$arr_res = page_nav($str_baselnk,$str_count_sql,$arr_data['results_per_page']);
$str_data_sql .= ' LIMIT '.$arr_res['limit'];
$str_out .= show_history_search();
$str_out .= '`n
| Real-/Spieldatum |
Spieler |
Gilde |
';
$str_tr_class = 'trlight';
$res = db_query($str_data_sql);
if(db_num_rows($res) == 0) {
$str_out .= '`iKeine Ergebnisse gefunden!`i';
}
// Ergebnisse zeigen
while($l = db_fetch_assoc($res)) {
$str_tr_class = ($str_tr_class == 'trlight' ? 'trdark' : 'trlight');
$l['aname'] = empty($l['aname']) ? ' - ' : $l['aname'];
$l['gname'] = empty($l['gname']) ? ' - ' : $l['gname'];
$str_out .= '
| '.date('d.m.Y H:i:s',strtotime($l['date'])).' / '.getgamedate($l['gamedate']).' |
'.$l['aname'].'`0 |
'.$l['gname'].'`0 |
';
$str_out .= '
| '.(($l['hidden']==1)?'`e(ausgeblendet)`0 ':'').$l['msg'].'`0 |
[ '.create_lnk('Edit',$str_filename.'?op=edit&id='.$l['id'].'&ret='.urlencode($str_baselnk.$page)).' ]
[ '.create_lnk('`$Löschen`0',$str_filename.'?op=del&id='.$l['id'].'&ret='.urlencode($str_baselnk.$page),true,false,'Wirklich löschen?').' ]
|
';
}
$str_out .= '
';
// END Ergebnisse zeigen
output($str_out, true);
break;
// END Suchergebnisse
case 'edit':
$int_id = (int)$_GET['id'];
if($_GET['act'] == 'save') {
if(empty($_POST['acctid'])) {
$arr_entry['acctid'] = 0;
}
else {
if((int)$_POST['acctid'] == 0) {
$arr_tmp = db_fetch_assoc(db_query('SELECT acctid FROM accounts WHERE login="'.addslashes(stripslashes($_POST['acctid'])).'"'));
$arr_entry['acctid'] = $arr_tmp['acctid'];
}
else {
$arr_entry['acctid'] = $_POST['acctid'];
}
}
$arr_entry['guildid'] = (int)$_POST['guildid'];
$arr_entry['msg'] = $_POST['msg'];
$arr_entry['gamedate'] = (empty($_POST['gamedate']) ? getsetting('gamedate','') : $_POST['gamedate']);
$arr_entry['date'] = array('sql'=>true,'value'=>'NOW()');
if(!$int_id) {
db_insert('history',$arr_entry);
}
else {
$sql = 'UPDATE history
SET gamedate="'.$arr_entry['gamedate'].'",msg="'.addslashes(stripslashes($arr_entry['msg'])).'",guildid='.$arr_entry['guildid'].',acctid='.$arr_entry['acctid'].'
WHERE id='.$int_id;
db_query($sql);
}
redirect($str_filename);
}
$arr_new_form = array( 'acctid'=>'AccountID / Login,int',
'guildid'=>'GildenID,int',
'gamedate'=>'Spieldatum (Format: YYYY-MM-DD)',
'msg'=>'Nachricht');
if($int_id) {
$arr_data = db_fetch_assoc(db_query('SELECT * FROM history WHERE id='.$int_id));
}
else {
$arr_data = array();
}
$str_lnk = $str_filename.'?op=edit&act=save&id='.$int_id;
addnav('',$str_lnk);
output('`&Um Aufzeichnung als Weltnachricht einzutragen, AccountID und GildenID leer lassen.
',true);
if(!empty($_GET['ret'])) {
addnav('Abbruch',urldecode($_GET['ret']));
}
break;
case 'del':
$int_id = (int)$_GET['id'];
$sql = 'DELETE FROM history WHERE id='.$int_id;
db_query($sql);
if(db_affected_rows(LINK)) {
$session['message'] = '`@Eintrag '.$int_id.' erfolgreich gelöscht!`0';
}
else {
$session['message'] = '`$Fehler bei Löschen des Eintrags '.$int_id.'!`0';
}
redirect( urldecode($_GET['ret']) );
break;
// Hm..
default:
redirect($str_filename. '?op=search');
break;
}
page_footer();
?>