* @version DS-E V/2 */ $str_filename = basename(__FILE__); require_once('common.php'); $access_control->su_check(access_control::SU_RIGHT_USERDISCU,true); function userdiscu_view ($arr_user) { global $session,$str_filename, $access_control; output('`c`b`&Diskussion / Akte zu '.$arr_user['name'].'`& (AcctID '.$arr_user['acctid'].')`b`n'); if($arr_user['discussion']) { output('(Diskussion offen)'); } else { output('(Diskussion geschlossen)'); } output('`c`n'); // Strafen auflisten if($arr_user['activated'] == USER_ACTIVATED_MUTE) { output(' `^Geknebelt`0 '); if($access_control->su_check(access_control::SU_RIGHT_MUTE)) { // output(' [ '.create_lnk('Entknebeln',$str_filename.'?op=mute&act=off&id='.$arr_user['acctid'],true,false,'Wirklich entknebeln?').' ] ',true); } } else { if($access_control->su_check(access_control::SU_RIGHT_MUTE)) { // output(' [ '.create_lnk('Knebeln',$str_filename.'?op=mute&act=on&id='.$arr_user['acctid'],true,false,'Wirklich knebeln?').' ] ',true); } } if($arr_user['imprisoned'] < 0) { output(' `QGekerkert`0 '); if($access_control->su_check(access_control::SU_RIGHT_PRISON)) { // output(' [ '.create_lnk('Befreien',$str_filename.'?op=prison&act=off&id='.$arr_user['acctid'],true,false,'Wirklich befreien?').' ] ',true); } } else { if($access_control->su_check(access_control::SU_RIGHT_PRISON)) { // output(' [ '.create_lnk('Kerkern',$str_filename.'?op=prison&act=on&id='.$arr_user['acctid'],true,false,'Wirklich kerkern?').' ] ',true); } } if(checkban(false,false,false,false,$arr_user['acctid'],false)) { output(' `$Gebannt`0 '); } output('`n'); // End Strafen auflisten $str_lnk = $str_filename.'?op=action&id='.$arr_user['acctid'].'&act=save&ret='.urlencode(calcreturnpath()); addnav('',$str_lnk); output('`cBisherige Anmerkungen zu diesem Benutzer:`n'); output('
`n
`n`n`c',true); addnav('Aktionen'); if($arr_user['discussion']) { $str_section = 'Discuss-'.$arr_user['acctid']; addcommentary(false); viewcommentary($str_section,"Hinzufügen:",50,"sagt"); if($access_control->su_check(access_control::SU_RIGHT_COMMENT)) { addnav('Diskussion schließen',$str_filename.'?op=action&act=close&id='.$arr_user['acctid'].'&ret='.urlencode(calcreturnpath()),false,false,false,false); addnav('Akte leeren und schließen',$str_filename.'?op=action&act=del&id='.$arr_user['acctid'].'&ret='.urlencode(calcreturnpath()),false,false,false,false); } } else { addnav('Diskussion öffnen',$str_filename.'?op=action&act=open&id='.$arr_user['acctid'].'&ret='.urlencode(calcreturnpath())); } addnav('Bio','bio.php?id='.$arr_user['acctid'],false,true); addnav('Brieftaube schreiben','mail.php?op=write&to='.$arr_user['acctid'],false,true); if($access_control->su_check(access_control::SU_RIGHT_COMMENT)) { addnav('Kommentare','su_comment.php?account_id='.$arr_user['acctid'],false,true); } if($access_control->su_check(access_control::SU_RIGHT_MAILBOX)) { addnav('Mailbox zeigen','su_mails.php?op=search&to_id='.$arr_user['acctid']); } if($access_control->su_check(access_control::SU_RIGHT_EDITORUSER)) { addnav('Usereditor','user.php?op=edit&userid='.$arr_user['acctid']); } } page_header('Userdiskussionen'); output('`c`b`&Userdiskussionen`0`b`c`n`n'); // Grundnavi erstellen addnav('Zurück'); $str_ret = urldecode($_GET['r']); if(!empty($str_ret)) { addnav('Zum Ausgangspunkt',$str_ret); } grotto_nav(); addnav('Gehe zu'); addnav('Diskussionen',$str_filename); addnav('Neue Diskussion',$str_filename.'?op=new'); //addnav('Archiv',$str_filename.'?op=old'); // 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 // MAIN SWITCH $str_op = ($_REQUEST['op'] ? $_REQUEST['op'] : ''); switch($str_op) { // Neue Disku case 'new': $str_out = ''; $int_id = (int)$_REQUEST['id']; // AccountID gegeben: Speichern! if(!empty($int_id)) { // Wenn zu diesem Acc bereits eine Akte existiert, dorthin weiterleiten if(!db_num_rows(db_query('SELECT acctid FROM account_extra_info WHERE acctid='.$int_id.' AND record<>""'))) { $sql = 'UPDATE account_extra_info SET discussion='.$session['user']['acctid'].' WHERE acctid='.$int_id; db_query($sql); } redirect($str_filename.'?op=recent&id='.$int_id.'&r='.urlencode($_GET['r'])); } else { // Sonst: Suchformular anzeigen $str_lnk = $str_filename.'?op=new&r='.urlencode($_GET['r']); addnav('',$str_lnk); $str_out .= '`c
'; // Name eingegeben? if(!empty($_POST['search']) && strlen($_POST['search']) > 2) { if(intval($_POST['search'])>10) { $sql = 'SELECT login, acctid FROM accounts WHERE name LIKE "%'.$_POST['search'].'%" ORDER BY login ASC'; } else { $str_search = str_create_search_string($_POST['search']); $sql = 'SELECT login, acctid FROM accounts WHERE login LIKE "'.$str_search.'" ORDER BY login ASC'; } $res = db_query($sql); if(!db_num_rows($res)) { $str_out .= '`nEs wurden keine Accounts gefunden, die auf deine Eingabe passen!'; } else { $str_out .= ''; } } else { // Sonst: Eingabefeld $str_out .= 'Name (NmuN nur Nummer): '; } $str_out .= '
`c'; } output($str_out,true); break; // Aktuelle Diskussionen case 'recent': $int_id = (int)$_GET['id']; $str_login = (strlen($_REQUEST['login']) > 2 ? stripslashes(urldecode($_REQUEST['login'])) : ''); $str_search = ''; if(!empty($str_login)) { $str_search = str_create_search_string($str_login); } $str_out = ''; $str_lnk = $str_filename.'?op=recent'; $arr_res = page_nav($str_lnk,'SELECT COUNT(*) AS c FROM account_extra_info aei LEFT JOIN accounts a USING (acctid) WHERE (aei.discussion OR aei.record <> "")',50); $sql = 'SELECT a.name,a.acctid,aei.record,aei.discussion,a.imprisoned,a.activated,a_su.name AS suname FROM account_extra_info aei LEFT JOIN accounts a ON a.acctid = aei.acctid LEFT JOIN accounts a_su ON a_su.acctid = aei.discussion WHERE (aei.discussion OR aei.record <> "") '.(!empty($str_search) ? ' AND a.name LIKE "'.$str_search.'"' : '').' '.(!empty($int_id) ? ' OR a.acctid = '.$int_id.'' : ''). ' ORDER BY a.acctid='.$int_id.' DESC, (aei.discussion='.$session['user']['acctid'].') DESC, aei.discussion DESC, a.login ASC LIMIT '.(!empty($int_id)?'0'.strchr($arr_res['limit'],','):$arr_res['limit']); $res = db_query($sql); addnav('',$str_lnk); $str_out .= ' ' //.
. form_header($str_lnk) . 'Suche nach Name: ' //. ' . jslib_autocomplete_name('login', true) //. '' . '
`n`n'; if(!db_num_rows($res)) { $str_out .= 'Keine Diskussionen / Akten vorhanden!'; //wenn User per Login eindeutig gefunden wird, Link zum Disku eröffnen anbieten $sqlnew='SELECT acctid,login FROM accounts WHERE login="'.db_real_escape_string($_POST['login']).'"'; $resnew=db_query($sqlnew); if(db_num_rows($resnew)==1) { $rownew=db_fetch_assoc($resnew); $str_out.='`n`n'.create_lnk('Akte für '.$rownew['login'].' anlegen',$str_filename.'?op=new&id='.$rownew['acctid']); } } else { $str_out .= '`c`bOffene Diskussionen / Akten:`b`c'; } $bool_old = false; $str_out .= ''; while ($u = db_fetch_assoc($res)) { if(!$u['discussion'] && !$bool_old) { $str_out .= '
SpielerBearbeiterAktivität
`n '; $bool_old = true; } $str_out .= ''; } $str_out .= '
`bGeschlossene Diskussionen / Akten:`b`n
'.create_lnk('`&'.str_replace('Neuling mit unzulässigem Namen','N.m.u.N.',$u['name']).'`0',$str_filename.'?op=recent&page='.$arr_res['page'].'&login='.urlencode($str_login).'&id='.$u['acctid']).'`0 '.$u['suname'].' '; if($u['discussion']) { $sql = 'SELECT COUNT(*) AS c,postdate FROM commentary WHERE section="Discuss-'.$u['acctid'].'" GROUP BY section ORDER BY postdate ASC'; $arr_tmp = db_fetch_assoc(db_query($sql)); $str_out .= '('.(!$arr_tmp['c'] ? 0 : $arr_tmp['c']).' Kommentare'.(!empty($u['record']) ? ', Akte vorhanden' : '').')'; } if($int_id == $u['acctid']) { $str_out .= ' `bGerade geöffnet`b'; userdiscu_view($u); } $str_out .= '
'; output($str_out,true); break; // Archiv case 'old': $int_id = (int)$_GET['id']; $str_out = ''; $sql = 'SELECT a.name,a.acctid,aei.record,aei.discussion FROM account_extra_info aei LEFT JOIN accounts a USING (acctid) WHERE aei.discussion = 0 AND aei.record <> "" '.(!empty($str_search) ? ' AND a.login LIKE "'.addslashes($str_search).'"' : ''). 'ORDER BY name ASC'; $res = db_query($sql); $int_count = db_num_rows($res); if(!$int_count) { output('Keine Akten gefunden!`n`n'); } else { output($int_count.' Akten gefunden:`n`n'); } $str_lnk = $str_filename.'?op=old'; addnav('',$str_lnk); $str_out .= '
Suche nach Login:
`n`n'; while ($u = db_fetch_assoc($res)) { $str_out .= '`n`n
`n'.create_lnk($u['name'],$str_filename.'?op=old&id='.$u['acctid']).'`0 '; if($u['acctid'] == $int_id) { $str_out .= ' `bGerade geöffnet`b'; userdiscu_view($u); } } output($str_out,true); break; // Diskussionsops case 'action': $int_id = (int)$_GET['id']; // Diskussion öffnen if($_GET['act'] == 'open') { $sql = 'UPDATE account_extra_info SET discussion='.$session['user']['acctid'].' WHERE acctid='.$int_id; db_query($sql); } // Diskussion schließen if($_GET['act'] == 'close') { $sql = 'UPDATE account_extra_info SET discussion=0 WHERE acctid='.$int_id; db_query($sql); } // Akte leeren und Disku schließen if($_GET['act'] == 'del') { $sql = 'UPDATE account_extra_info SET discussion=0,record="" WHERE acctid='.$int_id; db_query($sql); } // Speichern if($_GET['act'] == 'save') { $str_record = addslashes(strip_appoencode(stripslashes($_POST['record']),3)); $str_record = trim($str_record); $sql = 'UPDATE account_extra_info SET record = "'.$str_record.'",discussion='.$session['user']['acctid'].' WHERE acctid='.$int_id; db_query($sql); } if($_GET['act'] == 'prison') { $sql = 'UPDATE account_extra_info SET impisoned= WHERE acctid='.$int_id; db_query($sql); } redirect(urldecode($_GET['ret'])); break; // Hm.. default: redirect($str_filename. '?op=recent'); break; } page_footer(); ?>