Identify system messages with a span title.

Add option to prepend text to system messages.
Add option to always allow members to kick.
Add option to show names of those who kick people, or clean all messages.
This commit is contained in:
Daniel Winzen
2021-03-05 19:25:19 +01:00
parent c9b8a343be
commit f9b150f3ac
14 changed files with 97 additions and 23 deletions

View File

@ -68,7 +68,7 @@ function route(){
}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_setting('memkickalways') || (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);
}else{ }else{
@ -235,12 +235,12 @@ function route_setup(){
if(!valid_admin()){ if(!valid_admin()){
send_alogin(); send_alogin();
} }
$C['bool_settings']=['suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'forceredirect', 'incognito', 'sendmail', 'modfallback', 'disablepm', 'eninbox', 'enablegreeting', 'sortupdown', 'hidechatters', 'personalnotes', 'publicnotes', 'filtermodkick']; $C['bool_settings']=['suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'memkickalways', 'forceredirect', 'incognito', 'sendmail', 'modfallback', 'disablepm', 'eninbox', 'enablegreeting', 'sortupdown', 'hidechatters', 'personalnotes', 'publicnotes', 'filtermodkick', 'namedoers'];
$C['colour_settings']=['colbg', 'coltxt']; $C['colour_settings']=['colbg', 'coltxt'];
$C['msg_settings']=['msgenter', 'msgexit', 'msgmemreg', 'msgsureg', 'msgkick', 'msgmultikick', 'msgallkick', 'msgclean', 'msgsendall', 'msgsendmem', 'msgsendmod', 'msgsendadm', 'msgsendprv', 'msgattache']; $C['msg_settings']=['msgenter', 'msgexit', 'msgmemreg', 'msgsureg', 'msgkick', 'msgmultikick', 'msgallkick', 'msgclean', 'msgsendall', 'msgsendmem', 'msgsendmod', 'msgsendadm', 'msgsendprv', 'msgattache'];
$C['number_settings']=['memberexpire', 'guestexpire', 'kickpenalty', 'entrywait', 'captchatime', 'messageexpire', 'messagelimit', 'maxmessage', 'maxname', 'minpass', 'defaultrefresh', 'numnotes', 'maxuploadsize', 'enfileupload']; $C['number_settings']=['memberexpire', 'guestexpire', 'kickpenalty', 'entrywait', 'captchatime', 'messageexpire', 'messagelimit', 'maxmessage', 'maxname', 'minpass', 'defaultrefresh', 'numnotes', 'maxuploadsize', 'enfileupload'];
$C['textarea_settings']=['rulestxt', 'css', 'disabletext']; $C['textarea_settings']=['rulestxt', 'css', 'disabletext'];
$C['text_settings']=['dateformat', 'captchachars', 'redirect', 'chatname', 'mailsender', 'mailreceiver', 'nickregex', 'passregex', 'externalcss', 'metadescription']; $C['text_settings']=['dateformat', 'captchachars', 'redirect', 'chatname', 'mailsender', 'mailreceiver', 'nickregex', 'passregex', 'externalcss', 'metadescription', 'sysmessagetxt'];
$C['settings']=array_merge(['guestaccess', 'englobalpass', 'globalpass', 'captcha', 'dismemcaptcha', 'topic', 'guestreg', 'defaulttz'], $C['bool_settings'], $C['colour_settings'], $C['msg_settings'], $C['number_settings'], $C['textarea_settings'], $C['text_settings']); // All settings in the database $C['settings']=array_merge(['guestaccess', 'englobalpass', 'globalpass', 'captcha', 'dismemcaptcha', 'topic', 'guestreg', 'defaulttz'], $C['bool_settings'], $C['colour_settings'], $C['msg_settings'], $C['number_settings'], $C['textarea_settings'], $C['text_settings']); // All settings in the database
if(!isset($_POST['do'])){ if(!isset($_POST['do'])){
}elseif($_POST['do']==='save'){ }elseif($_POST['do']==='save'){
@ -1850,12 +1850,12 @@ function send_post(string $rejected=''){
} }
echo '</select></td>'; echo '</select></td>';
if(get_setting('enfileupload')>0 && get_setting('enfileupload')<=$U['status']){ if(get_setting('enfileupload')>0 && get_setting('enfileupload')<=$U['status']){
if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){ if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && (get_setting('memkickalways') || (get_count_mods()==0 && get_setting('memkick')))))){
echo '</tr></table><table><tr id="secondline">'; echo '</tr></table><table><tr id="secondline">';
} }
printf("<td><input type=\"file\" name=\"file\"><small>$I[maxsize]</small></td>", get_setting('maxuploadsize')); printf("<td><input type=\"file\" name=\"file\"><small>$I[maxsize]</small></td>", get_setting('maxuploadsize'));
} }
if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){ if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && (get_setting('memkickalways') || (get_count_mods()==0 && get_setting('memkick')))))){
echo "<td><label><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"kick\">$I[kick]</label></td>"; echo "<td><label><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"kick\">$I[kick]</label></td>";
echo "<td><label><input type=\"checkbox\" name=\"what\" id=\"what\" value=\"purge\" checked>$I[alsopurge]</label></td>"; echo "<td><label><input type=\"checkbox\" name=\"what\" id=\"what\" value=\"purge\" checked>$I[alsopurge]</label></td>";
} }
@ -2432,7 +2432,7 @@ function write_new_session(string $password){
$session = $U['session']; $session = $U['session'];
set_secure_cookie(COOKIENAME, $U['session']); set_secure_cookie(COOKIENAME, $U['session']);
if($U['status']>=3 && !$U['incognito']){ if($U['status']>=3 && !$U['incognito']){
add_system_message(sprintf(get_setting('msgenter'), style_this(htmlspecialchars($U['nickname']), $U['style']))); add_system_message(sprintf(get_setting('msgenter'), style_this(htmlspecialchars($U['nickname']), $U['style'])), '');
} }
} }
} }
@ -2512,7 +2512,7 @@ function kill_session(){
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'sessions WHERE session=?;'); $stmt=$db->prepare('DELETE FROM ' . PREFIX . 'sessions WHERE session=?;');
$stmt->execute([$U['session']]); $stmt->execute([$U['session']]);
if($U['status']>=3 && !$U['incognito']){ if($U['status']>=3 && !$U['incognito']){
add_system_message(sprintf(get_setting('msgexit'), style_this(htmlspecialchars($U['nickname']), $U['style']))); add_system_message(sprintf(get_setting('msgexit'), style_this(htmlspecialchars($U['nickname']), $U['style'])), '');
} }
} }
@ -2545,13 +2545,13 @@ function kick_chatter(array $names, string $mes, bool $purge) : bool {
} }
if($i>0){ if($i>0){
if($all){ if($all){
add_system_message(get_setting('msgallkick')); add_system_message(get_setting('msgallkick'), $U['nickname']);
}else{ }else{
$lonick=substr($lonick, 0, -2); $lonick=substr($lonick, 0, -2);
if($i>1){ if($i>1){
add_system_message(sprintf(get_setting('msgmultikick'), $lonick)); add_system_message(sprintf(get_setting('msgmultikick'), $lonick), $U['nickname']);
}else{ }else{
add_system_message(sprintf(get_setting('msgkick'), $lonick)); add_system_message(sprintf(get_setting('msgkick'), $lonick), $U['nickname']);
} }
} }
return true; return true;
@ -2698,9 +2698,9 @@ function register_guest(int $status, string $nick) : string {
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'members (nickname, passhash, status, refresh, bgcolour, regedby, timestamps, embed, style, incognito, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);'); $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'members (nickname, passhash, status, refresh, bgcolour, regedby, timestamps, embed, style, incognito, nocache, tz, eninbox, sortupdown, hidechatters, nocache_old) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);');
$stmt->execute([$reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $U['nickname'], $reg['timestamps'], $reg['embed'], $reg['style'], $reg['incognito'], $reg['nocache'], $reg['tz'], $reg['eninbox'], $reg['sortupdown'], $reg['hidechatters'], $reg['nocache_old']]); $stmt->execute([$reg['nickname'], $reg['passhash'], $reg['status'], $reg['refresh'], $reg['bgcolour'], $U['nickname'], $reg['timestamps'], $reg['embed'], $reg['style'], $reg['incognito'], $reg['nocache'], $reg['tz'], $reg['eninbox'], $reg['sortupdown'], $reg['hidechatters'], $reg['nocache_old']]);
if($reg['status']==3){ if($reg['status']==3){
add_system_message(sprintf(get_setting('msgmemreg'), style_this(htmlspecialchars($reg['nickname']), $reg['style']))); add_system_message(sprintf(get_setting('msgmemreg'), style_this(htmlspecialchars($reg['nickname']), $reg['style'])), $U['nickname']);
}else{ }else{
add_system_message(sprintf(get_setting('msgsureg'), style_this(htmlspecialchars($reg['nickname']), $reg['style']))); add_system_message(sprintf(get_setting('msgsureg'), style_this(htmlspecialchars($reg['nickname']), $reg['style'])), $U['nickname']);
} }
return sprintf($I['successreg'], style_this(htmlspecialchars($reg['nickname']), $reg['style'])); return sprintf($I['successreg'], style_this(htmlspecialchars($reg['nickname']), $reg['style']));
} }
@ -3252,18 +3252,31 @@ function add_message(string $message, string $recipient, string $poster, int $de
return true; return true;
} }
function add_system_message(string $mes){ function add_system_message(string $mes, string $doer){
global $I;
if($mes===''){ if($mes===''){
return; return;
} }
if($doer==='' || !get_setting('namedoers')){
$sysmessage=[
'postdate' =>time(),
'poststatus' =>4,
'poster' =>'',
'recipient' =>'',
'text' =>"$mes",
'delstatus' =>4
];
} else {
$sysmessage=[ $sysmessage=[
'postdate' =>time(), 'postdate' =>time(),
'poststatus' =>1, 'poststatus' =>4,
'poster' =>'', 'poster' =>'',
'recipient' =>'', 'recipient' =>'',
'text' =>"<span class=\"sysmsg\">$mes</span>", 'text' =>"$mes ($doer)",
'delstatus' =>4 'delstatus' =>4
]; ];
}
write_message($sysmessage); write_message($sysmessage);
} }
@ -3287,9 +3300,9 @@ function write_message($message){
} }
function clean_room(){ function clean_room(){
global $db; global $U, $db;
$db->query('DELETE FROM ' . PREFIX . 'messages;'); $db->query('DELETE FROM ' . PREFIX . 'messages;');
add_system_message(sprintf(get_setting('msgclean'), get_setting('chatname'))); add_system_message(sprintf(get_setting('msgclean'), get_setting('chatname')), $U['nickname']);
} }
function clean_selected(int $status, string $nick){ function clean_selected(int $status, string $nick){
@ -3341,7 +3354,7 @@ function del_last_message(){
} }
function print_messages(int $delstatus=0){ function print_messages(int $delstatus=0){
global $U, $db; global $I, $U, $db;
$dateformat=get_setting('dateformat'); $dateformat=get_setting('dateformat');
if(!$U['embed'] && get_setting('imgembed')){ if(!$U['embed'] && get_setting('imgembed')){
$removeEmbed=true; $removeEmbed=true;
@ -3377,7 +3390,7 @@ function print_messages(int $delstatus=0){
echo " $message[text]</label></div>"; echo " $message[text]</label></div>";
} }
}else{ }else{
$stmt=$db->prepare('SELECT id, postdate, text FROM ' . PREFIX . 'messages WHERE (poststatus<=? OR '. $stmt=$db->prepare('SELECT id, postdate, poststatus, text FROM ' . PREFIX . 'messages WHERE (poststatus<=? OR poststatus=4 OR '.
'(poststatus=9 AND ( (poster=? AND recipient NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) ) OR recipient=?) AND postdate>=?)'. '(poststatus=9 AND ( (poster=? AND recipient NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) ) OR recipient=?) AND postdate>=?)'.
') AND poster NOT IN (SELECT ign FROM ' . PREFIX . "ignored WHERE ignby=?) ORDER BY id $direction;"); ') AND poster NOT IN (SELECT ign FROM ' . PREFIX . "ignored WHERE ignby=?) ORDER BY id $direction;");
$stmt->execute([$U['status'], $U['nickname'], $U['nickname'], $U['nickname'], $entry, $U['nickname']]); $stmt->execute([$U['status'], $U['nickname'], $U['nickname'], $U['nickname'], $entry, $U['nickname']]);
@ -3387,9 +3400,13 @@ function print_messages(int $delstatus=0){
if($timestamps){ if($timestamps){
echo '<small>'.date($dateformat, $message['postdate']).' - </small>'; echo '<small>'.date($dateformat, $message['postdate']).' - </small>';
} }
if ($message['poststatus']==4) {
echo "<span class=\"sysmsg\" title=\"$I[sysmessage]\">".get_setting('sysmessagetxt')."$message[text]</span></div>";
} else {
echo "$message[text]</div>"; echo "$message[text]</div>";
} }
} }
}
echo '</div>'; echo '</div>';
} }
@ -3609,7 +3626,7 @@ function cron(){
$stmt->execute([$time, $time]); $stmt->execute([$time, $time]);
// delete old messages // delete old messages
$limit=get_setting('messagelimit'); $limit=get_setting('messagelimit');
$stmt=$db->query('SELECT id FROM ' . PREFIX . "messages WHERE poststatus=1 ORDER BY id DESC LIMIT 1 OFFSET $limit;"); $stmt=$db->query('SELECT id FROM ' . PREFIX . "messages WHERE poststatus=1 OR poststatus=4 ORDER BY id DESC LIMIT 1 OFFSET $limit;");
if($id=$stmt->fetch(PDO::FETCH_NUM)){ if($id=$stmt->fetch(PDO::FETCH_NUM)){
$stmt=$db->prepare('DELETE FROM ' . PREFIX . 'messages WHERE id<=?;'); $stmt=$db->prepare('DELETE FROM ' . PREFIX . 'messages WHERE id<=?;');
$stmt->execute($id); $stmt->execute($id);
@ -3766,6 +3783,8 @@ function init_chat(){
['trackip', '0'], ['trackip', '0'],
['captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'], ['captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'],
['memkick', '1'], ['memkick', '1'],
['memkickalways', '0'],
['namedoers', '1'],
['forceredirect', '0'], ['forceredirect', '0'],
['redirect', ''], ['redirect', ''],
['incognito', '1'], ['incognito', '1'],
@ -3808,6 +3827,7 @@ function init_chat(){
['publicnotes', '1'], ['publicnotes', '1'],
['filtermodkick', '0'], ['filtermodkick', '0'],
['metadescription', $I['defaultmetadescription']], ['metadescription', $I['defaultmetadescription']],
['sysmessagetxt', ' '],
]; ];
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);'); $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);');
foreach($settings as $pair){ foreach($settings as $pair){
@ -4171,6 +4191,9 @@ function update_db(){
if($dbversion<44){ if($dbversion<44){
$db->exec('INSERT INTO ' . PREFIX . "settings (setting,value) VALUES ('publicnotes', '0');"); $db->exec('INSERT INTO ' . PREFIX . "settings (setting,value) VALUES ('publicnotes', '0');");
} }
if($dbversion<45){
$db->exec('INSERT INTO ' . PREFIX . "settings (setting,value) VALUES ('memkickalways', '0'), (sysmessagetxt', ' '),('namedoers', '1');");
}
update_setting('dbversion', DBVERSION); update_setting('dbversion', DBVERSION);
if($msgencrypted!==MSGENCRYPTED){ if($msgencrypted!==MSGENCRYPTED){
if(!extension_loaded('sodium')){ if(!extension_loaded('sodium')){
@ -4363,7 +4386,7 @@ function load_lang(){
function load_config(){ function load_config(){
mb_internal_encoding('UTF-8'); mb_internal_encoding('UTF-8');
define('VERSION', '1.24.1'); // Script version define('VERSION', '1.24.1'); // Script version
define('DBVERSION', 44); // Database layout version define('DBVERSION', 45); // Database layout version
define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing! define('MSGENCRYPTED', false); // Store messages encrypted in the database to prevent other database users from reading them - true/false - visit the setup page after editing!
define('ENCRYPTKEY_PASS', 'MY_SECRET_KEY'); // Recommended length: 32. Encryption key for messages define('ENCRYPTKEY_PASS', 'MY_SECRET_KEY'); // Recommended length: 32. Encryption key for messages
define('AES_IV_PASS', '012345678912'); // Recommended length: 12. AES Encryption IV define('AES_IV_PASS', '012345678912'); // Recommended length: 12. AES Encryption IV

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Глобална парола:', 'globalloginpass' => 'Глобална парола:',
'login' => 'Вход', 'login' => 'Вход',
'dbupdate' => 'Базата данни бе успешно обновена!', 'dbupdate' => 'Базата данни бе успешно обновена!',
'sysmessage' => 'съобщение от системата',
'sysmessages' => 'Системни съобщения', 'sysmessages' => 'Системни съобщения',
'sysmessagetxt' => 'Този текст предшества съобщенията от системата.',
'msgenter' => 'Влизане', 'msgenter' => 'Влизане',
'msgexit' => 'Напускане', 'msgexit' => 'Напускане',
'msgmemreg' => 'Членът е регистриран', 'msgmemreg' => 'Членът е регистриран',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Покажи IP-то на сесията', 'trackip' => 'Покажи IP-то на сесията',
'captchachars' => 'Символи, използвани за Captcha-та', 'captchachars' => 'Символи, използвани за Captcha-та',
'memkick' => 'Членовете могат да гонят, ако няма модератор в стаята', 'memkick' => 'Членовете могат да гонят, ако няма модератор в стаята',
'memkickalways' => 'Членовете могат вся́кога да гонят',
'forceredirect' => 'Пренасочване', 'forceredirect' => 'Пренасочване',
'redirect' => 'Мой скрипт за пренасочване', 'redirect' => 'Мой скрипт за пренасочване',
'backuprestore' => 'Бекъп и възстановяване', 'backuprestore' => 'Бекъп и възстановяване',
@ -369,4 +372,5 @@ $T=[
'personalnotes' => 'Лични бележки', 'personalnotes' => 'Лични бележки',
'publicnotes' => 'Обще́ствен Бележки', 'publicnotes' => 'Обще́ствен Бележки',
'filtermodkick' => 'Прилагай филтъра за изгонване и за модераторите', 'filtermodkick' => 'Прилагай филтъра за изгонване и за модераторите',
'namedoers' => 'Показване кой изхвърля хора или пречиства всички съобщения.',
]; ];

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Globální heslo:', 'globalloginpass' => 'Globální heslo:',
'login' => 'Přihlásit se', 'login' => 'Přihlásit se',
'dbupdate' => 'Databáze byla úspěšně aktualizována!', 'dbupdate' => 'Databáze byla úspěšně aktualizována!',
'sysmessage' => 'systémová zpráva',
'sysmessages' => 'Systémové zprávy', 'sysmessages' => 'Systémové zprávy',
'sysmessagetxt' => 'Tento text předchází zprávám ze systému.',
'msgenter' => 'Vstup', 'msgenter' => 'Vstup',
'msgexit' => 'Odchod', 'msgexit' => 'Odchod',
'msgmemreg' => 'Registrovaný člen', 'msgmemreg' => 'Registrovaný člen',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Zobrazit IP relace', 'trackip' => 'Zobrazit IP relace',
'captchachars' => 'Znaky použité v Captcha', 'captchachars' => 'Znaky použité v Captcha',
'memkick' => 'Členové mohou vyhazovat, pokud není přítomen žádný moderátor', 'memkick' => 'Členové mohou vyhazovat, pokud není přítomen žádný moderátor',
'memkickalways' => 'Členové mohou vždy vyhazovat',
'forceredirect' => 'Vynucené přesměrování', 'forceredirect' => 'Vynucené přesměrování',
'redirect' => 'Vlastní skript přesměrování', 'redirect' => 'Vlastní skript přesměrování',
'backuprestore' => 'Zálohování a obnovení', 'backuprestore' => 'Zálohování a obnovení',
@ -369,4 +372,5 @@ $T=[
'personalnotes' => 'Osobní poznámky', 'personalnotes' => 'Osobní poznámky',
'publicnotes' => 'Poznámky publikovaný', 'publicnotes' => 'Poznámky publikovaný',
'filtermodkick' => 'Použít vyhazovací filtr na moderátory', 'filtermodkick' => 'Použít vyhazovací filtr na moderátory',
'namedoers' => 'Ukažte, kdo vyloučí lidi nebo vyčistí všechny zprávy.',
]; ];

View File

@ -44,7 +44,9 @@ $T=[
'initsuexist' => 'Ein Superadmin existiert bereits!', 'initsuexist' => 'Ein Superadmin existiert bereits!',
'initgosetup' => 'Zur Einrichtungsseite gehen', 'initgosetup' => 'Zur Einrichtungsseite gehen',
'dbupdate' => 'Datenbank erfolgreich aktualisiert!', 'dbupdate' => 'Datenbank erfolgreich aktualisiert!',
'sysmessage' => 'Systemnachricht',
'sysmessages' => 'Systemnachrichten', 'sysmessages' => 'Systemnachrichten',
'sysmessagetxt' => 'Dieser Text geht Nachrichten aus dem System voraus.',
'msgenter' => 'Eintritt', 'msgenter' => 'Eintritt',
'msgexit' => 'Verlassen', 'msgexit' => 'Verlassen',
'msgmemreg' => 'Mitglied registriert', 'msgmemreg' => 'Mitglied registriert',
@ -271,6 +273,7 @@ $T=[
'trackip' => 'Sitzungs-IP anzeigen', 'trackip' => 'Sitzungs-IP anzeigen',
'captchachars' => 'Im Captcha benutzte Zeichen', 'captchachars' => 'Im Captcha benutzte Zeichen',
'memkick' => 'Mitglieder dürfen Rasusschmeißen, wenn kein Moderator da ist', 'memkick' => 'Mitglieder dürfen Rasusschmeißen, wenn kein Moderator da ist',
'memkickalways' => 'Mitglieder dürfen immer Rasusschmeißen',
'forceredirect' => 'Umleitung erzwingen', 'forceredirect' => 'Umleitung erzwingen',
'redirect' => 'Benutzerdefinierte Umleitungsadresse', 'redirect' => 'Benutzerdefinierte Umleitungsadresse',
'backuprestore' => 'Sichern und wiederherstellen', 'backuprestore' => 'Sichern und wiederherstellen',
@ -370,6 +373,7 @@ $T=[
'personalnotes' => 'Persönliche Notizen', 'personalnotes' => 'Persönliche Notizen',
'publicnotes' => 'Öffentliche Notizen', 'publicnotes' => 'Öffentliche Notizen',
'filtermodkick' => 'Kickfilter auf Moderatoren anwenden', 'filtermodkick' => 'Kickfilter auf Moderatoren anwenden',
'namedoers' => 'Zeigen Sie, wer Menschen vertreibt oder alle Nachrichten löscht.',
'forgotlogin' => 'Zugangsdaten vergessen?', 'forgotlogin' => 'Zugangsdaten vergessen?',
'resetinstruction' => 'Bitte bearbeiten Sie das Skript und fügen Sie folgendes am Ende der Datei hinzu (und ändern Sie das Passwort "changeme"). Danach aktualisieren Sie die Seite bitte: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');', 'resetinstruction' => 'Bitte bearbeiten Sie das Skript und fügen Sie folgendes am Ende der Datei hinzu (und ändern Sie das Passwort "changeme"). Danach aktualisieren Sie die Seite bitte: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');',
'resetpassword' => 'Passwort zurücksetzen', 'resetpassword' => 'Passwort zurücksetzen',

View File

@ -55,7 +55,9 @@ $I=[
'globalloginpass' => 'Global Password:', 'globalloginpass' => 'Global Password:',
'login' => 'Login', 'login' => 'Login',
'dbupdate' => 'Database successfully updated!', 'dbupdate' => 'Database successfully updated!',
'sysmessage' => 'system message',
'sysmessages' => 'System messages', 'sysmessages' => 'System messages',
'sysmessagetxt' => 'Prepend this text to system messages',
'msgenter' => 'Entrance', 'msgenter' => 'Entrance',
'msgexit' => 'Leaving', 'msgexit' => 'Leaving',
'msgmemreg' => 'Member registered', 'msgmemreg' => 'Member registered',
@ -271,6 +273,7 @@ $I=[
'trackip' => 'Show session-IP', 'trackip' => 'Show session-IP',
'captchachars' => 'Characters used in Captcha', 'captchachars' => 'Characters used in Captcha',
'memkick' => 'Members can kick, if no moderator is present', 'memkick' => 'Members can kick, if no moderator is present',
'memkickalways' => 'Members can always kick',
'forceredirect' => 'Force redirection', 'forceredirect' => 'Force redirection',
'redirect' => 'Custom redirection script', 'redirect' => 'Custom redirection script',
'backuprestore' => 'Backup and restore', 'backuprestore' => 'Backup and restore',
@ -370,6 +373,7 @@ $I=[
'personalnotes' => 'Personal notes', 'personalnotes' => 'Personal notes',
'publicnotes' => 'Public notes', 'publicnotes' => 'Public notes',
'filtermodkick' => 'Apply kick filter on moderators', 'filtermodkick' => 'Apply kick filter on moderators',
'namedoers' => 'Show who kicks people or purges all messages.',
'forgotlogin' => 'Forgot login?', 'forgotlogin' => 'Forgot login?',
'resetinstruction' => 'Please modify the script and put the following at the bottom of it (change the password). Then refresh this page: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');', 'resetinstruction' => 'Please modify the script and put the following at the bottom of it (change the password). Then refresh this page: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');',
'resetpassword' => 'Reset password', 'resetpassword' => 'Reset password',

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Contraseña global:', 'globalloginpass' => 'Contraseña global:',
'login' => 'Identificarse', 'login' => 'Identificarse',
'dbupdate' => '¡La base de datos fue actualizada con éxito!', 'dbupdate' => '¡La base de datos fue actualizada con éxito!',
'sysmessage' => 'mensaje de sistema',
'sysmessages' => 'Mensajes de sistema', 'sysmessages' => 'Mensajes de sistema',
'sysmessagetxt' => 'Este texto precede a los mensajes del sistema.',
'msgenter' => 'Entrando', 'msgenter' => 'Entrando',
'msgexit' => 'Saliendo', 'msgexit' => 'Saliendo',
'msgmemreg' => 'Miembro registrado', 'msgmemreg' => 'Miembro registrado',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Mostrar IP de la sesión', 'trackip' => 'Mostrar IP de la sesión',
'captchachars' => 'Caracteres usados en el Captcha', 'captchachars' => 'Caracteres usados en el Captcha',
'memkick' => 'Los miembros pueden expulsar, si no hay moderador presente', 'memkick' => 'Los miembros pueden expulsar, si no hay moderador presente',
'memkickalways' => 'Los miembros siempre pueden expulsar',
'forceredirect' => 'Forzar redirección', 'forceredirect' => 'Forzar redirección',
'redirect' => 'Script de redirección personalizado', 'redirect' => 'Script de redirección personalizado',
'backuprestore' => 'Copias de seguridad', 'backuprestore' => 'Copias de seguridad',
@ -369,4 +372,5 @@ $T=[
'personalnotes' => 'Notas personales', 'personalnotes' => 'Notas personales',
'publicnotes' => 'Notas públicas', 'publicnotes' => 'Notas públicas',
'filtermodkick' => 'Aplicar Kick filter en moderadores o administradores', 'filtermodkick' => 'Aplicar Kick filter en moderadores o administradores',
'namedoers' => 'Mostrar quién expulsa a las personas o purga todos los mensajes.'
]; ];

View File

@ -53,7 +53,9 @@ $T=[
'globalloginpass' => 'Mot de passe global:', 'globalloginpass' => 'Mot de passe global:',
'login' => 'Connexion', 'login' => 'Connexion',
'dbupdate' => 'Base de données installée!', 'dbupdate' => 'Base de données installée!',
'sysmessage' => 'message du système',
'sysmessages' => 'Messages du système', 'sysmessages' => 'Messages du système',
'sysmessagetxt' => 'Ce texte précède les messages du système.',
'msgenter' => 'Entrer', 'msgenter' => 'Entrer',
'msgexit' => 'Quitter', 'msgexit' => 'Quitter',
'msgmemreg' => 'Membre enregisté', 'msgmemreg' => 'Membre enregisté',
@ -267,6 +269,7 @@ $T=[
'trackip' => 'Voir la session-IP', 'trackip' => 'Voir la session-IP',
'captchachars' => 'Charactères utilisés dans le Captcha', 'captchachars' => 'Charactères utilisés dans le Captcha',
'memkick' => 'Membres peuvent expulsés, si le modérateur est absent', 'memkick' => 'Membres peuvent expulsés, si le modérateur est absent',
'memkickalways' => 'Membres peuvent toujours expulser',
'forceredirect' => 'Forcer la redirection', 'forceredirect' => 'Forcer la redirection',
'redirect' => 'Personnalisation du script de redirection', 'redirect' => 'Personnalisation du script de redirection',
'backuprestore' => 'Sauvegarder et récupérer', 'backuprestore' => 'Sauvegarder et récupérer',
@ -308,5 +311,6 @@ $T=[
'newnickname' => 'Nouveau Pseudo:', 'newnickname' => 'Nouveau Pseudo:',
'nicknametaken' => 'Pseudo déjà pris', 'nicknametaken' => 'Pseudo déjà pris',
'nopass' => 'Mot de passe invalide (au moins % caractères), ne pas changer le pseudo', 'nopass' => 'Mot de passe invalide (au moins % caractères), ne pas changer le pseudo',
'namedoers' => 'Montrez qui expulse les gens ou nettoie tous les messages.',
]; ];

View File

@ -53,7 +53,9 @@ $T=[
'globalloginpass' => 'Sandi global:', 'globalloginpass' => 'Sandi global:',
'login' => 'Masuk', 'login' => 'Masuk',
'dbupdate' => 'Basisdata berhasil diperbarui!', 'dbupdate' => 'Basisdata berhasil diperbarui!',
'sysmessage' => 'pesan dari sistem',
'sysmessages' => 'Sistem perpesanan', 'sysmessages' => 'Sistem perpesanan',
'sysmessagetxt' => 'Teks ini mendahului pesan dari sistem.',
'msgenter' => 'Memasuki', 'msgenter' => 'Memasuki',
'msgexit' => 'Meninggalkan', 'msgexit' => 'Meninggalkan',
'msgmemreg' => 'Anggota terdaftar', 'msgmemreg' => 'Anggota terdaftar',
@ -267,6 +269,7 @@ $T=[
'trackip' => 'Tunjukkan sesi-IP', 'trackip' => 'Tunjukkan sesi-IP',
'captchachars' => 'Karakter yang digunakan dalam Captcha', 'captchachars' => 'Karakter yang digunakan dalam Captcha',
'memkick' => 'Anggota dapat mengusir, jika tak ada moderator', 'memkick' => 'Anggota dapat mengusir, jika tak ada moderator',
'memkickalways' => 'Anggota selalu dapat mengusir',
'forceredirect' => 'Paksa pengalihan', 'forceredirect' => 'Paksa pengalihan',
'redirect' => 'Skrip pengalihan kustom', 'redirect' => 'Skrip pengalihan kustom',
'backuprestore' => 'Cadang dan pulihkan', 'backuprestore' => 'Cadang dan pulihkan',
@ -307,6 +310,7 @@ $T=[
'loggedinas' => 'Anda masuk sebagai %s dan tak dapat mengakses bagian ini.', 'loggedinas' => 'Anda masuk sebagai %s dan tak dapat mengakses bagian ini.',
'newnickname' => 'Nama baru:', 'newnickname' => 'Nama baru:',
'nicknametaken' => 'Nama sudah ada', 'nicknametaken' => 'Nama sudah ada',
'nopass' => 'Kata sandi salah (Minimal %d karakter), tak merubah nama' 'nopass' => 'Kata sandi salah (Minimal %d karakter), tak merubah nama',
'namedoers' => 'Memperlihatkan siapa yang mengusir orang atau membersihkan semua pesan.'
]; ];

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Password globale:', 'globalloginpass' => 'Password globale:',
'login' => 'Entrare', 'login' => 'Entrare',
'dbupdate' => 'Database aggiornato!', 'dbupdate' => 'Database aggiornato!',
'sysmessage' => 'messaggio del sistema',
'sysmessages' => 'Messaggi del sistema', 'sysmessages' => 'Messaggi del sistema',
'sysmessagetxt' => 'Questo testo precede i messaggi del sistema.',
'msgenter' => 'Entrata', 'msgenter' => 'Entrata',
'msgexit' => 'Uscita', 'msgexit' => 'Uscita',
'msgmemreg' => 'Registarto', 'msgmemreg' => 'Registarto',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Visualizzare IP-sessione', 'trackip' => 'Visualizzare IP-sessione',
'captchachars' => 'Simboli, utilizzati in Captcha', 'captchachars' => 'Simboli, utilizzati in Captcha',
'memkick' => 'Membri possono espellere, se non è presente moderatore', 'memkick' => 'Membri possono espellere, se non è presente moderatore',
'memkickalways' => 'Membri sempre possono espellere',
'forceredirect' => 'Riendirizzamento forzato', 'forceredirect' => 'Riendirizzamento forzato',
'redirect' => 'Riendirizzamento forzato membri', 'redirect' => 'Riendirizzamento forzato membri',
'backuprestore' => 'Backup e ripristino', 'backuprestore' => 'Backup e ripristino',
@ -369,4 +372,5 @@ $T=[
'personalnotes' => 'Appunti personali', 'personalnotes' => 'Appunti personali',
'publicnotes' => 'Appunti pubbliche', 'publicnotes' => 'Appunti pubbliche',
'filtermodkick' => 'Utlizzare filtro di esclusione per moderatori', 'filtermodkick' => 'Utlizzare filtro di esclusione per moderatori',
'namedoers' => 'Mostra chi espelle le persone o elimina tutti i messaggi.',
]; ];

View File

@ -55,7 +55,9 @@ $I=[
'globalloginpass' => 'Senha global:', 'globalloginpass' => 'Senha global:',
'login' => 'Login', 'login' => 'Login',
'dbupdate' => 'Banco de dados atualizado com sucesso!', 'dbupdate' => 'Banco de dados atualizado com sucesso!',
'sysmessage' => 'mensagem do sistema',
'sysmessages' => 'Mensagens do sistema', 'sysmessages' => 'Mensagens do sistema',
'sysmessagetxt' => 'Este texto precede mensagens do sistema.',
'msgenter' => 'Entrada', 'msgenter' => 'Entrada',
'msgexit' => 'Saída', 'msgexit' => 'Saída',
'msgmemreg' => 'Membro registrado', 'msgmemreg' => 'Membro registrado',
@ -271,6 +273,7 @@ $I=[
'trackip' => 'Mostrar os endereços IP das sessões ativas', 'trackip' => 'Mostrar os endereços IP das sessões ativas',
'captchachars' => 'Caracteres usados no Captcha', 'captchachars' => 'Caracteres usados no Captcha',
'memkick' => 'Os membros podem kickar, se nenhum moderador estiver presente', 'memkick' => 'Os membros podem kickar, se nenhum moderador estiver presente',
'memkickalways' => 'Os membros podem sempre espulsar',
'forceredirect' => 'Forçar redirecionamento', 'forceredirect' => 'Forçar redirecionamento',
'redirect' => 'Personalizar script de redirecionamento ', 'redirect' => 'Personalizar script de redirecionamento ',
'backuprestore' => 'Backup e restauração', 'backuprestore' => 'Backup e restauração',
@ -370,6 +373,7 @@ $I=[
'personalnotes' => 'Notas pessoais', 'personalnotes' => 'Notas pessoais',
'publicnotes' => 'Notas públicas', 'publicnotes' => 'Notas públicas',
'filtermodkick' => 'Aplicar filtro da expulsão nos moderadores', 'filtermodkick' => 'Aplicar filtro da expulsão nos moderadores',
'namedoers' => 'Mostre quem expulsa as pessoas ou expurga todas as mensagens.',
'forgotlogin' => 'Esqueceu o login?', 'forgotlogin' => 'Esqueceu o login?',
'resetinstruction' => 'Por favor modifique a script e escreva as seguintes no fim. Mudar a senha. Recarregue esta página depois.: define(\'RESET_SUPERADMIN_PASSWORD\', \'mudar_esta_senha\');', 'resetinstruction' => 'Por favor modifique a script e escreva as seguintes no fim. Mudar a senha. Recarregue esta página depois.: define(\'RESET_SUPERADMIN_PASSWORD\', \'mudar_esta_senha\');',
'resetpassword' => 'Redefinir senha', 'resetpassword' => 'Redefinir senha',

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Глобальный пароль:', 'globalloginpass' => 'Глобальный пароль:',
'login' => 'Войти', 'login' => 'Войти',
'dbupdate' => 'База данных успешно обновлена!', 'dbupdate' => 'База данных успешно обновлена!',
'sysmessage' => 'системное сообщение',
'sysmessages' => 'Системные сообщения', 'sysmessages' => 'Системные сообщения',
'sysmessagetxt' => 'Этот текст предшествует сообщениям из системы.',
'msgenter' => 'Вход', 'msgenter' => 'Вход',
'msgexit' => 'Выход', 'msgexit' => 'Выход',
'msgmemreg' => 'Зарегистрированные', 'msgmemreg' => 'Зарегистрированные',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Показать IP-сессию', 'trackip' => 'Показать IP-сессию',
'captchachars' => 'Символы, используемые в Captcha', 'captchachars' => 'Символы, используемые в Captcha',
'memkick' => 'Пользователи могут исключать, если не присутствует модератор', 'memkick' => 'Пользователи могут исключать, если не присутствует модератор',
'memkickalways' => 'Пользователи могут всегда́ исключать',
'forceredirect' => 'Принудительное перенаправление', 'forceredirect' => 'Принудительное перенаправление',
'redirect' => 'Пользовательский скрипт перенаправления', 'redirect' => 'Пользовательский скрипт перенаправления',
'backuprestore' => 'Бэкап и восстановление', 'backuprestore' => 'Бэкап и восстановление',
@ -369,5 +372,6 @@ $T=[
'personalnotes' => 'Личные заметки', 'personalnotes' => 'Личные заметки',
'publicnotes' => ' Профиля пользователяь', 'publicnotes' => ' Профиля пользователяь',
'filtermodkick' => 'Применить фильтр исключения для модераторов', 'filtermodkick' => 'Применить фильтр исключения для модераторов',
'namedoers' => 'Покажите, кто изгоняет людей или очищает все сообщения.',
]; ];

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Global şifre:', 'globalloginpass' => 'Global şifre:',
'login' => 'Giriş', 'login' => 'Giriş',
'dbupdate' => 'Veritabanı başarıyla güncellendi!', 'dbupdate' => 'Veritabanı başarıyla güncellendi!',
'sysmessage' => 'Sistem ileti',
'sysmessages' => 'Sistem iletileri', 'sysmessages' => 'Sistem iletileri',
'sysmessagetxt' => 'Bu metin, sistemden gelen iletilerden önce gelir.',
'msgenter' => 'Giriş', 'msgenter' => 'Giriş',
'msgexit' => 'Ayrılınıyor', 'msgexit' => 'Ayrılınıyor',
'msgmemreg' => 'Üye kaydedildi', 'msgmemreg' => 'Üye kaydedildi',
@ -271,6 +273,7 @@ $T=[
'trackip' => 'Oturum IP\'sini göster', 'trackip' => 'Oturum IP\'sini göster',
'captchachars' => 'Captcha\'da kullanılan harfler', 'captchachars' => 'Captcha\'da kullanılan harfler',
'memkick' => 'Eğer herhangi bir moderatör yoksa, üyeler birini atabilir', 'memkick' => 'Eğer herhangi bir moderatör yoksa, üyeler birini atabilir',
'memkickalways' => 'Üyeler her zaman birini atabilir',
'forceredirect' => 'Yönlendirmeye zorla', 'forceredirect' => 'Yönlendirmeye zorla',
'redirect' => 'Özel yönlendirme script\'i', 'redirect' => 'Özel yönlendirme script\'i',
'backuprestore' => 'Yedekle ve onar', 'backuprestore' => 'Yedekle ve onar',
@ -370,6 +373,7 @@ $T=[
'personalnotes' => 'Kişisel notlar', 'personalnotes' => 'Kişisel notlar',
'publicnotes' => 'Kamu profiller', 'publicnotes' => 'Kamu profiller',
'filtermodkick' => 'Moderatörler için atma filtresini etkinleştir', 'filtermodkick' => 'Moderatörler için atma filtresini etkinleştir',
'namedoers' => 'İnsanları kimin dışarı attığını veya tüm iletileri kimin temizlediğini gösterin.',
]; ];

View File

@ -55,7 +55,9 @@ $T=[
'globalloginpass' => 'Глобальний пароль:', 'globalloginpass' => 'Глобальний пароль:',
'login' => 'Війти', 'login' => 'Війти',
'dbupdate' => 'База данних успішно обновлена!', 'dbupdate' => 'База данних успішно обновлена!',
'sysmessage' => 'Системн повідомлення',
'sysmessages' => 'Системні повідомлення', 'sysmessages' => 'Системні повідомлення',
'sysmessagetxt' => 'Цьому тексту передує повідомлення від системи.',
'msgenter' => 'Вхід', 'msgenter' => 'Вхід',
'msgexit' => 'Вихід', 'msgexit' => 'Вихід',
'msgmemreg' => 'Зарегістрірованні', 'msgmemreg' => 'Зарегістрірованні',
@ -270,6 +272,7 @@ $T=[
'trackip' => 'Показати IP-сесію', 'trackip' => 'Показати IP-сесію',
'captchachars' => 'Символи, використовувані в Captcha', 'captchachars' => 'Символи, використовувані в Captcha',
'memkick' => 'Участники можуть ісключати, якщо нема модератора', 'memkick' => 'Участники можуть ісключати, якщо нема модератора',
'memkickalways' => 'Участники можуть за́вше ісключати',
'forceredirect' => 'Примусовне перенаправлення', 'forceredirect' => 'Примусовне перенаправлення',
'redirect' => 'Користувача скрипт перенаправлення', 'redirect' => 'Користувача скрипт перенаправлення',
'backuprestore' => 'Бэкап і восстановлення', 'backuprestore' => 'Бэкап і восстановлення',
@ -369,5 +372,6 @@ $T=[
'personalnotes' => 'Лічні замітки', 'personalnotes' => 'Лічні замітки',
'publicnotes' => 'Зауваження публічний', 'publicnotes' => 'Зауваження публічний',
'filtermodkick' => 'Примінити фільтр исключення для модераторів', 'filtermodkick' => 'Примінити фільтр исключення для модераторів',
'namedoers' => 'Показати, хто виганяє користувачів або очищає всі повідомлення.',
]; ];

View File

@ -36,7 +36,9 @@ $T=[
'globalloginpass' => '全局密码:', 'globalloginpass' => '全局密码:',
'login' => '登录', 'login' => '登录',
'dbupdate' => '数据库更新成功', 'dbupdate' => '数据库更新成功',
'sysmessage' => '系统信息',
'sysmessages' => '系统信息', 'sysmessages' => '系统信息',
'sysmessagetxt' => '此文本先于来自系统的消息。',
'msgenter' => '入口', 'msgenter' => '入口',
'msgexit' => '离开', 'msgexit' => '离开',
'msgmemreg' => '成员注册', 'msgmemreg' => '成员注册',
@ -250,6 +252,7 @@ $T=[
'trackip' => '显示会话-IP', 'trackip' => '显示会话-IP',
'captchachars' => '验证码中使用的字符', 'captchachars' => '验证码中使用的字符',
'memkick' => '如果没有主持人,会员可以踢', 'memkick' => '如果没有主持人,会员可以踢',
'memkickalways' => '会员总是可以驱逐客人',
'forceredirect' => '强制重定向', 'forceredirect' => '强制重定向',
'redirect' => '自定义重定向脚本', 'redirect' => '自定义重定向脚本',
'backuprestore' => '备份还原', 'backuprestore' => '备份还原',
@ -345,5 +348,5 @@ $T=[
'maxuploadsize' => '最大上载大小KB', 'maxuploadsize' => '最大上载大小KB',
'maxsize' => 'Max %d KB', 'maxsize' => 'Max %d KB',
'cssupdate' => '注意默认的CSS现在是硬编码的可以从CSS设置中删除。', 'cssupdate' => '注意默认的CSS现在是硬编码的可以从CSS设置中删除。',
'namedoers' => '显示谁驱逐人或清除所有消息。',
]; ];