send to all, members, staff, admins from list of chatters

This commit is contained in:
Daniel Winzen
2020-12-27 16:07:38 +01:00
parent 93ae61376c
commit fcad1fb41a
14 changed files with 50 additions and 13 deletions

View File

@ -67,7 +67,7 @@ function route(){
send_waiting_room(); send_waiting_room();
}elseif($_REQUEST['action']==='post'){ }elseif($_REQUEST['action']==='post'){
check_session(); check_session();
if(isset($_POST['kick']) && isset($_POST['sendto']) && $_POST['sendto']!=='s &'){ if(isset($_POST['kick']) && isset($_POST['sendto']) && $_POST['sendto']!=='s _'){
if($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick'))){ if($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick'))){
if(isset($_POST['what']) && $_POST['what']==='purge'){ if(isset($_POST['what']) && $_POST['what']==='purge'){
kick_chatter([$_POST['sendto']], $_POST['message'], true); kick_chatter([$_POST['sendto']], $_POST['message'], true);
@ -974,7 +974,7 @@ function send_admin(string $arg){
$ga=(int) get_setting('guestaccess'); $ga=(int) get_setting('guestaccess');
print_start('admin'); print_start('admin');
$chlist="<select name=\"name[]\" size=\"5\" multiple><option value=\"\">$I[choose]</option>"; $chlist="<select name=\"name[]\" size=\"5\" multiple><option value=\"\">$I[choose]</option>";
$chlist.="<option value=\"s &amp;\">$I[allguests]</option>"; $chlist.="<option value=\"s &#42;\">$I[allguests]</option>";
$users=[]; $users=[];
$stmt=$db->query('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 ORDER BY LOWER(nickname);'); $stmt=$db->query('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 ORDER BY LOWER(nickname);');
while($user=$stmt->fetch(PDO::FETCH_NUM)){ while($user=$stmt->fetch(PDO::FETCH_NUM)){
@ -1796,17 +1796,17 @@ function send_post(string $rejected=''){
} }
if($U['status']>=5){ if($U['status']>=5){
echo '<option '; echo '<option ';
if($_REQUEST['sendto']==='s #'){ if($_REQUEST['sendto']==='s %'){
echo 'selected '; echo 'selected ';
} }
echo "value=\"s #\">-$I[tostaff]-</option>"; echo "value=\"s %\">-$I[tostaff]-</option>";
} }
if($U['status']>=6){ if($U['status']>=6){
echo '<option '; echo '<option ';
if($_REQUEST['sendto']==='s &'){ if($_REQUEST['sendto']==='s _'){
echo 'selected '; echo 'selected ';
} }
echo "value=\"s &amp;\">-$I[toadmin]-</option>"; echo "value=\"s _\">-$I[toadmin]-</option>";
} }
$disablepm=(bool) get_setting('disablepm'); $disablepm=(bool) get_setting('disablepm');
if(!$disablepm){ if(!$disablepm){
@ -2233,21 +2233,32 @@ function print_chatters(){
$nc=substr(time(), -6); $nc=substr(time(), -6);
$G=$M=[]; $G=$M=[];
while($user=$stmt->fetch(PDO::FETCH_NUM)){ while($user=$stmt->fetch(PDO::FETCH_NUM)){
$link="<a href=\"$_SERVER[SCRIPT_NAME]?action=post&amp;session=$U[session]&amp;lang=$language&amp;nc=$nc&amp;sendto=".htmlspecialchars($user[0]).'" target="post">'.style_this(htmlspecialchars($user[0]), $user[1]).'</a>'; $lnk="<a href=\"$_SERVER[SCRIPT_NAME]?action=post&amp;session=$U[session]&amp;lang=$language&amp;nc=$nc&amp;sendto=";
$link=$lnk.htmlspecialchars($user[0]).'" target="post">'.style_this(htmlspecialchars($user[0]), $user[1]).'</a>';
if($user[2]<=2){ if($user[2]<=2){
$G[]=$link; $G[]=$link;
}else{ }else{
$M[]=$link; $M[]=$link;
} }
} }
if($U['status']>5){
echo '<th>' . $lnk . 's _" target="post">[' . $I[admin] . ']</a></td>&nbsp;</a></td>';
}
if($U['status']>4){
echo '<th>' . $lnk . 's &#37;" target="post">[' . $I[staff] . ']</a></td>&nbsp;</a></td>';
}
if(!empty($M)){ if(!empty($M)){
if($U['status']<2){
echo "<th>$I[members]:</th><td>&nbsp;</td><td>".implode(' &nbsp; ', $M).'</td>'; echo "<th>$I[members]:</th><td>&nbsp;</td><td>".implode(' &nbsp; ', $M).'</td>';
if(!empty($G)){ } else {
echo '<th>' . $lnk . 's ?" target="post">' . $I[members] . ':</a></td>&nbsp;</a></td><td>'.implode(' &nbsp; ', $M).'</td>';
}
if(!empty($M)){
echo '<td>&nbsp;&nbsp;</td>'; echo '<td>&nbsp;&nbsp;</td>';
} }
} }
if(!empty($G)){ if(!empty($G)){
echo "<th>$I[guests]:</th><td>&nbsp;</td><td>".implode(' &nbsp; ', $G).'</td>'; echo '<th>' . $lnk . 's *" target="post">' . $I[guests] . ':</a></td>&nbsp;</a></td><td>'.implode(' &nbsp; ', $G).'</td>';
} }
echo '</tr></table></div>'; echo '</tr></table></div>';
} }
@ -2468,7 +2479,7 @@ function kick_chatter(array $names, string $mes, bool $purge) : bool {
$check=$db->prepare('SELECT style, entry FROM ' . PREFIX . 'sessions WHERE nickname=? AND status!=0 AND (status<? OR nickname=?);'); $check=$db->prepare('SELECT style, entry FROM ' . PREFIX . 'sessions WHERE nickname=? AND status!=0 AND (status<? OR nickname=?);');
$stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET lastpost=?, status=0, kickmessage=? WHERE nickname=?;'); $stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET lastpost=?, status=0, kickmessage=? WHERE nickname=?;');
$all=false; $all=false;
if($names[0]==='s &'){ if($names[0]==='s _'){
$tmp=$db->query('SELECT nickname FROM ' . PREFIX . 'sessions WHERE status=1;'); $tmp=$db->query('SELECT nickname FROM ' . PREFIX . 'sessions WHERE status=1;');
$names=[]; $names=[];
while($name=$tmp->fetch(PDO::FETCH_NUM)){ while($name=$tmp->fetch(PDO::FETCH_NUM)){
@ -2507,7 +2518,7 @@ function kick_chatter(array $names, string $mes, bool $purge) : bool {
function logout_chatter(array $names){ function logout_chatter(array $names){
global $U, $db; global $U, $db;
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'sessions WHERE nickname=? AND status<?;'); $stmt=$db->prepare('DELETE FROM ' . PREFIX . 'sessions WHERE nickname=? AND status<?;');
if($names[0]==='s &'){ if($names[0]==='s _'){
$tmp=$db->query('SELECT nickname FROM ' . PREFIX . 'sessions WHERE status=1;'); $tmp=$db->query('SELECT nickname FROM ' . PREFIX . 'sessions WHERE status=1;');
$names=[]; $names=[];
while($name=$tmp->fetch(PDO::FETCH_NUM)){ while($name=$tmp->fetch(PDO::FETCH_NUM)){
@ -2960,10 +2971,10 @@ function validate_input() : string {
}elseif($_POST['sendto']==='s ?' && $U['status']>=3){ }elseif($_POST['sendto']==='s ?' && $U['status']>=3){
$poststatus=3; $poststatus=3;
$displaysend=sprintf(get_setting('msgsendmem'), style_this(htmlspecialchars($U['nickname']), $U['style'])); $displaysend=sprintf(get_setting('msgsendmem'), style_this(htmlspecialchars($U['nickname']), $U['style']));
}elseif($_POST['sendto']==='s #' && $U['status']>=5){ }elseif($_POST['sendto']==='s %' && $U['status']>=5){
$poststatus=5; $poststatus=5;
$displaysend=sprintf(get_setting('msgsendmod'), style_this(htmlspecialchars($U['nickname']), $U['style'])); $displaysend=sprintf(get_setting('msgsendmod'), style_this(htmlspecialchars($U['nickname']), $U['style']));
}elseif($_POST['sendto']==='s &' && $U['status']>=6){ }elseif($_POST['sendto']==='s _' && $U['status']>=6){
$poststatus=6; $poststatus=6;
$displaysend=sprintf(get_setting('msgsendadm'), style_this(htmlspecialchars($U['nickname']), $U['style'])); $displaysend=sprintf(get_setting('msgsendadm'), style_this(htmlspecialchars($U['nickname']), $U['style']));
}else{ // known nick in room? }else{ // known nick in room?

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Произволен цвят', 'randomcol' => 'Произволен цвят',
'enter' => 'Влез в чата', 'enter' => 'Влез в чата',
'error' => 'Грешка', 'error' => 'Грешка',
'admin' => 'Админ',
'staff' => 'екипа',
'members' => 'Членове', 'members' => 'Членове',
'guests' => 'Гости', 'guests' => 'Гости',
'approveguests' => '%d нови гости чакат одобрение', 'approveguests' => '%d нови гости чакат одобрение',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Náhodná barva', 'randomcol' => 'Náhodná barva',
'enter' => 'Vstoupit', 'enter' => 'Vstoupit',
'error' => 'Chyba', 'error' => 'Chyba',
'admin' => 'Admin',
'staff' => 'Stnanc',
'members' => 'Členové', 'members' => 'Členové',
'guests' => 'Hosté', 'guests' => 'Hosté',
'approveguests' => '%d noví hsté ke schválení', 'approveguests' => '%d noví hsté ke schválení',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Zufällige Farbe', 'randomcol' => 'Zufällige Farbe',
'enter' => 'Chat beitreten', 'enter' => 'Chat beitreten',
'error' => 'Fehler', 'error' => 'Fehler',
'admin' => 'Admin',
'staff' => 'Moderatoren',
'members' => 'Mitglieder', 'members' => 'Mitglieder',
'guests' => 'Gäste', 'guests' => 'Gäste',
'approveguests' => '%d neue Gäste zum Hereinlassen', 'approveguests' => '%d neue Gäste zum Hereinlassen',

View File

@ -179,6 +179,8 @@ $I=[
'randomcol' => 'Random Colour', 'randomcol' => 'Random Colour',
'enter' => 'Enter Chat', 'enter' => 'Enter Chat',
'error' => 'Error', 'error' => 'Error',
'admin' => 'Admin',
'staff' => 'Staff',
'members' => 'Members', 'members' => 'Members',
'guests' => 'Guests', 'guests' => 'Guests',
'approveguests' => '%d new guests to approve', 'approveguests' => '%d new guests to approve',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Color al azar', 'randomcol' => 'Color al azar',
'enter' => 'Entrar a la sala', 'enter' => 'Entrar a la sala',
'error' => 'Error', 'error' => 'Error',
'admin' => 'Admin',
'staff' => 'Equipo',
'members' => 'Miembros', 'members' => 'Miembros',
'guests' => 'Invitados', 'guests' => 'Invitados',
'approveguests' => '%d nuevos invitados para aprobar', 'approveguests' => '%d nuevos invitados para aprobar',

View File

@ -175,6 +175,8 @@ $T=[
'randomcol' => 'Couleur aléatoire', 'randomcol' => 'Couleur aléatoire',
'enter' => 'Entrer', 'enter' => 'Entrer',
'error' => 'Erreur', 'error' => 'Erreur',
'admin' => 'Administrateur',
'staff' => 'Gestionnaire',
'members' => 'Membres', 'members' => 'Membres',
'guests' => 'Invités', 'guests' => 'Invités',
'approveguests' => '%d nouveaux invités à approuver', 'approveguests' => '%d nouveaux invités à approuver',

View File

@ -175,6 +175,8 @@ $T=[
'randomcol' => 'Warna acak', 'randomcol' => 'Warna acak',
'enter' => 'Masuk obrolan', 'enter' => 'Masuk obrolan',
'error' => 'Kesalahan', 'error' => 'Kesalahan',
'admin' => 'Admin',
'staff' => 'Staf',
'members' => 'Anggota', 'members' => 'Anggota',
'guests' => 'Tamu', 'guests' => 'Tamu',
'approveguests' => '%d tamu baru untuk disetujui', 'approveguests' => '%d tamu baru untuk disetujui',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Colore a caso', 'randomcol' => 'Colore a caso',
'enter' => 'Entrare', 'enter' => 'Entrare',
'error' => 'Errore', 'error' => 'Errore',
'admin' => 'Admin',
'staff' => 'Staff',
'members' => 'Registrati', 'members' => 'Registrati',
'guests' => 'Ospiti', 'guests' => 'Ospiti',
'approveguests' => '%d nuovi ospiti da accettare', 'approveguests' => '%d nuovi ospiti da accettare',

View File

@ -179,6 +179,8 @@ $I=[
'randomcol' => 'Cor Aleatória', 'randomcol' => 'Cor Aleatória',
'enter' => 'Entrar no Chat', 'enter' => 'Entrar no Chat',
'error' => 'Erro', 'error' => 'Erro',
'admin' => 'Admin',
'staff' => 'Staff',
'members' => 'Membros', 'members' => 'Membros',
'guests' => 'Guests', 'guests' => 'Guests',
'approveguests' => '%d novos guests para aprovar', 'approveguests' => '%d novos guests para aprovar',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Случайный цвет', 'randomcol' => 'Случайный цвет',
'enter' => 'Войти в чат', 'enter' => 'Войти в чат',
'error' => 'Ошибка', 'error' => 'Ошибка',
'admin' => 'Администратор',
'staff' => 'Служебные',
'members' => 'Зарегистрированные', 'members' => 'Зарегистрированные',
'guests' => 'Гости', 'guests' => 'Гости',
'approveguests' => '%d новые гости для одобрения', 'approveguests' => '%d новые гости для одобрения',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Rastgele renk', 'randomcol' => 'Rastgele renk',
'enter' => 'Sohbete gir', 'enter' => 'Sohbete gir',
'error' => 'Hata', 'error' => 'Hata',
'admin' => 'Yönetici',
'staff' => 'Yetkili',
'members' => 'Üyeler', 'members' => 'Üyeler',
'guests' => 'Konuklar', 'guests' => 'Konuklar',
'approveguests' => '%d tane onaylanacak konuk', 'approveguests' => '%d tane onaylanacak konuk',

View File

@ -179,6 +179,8 @@ $T=[
'randomcol' => 'Случайний коляр', 'randomcol' => 'Случайний коляр',
'enter' => 'Війти в чат', 'enter' => 'Війти в чат',
'error' => 'Ошибка', 'error' => 'Ошибка',
'admin' => 'Администратор',
'staff' => 'Служебні',
'members' => 'Зарегістріруванні', 'members' => 'Зарегістріруванні',
'guests' => 'Гості', 'guests' => 'Гості',
'approveguests' => '%d новіе гості для одобрення', 'approveguests' => '%d новіе гості для одобрення',

View File

@ -158,6 +158,8 @@ $T=[
'randomcol' => '随机颜色', 'randomcol' => '随机颜色',
'enter' => '回车', 'enter' => '回车',
'error' => '错误', 'error' => '错误',
'admin' => '管理',
'staff' => '工作人员',
'members' => '会员', 'members' => '会员',
'guests' => '游客', 'guests' => '游客',
'approveguests' => '%d新客人批准', 'approveguests' => '%d新客人批准',