Merge upstream

Merge branch 'master' of git://github.com/DanWin/le-chat-php
This commit is contained in:
Finnboy94
2021-04-09 13:13:28 +03:00
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', ' &nbsp;'],
]; ];
$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', ' &nbsp;'),('namedoers', '1');");
}
update_setting('dbversion', DBVERSION); update_setting('dbversion', DBVERSION);
if($msgencrypted!==MSGENCRYPTED){ if($msgencrypted!==MSGENCRYPTED){
if(!extension_loaded('sodium')){ if(!extension_loaded('sodium')){
@ -4364,7 +4387,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' => '显示谁驱逐人或清除所有消息。',
]; ];