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();
}elseif($_REQUEST['action']==='post'){
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(isset($_POST['what']) && $_POST['what']==='purge'){
kick_chatter([$_POST['sendto']], $_POST['message'], true);
@ -974,7 +974,7 @@ function send_admin(string $arg){
$ga=(int) get_setting('guestaccess');
print_start('admin');
$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=[];
$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)){
@ -1796,17 +1796,17 @@ function send_post(string $rejected=''){
}
if($U['status']>=5){
echo '<option ';
if($_REQUEST['sendto']==='s #'){
if($_REQUEST['sendto']==='s %'){
echo 'selected ';
}
echo "value=\"s #\">-$I[tostaff]-</option>";
echo "value=\"s %\">-$I[tostaff]-</option>";
}
if($U['status']>=6){
echo '<option ';
if($_REQUEST['sendto']==='s &'){
if($_REQUEST['sendto']==='s _'){
echo 'selected ';
}
echo "value=\"s &amp;\">-$I[toadmin]-</option>";
echo "value=\"s _\">-$I[toadmin]-</option>";
}
$disablepm=(bool) get_setting('disablepm');
if(!$disablepm){
@ -2233,21 +2233,32 @@ function print_chatters(){
$nc=substr(time(), -6);
$G=$M=[];
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){
$G[]=$link;
}else{
$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($U['status']<2){
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>';
}
}
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>';
}
@ -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=?);');
$stmt=$db->prepare('UPDATE ' . PREFIX . 'sessions SET lastpost=?, status=0, kickmessage=? WHERE nickname=?;');
$all=false;
if($names[0]==='s &'){
if($names[0]==='s _'){
$tmp=$db->query('SELECT nickname FROM ' . PREFIX . 'sessions WHERE status=1;');
$names=[];
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){
global $U, $db;
$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;');
$names=[];
while($name=$tmp->fetch(PDO::FETCH_NUM)){
@ -2960,10 +2971,10 @@ function validate_input() : string {
}elseif($_POST['sendto']==='s ?' && $U['status']>=3){
$poststatus=3;
$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;
$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;
$displaysend=sprintf(get_setting('msgsendadm'), style_this(htmlspecialchars($U['nickname']), $U['style']));
}else{ // known nick in room?

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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