* @version DS-E V/2.5 */ $str_filename = basename(__FILE__); require_once('common.php'); require_once(LIB_PATH.'picture.lib.php'); $access_control->su_check(access_control::SU_RIGHT_UPLOADCONTROL,true); page_header('Medien-Check'); output('`c`b`&Medien - Kontrolle`&`b`c`n`n'); $str_what = $_GET['what']; // Grundnavi erstellen addnav('Zurück'); if( !empty($_REQUEST['ret']) ) { addnav('Zum Ausgangspunkt',urldecode($_REQUEST['ret'])); } grotto_nav(); addnav('Aktionen'); addnav(($str_what == 'newest' ? '`^':'').'Neueste Uploads',$str_filename); addnav(($str_what == 'confirmed' ? '`^':'').'Bestätigte Uploads',$str_filename.'?op=search&what=confirmed'); addnav(($str_what == 'user' ? '`^':'').'Uploads nach Spieler',$str_filename.'?op=search&what=user'); addnav('Neue Bilderkontrolle', 'su_pic_control.php'); // 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 /** * Liefert Liste der hochgeladenen (Bild)Dateien in spezifiziertem Ordner * * @param string $str_dir Verzeichnis * @param int $int_acctid Filterkriterium AccountID (optional) * @param string $str_file_filter Filterkriterium Medientyp (p,m,d etc.) (optional) * @param string $str_ext Filterkriterium Dateiendung (optional) * @param int $int_min_date Filterkriterium Modifizierungsdatum als Timestamp (optional) * @param int $int_orderby Ordnen nach: num. Feldschlüssel in Rückgabearray (s. bei return, optional) * @param int $int_order Ordnungsreihenfolge (SORT_ASC bzw. SORT_DESC, optional, Standard SORT_ASC) * @return array Liste der Dateien; dabei jede Datei: * array ( 0=>AccountID, 1=>Medientyp, 2=>Dateiendung, 3=>Änderungstimestamp, 4=>Login, 5=>Pfad, 6=>Voller Dateiname ) */ function get_media ($str_dir, $int_acctid=0, $str_file_filter='', $str_ext='', $int_min_date=0, $int_orderby=-1, $int_order=SORT_ASC) { global $session; $arr_files = array(); $arr_sort = array(); if(!isset($session['cache']['su_media_user'])) { $session['cache']['su_media_user'] = db_create_list(db_query('SELECT acctid,login FROM accounts'),'acctid'); } // Für Sortieren können wir Limits nicht gebrauchen if($int_orderby > -1) { $int_limit = 0; $int_limitfrom = 0; } if($f_handle = @dir($str_dir)) { while(false !== ($str_file = $f_handle->read())) { // Infos rausfiltern $arr_tmp = explode('.',$str_file); // Filterkriterien anwenden if(!empty($str_file_filter)) { if($str_file_filter != $arr_tmp[1]) { continue; } } if(!empty($int_acctid)) { if($int_acctid != $arr_tmp[0]) { continue; } } if(!empty($str_ext)) { if($str_ext != $arr_tmp[2]) { continue; } } // Letzte Änderung $arr_tmp[3] = filemtime($str_dir.'/'.$str_file); if(!empty($int_min_date) && $arr_tmp[3] < $int_min_date) { continue; } // Acount abrufen (wenn nicht in session gecached) if(!isset($session['cache']['su_media_user'][$arr_tmp[0]])) { $session['cache']['su_media_user'][$arr_tmp[0]] = db_fetch_assoc(db_query('SELECT login FROM accounts WHERE acctid='.$arr_tmp[0])); } $arr_tmp[4] = $session['cache']['su_media_user'][$arr_tmp[0]]['login']; // Pfad $arr_tmp[5] = $str_dir; // Dateiname $arr_tmp[6] = $str_file; if($int_orderby > -1) { $arr_sort[] = $arr_tmp[$int_orderby]; } $arr_files[] = $arr_tmp; } $f_handle->close(); } else { return(array()); } if($int_orderby > -1) { array_multisort($arr_sort,$int_order,SORT_REGULAR,$arr_files); } return($arr_files); } // MAIN SWITCH $str_op = ($_REQUEST['op'] ? $_REQUEST['op'] : ''); switch($str_op) { // Suchergebisse case 'search': $user = $_REQUEST['userid']; $int_user = 0; if( (int)$user == 0 && !empty($user) ) { $arr_tmp = db_fetch_assoc(db_query('SELECT acctid FROM accounts WHERE login="'.$user.'" LIMIT 1')); if($arr_tmp['acctid'] > 0) { $int_user = $arr_tmp['acctid']; } else { $int_user = 0; } } else { $int_user = (int)$user; } $str_baselnk = $str_filename . '?op=search&what='.$str_what.'&userid='.$int_user.'&page='; $page = (int)$_GET['page']; switch($str_what) { case 'newest': $arr_results = get_media(AVATAR_UPLOAD_DIR,0,'','jpg',0,3,SORT_DESC); break; case 'confirmed': $arr_results = get_media(AVATAR_SECURE_DIR,0,'','jpg',0,3,SORT_DESC); break; case 'user': $str_lnk = $str_filename.'?op=search&what=user'; addnav('',$str_lnk); $str_out .= '`c
AccountID oder Login:
`c`n`n'; if($int_user > 0) { $arr_results = get_media(AVATAR_SECURE_DIR,$int_user,'','jpg',0,3,SORT_DESC); $arr_results = array_merge($arr_results,get_media(AVATAR_UPLOAD_DIR,$int_user,'','jpg',0,3,SORT_DESC)); } else { $str_out .= '`c`iKein User gewählt!`i`c'; $arr_results = array(); } break; default: $arr_results = array(); break; } $str_out .= '`n`c '; $str_tr_class = 'trlight'; $int_count = sizeof($arr_results); $arr_tmp = page_nav($str_baselnk,$int_count,25); $arr_limit = explode(',',$arr_tmp['limit']); if($arr_limit[1] > 0) { $arr_results = array_slice($arr_results,$arr_limit[0],$arr_limit[1]); } if($int_count == 0) { $str_out .= '`iKeine Ergebnisse gefunden!`i'; } // Rechte ermitteln $bool_useredit = $access_control->su_check(access_control::SU_RIGHT_EDITORUSER); $bool_lockhtml = $access_control->su_check(access_control::SU_RIGHT_LOCKHTML); $bool_lockbio = $bool_lockhtml; // Ergebnisse zeigen foreach($arr_results as $r) { $str_path = ''; if($r[5] == AVATAR_SECURE_DIR) { $str_path = 'acc'; } else { $str_path = 'upl'; } $str_type = ''; switch ($r[1]) { case 'm': $str_type = 'Tieravatar'; break; case 'd': $str_type = 'Knappenavatar'; break; case 'p': $str_type = 'Spieleravatar'; break; case 'h': $str_type = 'Hausavatar'; break; default: $str_type = 'Biobild'; break; } $r['acctid']=$r[0]; //benannte Felder um Usermenü nutzen zu können. Nicht schön, aber selten ;) $r['name']=$r[4]; $r['login']=$r[4]; $author = picture_get_author($r[1],$r['acctid']); $text = picture_get_text($r[1],$r['acctid']); $str_out .= ''; } $str_out .= '
`bUserID '.$r[0].' '.jslib_getmenuuserlink( $r, $r, true ).' | '.($l['biotime'] == BIO_LOCKED ? '`$gesperrt`0' : ($l['biotime'] != '0000-00-00 00:00:00' ? '`&'.date('d.m.Y H:i',$r[3]) : '') ).'`b' .($bool_useredit && !empty($r[0]) ? ' - '.create_lnk('Usereditor','user.php?op=edit&userid='.$r[0]) : '') .($bool_lockhtml && $str_path == 'upl' ? ' - '.create_lnk('Freigeben',$str_filename.'?op=acc_img&uid='.$r[0].'&type='.$r[1].'&ret='.urlencode($str_baselnk.$page)) : '') .($bool_lockhtml && $str_path == 'acc' ? ' - '.create_lnk('Sperren',$str_filename.'?op=lock_img&uid='.$r[0].'&type='.$r[1].'&ret='.urlencode($str_baselnk.$page),true,false,'Dieses Bild wirklich sperren?') : '') .($bool_lockbio ? ' - '.create_lnk('`$Löschen`0',$str_filename.'?op=del_img&uid='.$r[0].'&type='.$r[1].'&path='.$str_path.'&ret='.urlencode($str_baselnk.$page),true,false,'Dieses Bild wirklich löschen?') : '') .'
' .$str_type.' ('.($str_path == 'upl' ? '`$Nicht freigegeben`0' : '`@Freigegeben`0').')
`n'; // Letztes Änderungsdatum anhängen, um Cache auszutricksen $str_out .= ' '; $str_out .= '
© ' . ($author?htmlentities($author):'`in/a`i') . '`n `n Beschreibung:
' . ($text?htmlentities($text):'`in/a`i') . '
 
`c'; // END Ergebnisse zeigen output($str_out, true); jslib_initmenu(); break; // END Suchergebnisse // Bildupload durch User komplett (ent)sperren case 'lock_user_img': $int_uid = (int)$_GET['uid']; $arr_user = user_get_aei('html_locked', $int_uid); $arr_user['html_locked'] = ($arr_user['html_locked'] ? 0 : 1); user_set_aei( array('html_locked'=>$arr_user['html_locked']), $int_uid); if($arr_user['html_locked']) { systemmail($int_uid,'`$HTML gesperrt!`0','`@'.$session['user']['name'].'`& hat HTML für deine Bio deaktiviert. Wahrscheinlich hast du es mit der Nutzung von Bildern übertrieben. Wenn du dir nicht sicher bist, solltest du vielleicht mal in einer Mail nach dem Grund fragen.'); systemlog('`qSperrung des Bio-HTML für:`0 ',$session['user']['acctid'],$int_uid); $session['message'] = '`$HTML für AcctID '.$int_uid.' gesperrt!'; } else { systemmail($int_uid,'`@HTML entsperrt!`0','`@'.$session['user']['name'].'`& hat HTML für deine Bio wieder aktiviert.'); systemlog('`qEntSperrung des Bio-HTML für:`0 ',$session['user']['acctid'],$int_uid); $session['message'] = '`@HTML für AcctID '.$int_uid.' entsperrt!'; } redirect( urldecode($_GET['ret']) ); break; // Bild sperren case 'lock_img': $str_type = $_GET['type']; $int_uid = (int)$_GET['uid']; $str_img = $int_uid.'.'.$str_type.'.jpg'; $str_file = AVATAR_SECURE_DIR.''.$str_img; if(is_file($str_file)) { rename($str_file,AVATAR_UPLOAD_DIR.''.$str_img); if($int_uid > 0) { systemmail($int_uid,'`$Bild gesperrt!`0','`@'.$session['user']['name'].'`& hat ein von dir hochgeladenes Bild gesperrt. Wahrscheinlich hast du unpassende oder gegen das Urheberrecht verstoßende Inhalte eingefügt! Wenn du dir nicht sicher bist, solltest du vielleicht mal die Biografie-Regeln genauer lesen. Wenn es dir danach immer nocht nicht klar ist, kannst du auch in einer Mail nach dem Grund fragen.'); systemlog('`qSperrung eines Upload-Bildes von:`0 ',$session['user']['acctid'],$int_uid); } $session['message'] = '`$Bild von AcctID '.$int_uid.' gesperrt!'; } else { $session['message'] = '`$Fehler: Dieses Bild existiert nicht!'; } redirect( urldecode($_GET['ret']) ); break; // Bild freigeben case 'acc_img': $str_type = $_GET['type']; $int_uid = (int)$_GET['uid']; $str_img = $int_uid.'.'.$str_type.'.jpg'; $str_file = AVATAR_UPLOAD_DIR.''.$str_img; if(is_file($str_file)) { rename($str_file,AVATAR_SECURE_DIR.''.$str_img); $session['message'] = '`@Bild '.$str_img.' freigegeben!'; } else { $session['message'] = '`$Fehler: Bild '.$str_img.' existiert nicht!'; } redirect( urldecode($_GET['ret']) ); break; // Einzelnes Bild löschen case 'del_img': $str_path = ($_GET['path'] == 'upl' ? AVATAR_UPLOAD_DIR : AVATAR_SECURE_DIR); $str_type = $_GET['type']; $int_uid = (int)$_GET['uid']; $str_img = $int_uid.'.'.$str_type.'.jpg'; $str_file = $str_path.''.$str_img; if(is_file($str_file)) { picture::clear_old($str_img); if($int_uid > 0) { systemmail($int_uid,'`$Bild gelöscht!`0','`@'.$session['user']['name'].'`& hat ein von dir hochgeladenes Bild entfernt. Wahrscheinlich hast du unpassende oder gegen das Urheberrecht verstoßende Inhalte eingefügt! Wenn du dir nicht sicher bist, solltest du vielleicht mal die Biografie-Regeln genauer lesen. Wenn es dir danach immer nocht nicht klar ist, kannst du auch in einer Mail nach dem Grund fragen.'); systemlog('`qLöschung eines Upload-Bildes von:`0 ',$session['user']['acctid'],$int_uid); } $session['message'] = '`$Bild von AcctID '.$int_uid.' gelöscht!'; } else { $session['message'] = '`$Fehler: Dieses Bild existiert nicht!'; } redirect( urldecode($_GET['ret']) ); break; // Hm.. default: redirect($str_filename. '?op=search&what=newest'); break; } page_footer(); ?>