Allow making CSS more unique, by adding more ids/classes and allowing to over-write hardcoded CSS

This commit is contained in:
Daniel Winzen
2016-10-03 10:40:00 +02:00
parent 75263aea4b
commit 0e969a1894
9 changed files with 177 additions and 163 deletions

View File

@ -10,6 +10,7 @@ Don't send messages to inbox when in incognito
Remove up to two characters from the end of @mention to also match @mention, etc. Remove up to two characters from the end of @mention to also match @mention, etc.
Make colour input use colorChooser, if supported Make colour input use colorChooser, if supported
Add integrated file upload support Add integrated file upload support
Allow making CSS more unique, by adding more ids/classes and allowing to over-write hardcoded CSS
Version 1.21 - Aug. 29, 2016 Version 1.21 - Aug. 29, 2016
Don't display empty option for system messages in delete messages by name Don't display empty option for system messages in delete messages by name

325
chat.php
View File

@ -258,19 +258,40 @@ function route_setup(){
} }
// html output subs // html output subs
function print_stylesheet(){ function print_stylesheet($init=false){
global $U; global $U;
//default css
echo '<style type="text/css">';
echo 'body{background-color:#000000;color:#FFFFFF;font-size:14px;text-align:center;} ';
echo 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} ';
echo 'input,select,textarea{color:#FFFFFF;background-color:#000000;} .messages a img{width:15%} .messages a:hover img{width:35%} ';
echo '.error{color:#FF0033;text-align:left;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;} ';
echo '.setup table table,.admin table table,.profile table table{width:100%;text-align:left} ';
echo '.alogin table,.init table,.destroy_chat table,.delete_account table,.sessions table,.filter table,.linkfilter table,.notes table,.approve_waiting table,.del_confirm table,.profile table,.admin table,.backup table,.setup table{margin-left:auto;margin-right:auto;} ';
echo '.setup table table table,.admin table table table,.profile table table table{border-spacing:0px;margin-left:auto;margin-right:unset;width:unset;} ';
echo '.setup table table td,.backup #restoresubmit,.backup #backupsubmit,.admin table table td,.profile table table td,.login td+td,.alogin td+td{text-align:right;} ';
echo '.init table,.backup #restorecheck td,.admin #clean td,.admin #regnew td,.session td,.messages,.inbox,.approve_waiting td,.choose_messages,.greeting,.help,.login td,.alogin td{text-align:left;} ';
echo '.messages #chatters{max-height:100px;overflow-y:auto;} .messages #chatters a{text-decoration-line:none;} .messages #chatters table{border-spacing:0px;} ';
echo '.messages #chatters th,.messages #chatters td,.post #firstline{vertical-align:top;} ';
echo '.approve_waiting #action td:only-child,.help #backcredit,.login td:only-child,.alogin td:only-child{text-align:center;} .sessions td,.sessions th,.approve_waiting td,.approve_waiting th{padding: 5px;} ';
echo '.sessions td td{padding: 1px;} .messages #bottom_link{position:fixed;top:0.5em;right:0.5em;} .messages #top_link{position:fixed;bottom:0.5em;right:0.5em;} ';
echo '.post table,.controls table,.login table{border-spacing:0px;margin-left:auto;margin-right:auto;} .login table{border:2px solid;} .controls{overflow-y:none;}';
echo '</style>';
if($init){
return;
}
$css=get_setting('css'); $css=get_setting('css');
$externalcss=get_setting('externalcss');
$coltxt=get_setting('coltxt'); $coltxt=get_setting('coltxt');
if(!empty($U['bgcolour'])){ if(!empty($U['bgcolour'])){
$colbg=$U['bgcolour']; $colbg=$U['bgcolour'];
}else{ }else{
$colbg=get_setting('colbg'); $colbg=get_setting('colbg');
} }
if($externalcss!=''){ if(($externalcss=get_setting('externalcss'))!=''){
//external css
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$externalcss\">"; echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"$externalcss\">";
} }
//overwrite with custom css
echo "<style type=\"text/css\">body{background-color:#$colbg;color:#$coltxt;} $css</style>"; echo "<style type=\"text/css\">body{background-color:#$colbg;color:#$coltxt;} $css</style>";
} }
@ -316,7 +337,7 @@ function print_start($class='', $ref=0, $url=''){
} }
if($class==='init'){ if($class==='init'){
echo "<title>$I[init]</title>"; echo "<title>$I[init]</title>";
echo "<style type=\"text/css\">body{background-color:#000000;color:#FFFFFF;text-align:center;} a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} input,select,textarea{color:#FFFFFF;background-color:#000000;} a img{width:15%} a:hover img{width:35%} .error{color:#FF0033;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;} .center-table{margin-left:auto;margin-right:auto;} .left-table{width:100%;text-align:left;} .right{text-align:right;} .left{text-align:left;} .right-table{border-spacing:0px;margin-left:auto;} .padded{padding:5px;} #chatters{max-height:100px;overflow-y:auto;} .center{text-align:center;}</style>"; print_stylesheet(true);
}else{ }else{
echo '<title>'.get_setting('chatname').'</title>'; echo '<title>'.get_setting('chatname').'</title>';
print_stylesheet(); print_stylesheet();
@ -377,7 +398,7 @@ function send_captcha(){
$stmt=$db->prepare('INSERT INTO ' . PREFIX . 'captcha (id, time, code) VALUES (?, ?, ?);'); $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'captcha (id, time, code) VALUES (?, ?, ?);');
$stmt->execute(array($randid, $time, $code)); $stmt->execute(array($randid, $time, $code));
} }
echo "<tr><td class=\"left\">$I[copy]<br>"; echo "<tr id=\"captcha\"><td>$I[copy]<br>";
if($difficulty===1){ if($difficulty===1){
$im=imagecreatetruecolor(55, 24); $im=imagecreatetruecolor(55, 24);
$bg=imagecolorallocate($im, 0, 0, 0); $bg=imagecolorallocate($im, 0, 0, 0);
@ -457,7 +478,7 @@ function send_captcha(){
imagegif($im); imagegif($im);
imagedestroy($im); imagedestroy($im);
echo base64_encode(ob_get_clean()).'">'; echo base64_encode(ob_get_clean()).'">';
echo '</td><td class="right">'.hidden('challenge', $randid).'<input type="text" name="captcha" size="15" autocomplete="off"></td></tr>'; echo '</td><td>'.hidden('challenge', $randid).'<input type="text" name="captcha" size="15" autocomplete="off"></td></tr>';
} }
function send_setup($C){ function send_setup($C){
@ -467,10 +488,10 @@ function send_setup($C){
if(!isSet($_REQUEST['session'])){ if(!isSet($_REQUEST['session'])){
echo hidden('session', $U['session']); echo hidden('session', $U['session']);
} }
echo '<table class="center-table">'; echo '<table id="guestaccess">';
thr(); thr();
$ga=(int) get_setting('guestaccess'); $ga=(int) get_setting('guestaccess');
echo "<tr><td><table class=\"left-table\"><tr><th>$I[guestacc]</th><td class=\"right\">"; echo "<tr><td><table><tr><th>$I[guestacc]</th><td>";
echo '<select name="guestaccess">'; echo '<select name="guestaccess">';
echo '<option value="1"'; echo '<option value="1"';
if($ga===1){ if($ga===1){
@ -500,8 +521,8 @@ function send_setup($C){
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
$englobal=(int) get_setting('englobalpass'); $englobal=(int) get_setting('englobalpass');
echo "<tr><td><table class=\"left-table\"><tr><th>$I[globalloginpass]</th><td>"; echo "<tr><td><table id=\"globalpass\"><tr><th>$I[globalloginpass]</th><td>";
echo '<table class="right-table">'; echo '<table>';
echo '<tr><td><select name="englobalpass">'; echo '<tr><td><select name="englobalpass">';
echo '<option value="0"'; echo '<option value="0"';
if($englobal===0){ if($englobal===0){
@ -523,7 +544,7 @@ function send_setup($C){
echo '</table></td></tr></table></td></tr>'; echo '</table></td></tr></table></td></tr>';
thr(); thr();
$ga=(int) get_setting('guestreg'); $ga=(int) get_setting('guestreg');
echo "<tr><td><table class=\"left-table\"><tr><th>$I[guestreg]</th><td class=\"right\">"; echo "<tr><td><table id=\"guestreg\"><tr><th>$I[guestreg]</th><td>";
echo '<select name="guestreg">'; echo '<select name="guestreg">';
echo '<option value="0"'; echo '<option value="0"';
if($ga===0){ if($ga===0){
@ -542,27 +563,27 @@ function send_setup($C){
echo ">$I[asmember]</option>"; echo ">$I[asmember]</option>";
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[sysmessages]</th><td>"; echo "<tr><td><table id=\"sysmessages\"><tr><th>$I[sysmessages]</th><td>";
echo '<table class="right right-table">'; echo '<table>';
foreach($C['msg_settings'] as $setting){ foreach($C['msg_settings'] as $setting){
echo "<tr><td>&nbsp;$I[$setting]</td><td>&nbsp;<input type=\"text\" name=\"$setting\" value=\"".get_setting($setting).'"></td></tr>'; echo "<tr><td>&nbsp;$I[$setting]</td><td>&nbsp;<input type=\"text\" name=\"$setting\" value=\"".get_setting($setting).'"></td></tr>';
} }
echo '</table></td></tr></table></td></tr>'; echo '</table></td></tr></table></td></tr>';
foreach($C['text_settings'] as $setting){ foreach($C['text_settings'] as $setting){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<input type=\"text\" name=\"$setting\" value=\"".htmlspecialchars(get_setting($setting)).'">'; echo "<input type=\"text\" name=\"$setting\" value=\"".htmlspecialchars(get_setting($setting)).'">';
echo '</td></tr></table></td></tr>'; echo '</td></tr></table></td></tr>';
} }
foreach($C['colour_settings'] as $setting){ foreach($C['colour_settings'] as $setting){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<input type=\"color\" name=\"$setting\" value=\"#".htmlspecialchars(get_setting($setting)).'">'; echo "<input type=\"color\" name=\"$setting\" value=\"#".htmlspecialchars(get_setting($setting)).'">';
echo '</td></tr></table></td></tr>'; echo '</td></tr></table></td></tr>';
} }
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[captcha]</th><td>"; echo "<tr><td><table id=\"captcha\"><tr><th>$I[captcha]</th><td>";
echo '<table class="right-table">'; echo '<table>';
if(!extension_loaded('gd')){ if(!extension_loaded('gd')){
echo "<tr><td>$I[gdextrequired]</td></tr>"; echo "<tr><td>$I[gdextrequired]</td></tr>";
}else{ }else{
@ -604,8 +625,8 @@ function send_setup($C){
} }
echo '</table></td></tr></table></td></tr>'; echo '</table></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[defaulttz]</th><td class=\"right\">"; echo "<tr><td><table id=\"defaulttz\"><tr><th>$I[defaulttz]</th><td>";
echo "<select name=\"defaulttz\" id=\"defaulttz\">"; echo "<select name=\"defaulttz\">";
$tzs=[-12=>'-12', -11=>'-11', -10=>'-10', -9=>'-9', -8=>'-8', -7=>'-7', -6=>'-6', -5=>'-5', -4=>'-4', -3=>'-3', -2=>'-2', -1=>'-1', 0=>'', 1=>'+1', 2=>'+2', 3=>'+3', 4=>'+4', 5=>'+5', 6=>'+6', 7=>'+7', 8=>'+8', 9=>'+9', 10=>'+10', 11=>'+11', 12=>'+12', 13=>'+13', 14=>'+14']; $tzs=[-12=>'-12', -11=>'-11', -10=>'-10', -9=>'-9', -8=>'-8', -7=>'-7', -6=>'-6', -5=>'-5', -4=>'-4', -3=>'-3', -2=>'-2', -1=>'-1', 0=>'', 1=>'+1', 2=>'+2', 3=>'+3', 4=>'+4', 5=>'+5', 6=>'+6', 7=>'+7', 8=>'+8', 9=>'+9', 10=>'+10', 11=>'+11', 12=>'+12', 13=>'+13', 14=>'+14'];
$defaulttz=get_setting('defaulttz'); $defaulttz=get_setting('defaulttz');
foreach($tzs as $tz=>$name){ foreach($tzs as $tz=>$name){
@ -616,19 +637,19 @@ function send_setup($C){
echo '</td></tr></table></td></tr>'; echo '</td></tr></table></td></tr>';
foreach($C['textarea_settings'] as $setting){ foreach($C['textarea_settings'] as $setting){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<textarea name=\"$setting\" rows=\"4\" cols=\"60\">".htmlspecialchars(get_setting($setting)).'</textarea>'; echo "<textarea name=\"$setting\" rows=\"4\" cols=\"60\">".htmlspecialchars(get_setting($setting)).'</textarea>';
echo '</td></tr></table></td></tr>'; echo '</td></tr></table></td></tr>';
} }
foreach($C['number_settings'] as $setting){ foreach($C['number_settings'] as $setting){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<input type=\"number\" name=\"$setting\" value=\"".htmlspecialchars(get_setting($setting)).'">'; echo "<input type=\"number\" name=\"$setting\" value=\"".htmlspecialchars(get_setting($setting)).'">';
echo '</td></tr></table></td></tr>'; echo '</td></tr></table></td></tr>';
} }
foreach($C['bool_settings'] as $setting){ foreach($C['bool_settings'] as $setting){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<select name=\"$setting\">"; echo "<select name=\"$setting\">";
$value=(bool) get_setting($setting); $value=(bool) get_setting($setting);
echo '<option value="0"'; echo '<option value="0"';
@ -647,7 +668,7 @@ function send_setup($C){
thr(); thr();
echo '<tr><td>'.submit($I['apply']).'</td></tr></table></form><br>'; echo '<tr><td>'.submit($I['apply']).'</td></tr></table></form><br>';
if($U['status']==8){ if($U['status']==8){
echo '<table class="center-table"><tr>'; echo '<table id="actions"><tr>';
echo "<td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'backup'); echo "<td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'backup');
if(!isSet($_REQUEST['session'])){ if(!isSet($_REQUEST['session'])){
echo hidden('session', $U['session']); echo hidden('session', $U['session']);
@ -668,7 +689,7 @@ function send_setup($C){
} }
function restore_backup($C){ function restore_backup($C){
global $db; global $db, $memcached;
if(!extension_loaded('json')){ if(!extension_loaded('json')){
return; return;
} }
@ -775,27 +796,27 @@ function send_backup($C){
$chknotes=''; $chknotes='';
} }
print_start('backup'); print_start('backup');
echo "<h2>$I[backuprestore]</h2><table class=\"center-table\">"; echo "<h2>$I[backuprestore]</h2><table>";
thr(); thr();
if(!extension_loaded('json')){ if(!extension_loaded('json')){
echo "<tr><td>$I[jsonextrequired]</td></tr>"; echo "<tr><td>$I[jsonextrequired]</td></tr>";
}else{ }else{
echo "<tr><td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'backup'); echo "<tr><td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'backup');
echo '<table class="left-table"><tr><td>'; echo '<table id="backup"><tr><td id="backupcheck">';
echo "<input type=\"checkbox\" name=\"settings\" id=\"backupsettings\" value=\"1\"$chksettings><label for=\"backupsettings\">$I[settings]</label>"; echo "<input type=\"checkbox\" name=\"settings\" id=\"backupsettings\" value=\"1\"$chksettings><label for=\"backupsettings\">$I[settings]</label>";
echo "<input type=\"checkbox\" name=\"filter\" id=\"backupfilter\" value=\"1\"$chkfilters><label for=\"backupfilter\">$I[filter]</label>"; echo "<input type=\"checkbox\" name=\"filter\" id=\"backupfilter\" value=\"1\"$chkfilters><label for=\"backupfilter\">$I[filter]</label>";
echo "<input type=\"checkbox\" name=\"members\" id=\"backupmembers\" value=\"1\"$chkmembers><label for=\"backupmembers\">$I[members]</label>"; echo "<input type=\"checkbox\" name=\"members\" id=\"backupmembers\" value=\"1\"$chkmembers><label for=\"backupmembers\">$I[members]</label>";
echo "<input type=\"checkbox\" name=\"notes\" id=\"backupnotes\" value=\"1\"$chknotes><label for=\"backupnotes\">$I[notes]</label>"; echo "<input type=\"checkbox\" name=\"notes\" id=\"backupnotes\" value=\"1\"$chknotes><label for=\"backupnotes\">$I[notes]</label>";
echo '</td><td class="right">'.submit($I['backup']).'</td></tr></table></form></td></tr>'; echo '</td><td id="backupsubmit">'.submit($I['backup']).'</td></tr></table></form></td></tr>';
thr(); thr();
echo "<tr><td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'restore'); echo "<tr><td><$H[form]>$H[commonform]".hidden('action', 'setup').hidden('do', 'restore');
echo '<table>'; echo '<table id="restore">';
echo "<tr><td colspan=\"2\"><textarea name=\"restore\" rows=\"4\" cols=\"60\">".htmlspecialchars(json_encode($code)).'</textarea></td></tr>'; echo "<tr><td colspan=\"2\"><textarea name=\"restore\" rows=\"4\" cols=\"60\">".htmlspecialchars(json_encode($code)).'</textarea></td></tr>';
echo "<tr><td class=\"left\"><input type=\"checkbox\" name=\"settings\" id=\"restoresettings\" value=\"1\"$chksettings><label for=\"restoresettings\">$I[settings]</label>"; echo "<tr><td id=\"restorecheck\"><input type=\"checkbox\" name=\"settings\" id=\"restoresettings\" value=\"1\"$chksettings><label for=\"restoresettings\">$I[settings]</label>";
echo "<input type=\"checkbox\" name=\"filter\" id=\"restorefilter\" value=\"1\"$chkfilters><label for=\"restorefilter\">$I[filter]</label>"; echo "<input type=\"checkbox\" name=\"filter\" id=\"restorefilter\" value=\"1\"$chkfilters><label for=\"restorefilter\">$I[filter]</label>";
echo "<input type=\"checkbox\" name=\"members\" id=\"restoremembers\" value=\"1\"$chkmembers><label for=\"restoremembers\">$I[members]</label>"; echo "<input type=\"checkbox\" name=\"members\" id=\"restoremembers\" value=\"1\"$chkmembers><label for=\"restoremembers\">$I[members]</label>";
echo "<input type=\"checkbox\" name=\"notes\" id=\"restorenotes\" value=\"1\"$chknotes><label for=\"restorenotes\">$I[notes]</label>"; echo "<input type=\"checkbox\" name=\"notes\" id=\"restorenotes\" value=\"1\"$chknotes><label for=\"restorenotes\">$I[notes]</label>";
echo '</td><td class="right">'.submit($I['restore']).'</td></tr></table>'; echo '</td><td id="restoresubmit">'.submit($I['restore']).'</td></tr></table>';
echo '</form></td></tr>'; echo '</form></td></tr>';
} }
thr(); thr();
@ -807,7 +828,7 @@ function send_backup($C){
function send_destroy_chat(){ function send_destroy_chat(){
global $H, $I; global $H, $I;
print_start('destroy_chat'); print_start('destroy_chat');
echo "<table class=\"center-table\"><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>"; echo "<table><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>";
echo "<$H[form] target=\"_parent\">$H[commonform]".hidden('action', 'setup').hidden('do', 'destroy').hidden('confirm', 'yes').submit($I['yes'], 'class="delbutton"').'</form></td><td>'; echo "<$H[form] target=\"_parent\">$H[commonform]".hidden('action', 'setup').hidden('do', 'destroy').hidden('confirm', 'yes').submit($I['yes'], 'class="delbutton"').'</form></td><td>';
echo "<$H[form]>$H[commonform]".hidden('action', 'setup').submit($I['no'], 'class="backbutton"').'</form></td><tr></table>'; echo "<$H[form]>$H[commonform]".hidden('action', 'setup').submit($I['no'], 'class="backbutton"').'</form></td><tr></table>';
print_end(); print_end();
@ -816,7 +837,7 @@ function send_destroy_chat(){
function send_delete_account(){ function send_delete_account(){
global $H, $I; global $H, $I;
print_start('delete_account'); print_start('delete_account');
echo "<table class=\"center-table\"><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>"; echo "<table><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>";
echo "<$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'delete').hidden('confirm', 'yes').submit($I['yes'], 'class="delbutton"').'</form></td><td>'; echo "<$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'delete').hidden('confirm', 'yes').submit($I['yes'], 'class="delbutton"').'</form></td><td>';
echo "<$H[form]>$H[commonform]".hidden('action', 'profile').submit($I['no'], 'class="backbutton"').'</form></td><tr></table>'; echo "<$H[form]>$H[commonform]".hidden('action', 'profile').submit($I['no'], 'class="backbutton"').'</form></td><tr></table>';
print_end(); print_end();
@ -826,12 +847,12 @@ function send_init(){
global $H, $I, $L; global $H, $I, $L;
print_start('init'); print_start('init');
echo "<h2>$I[init]</h2>"; echo "<h2>$I[init]</h2>";
echo "<$H[form]>$H[commonform]".hidden('action', 'init')."<table class=\"center-table\"><tr><td><h3>$I[sulogin]</h3><table class=\"left\">"; echo "<$H[form]>$H[commonform]".hidden('action', 'init')."<table><tr><td><h3>$I[sulogin]</h3><table>";
echo "<tr><td>$I[sunick]</td><td><input type=\"text\" name=\"sunick\" size=\"15\"></td></tr>"; echo "<tr><td>$I[sunick]</td><td><input type=\"text\" name=\"sunick\" size=\"15\"></td></tr>";
echo "<tr><td>$I[supass]</td><td><input type=\"password\" name=\"supass\" size=\"15\"></td></tr>"; echo "<tr><td>$I[supass]</td><td><input type=\"password\" name=\"supass\" size=\"15\"></td></tr>";
echo "<tr><td>$I[suconfirm]</td><td><input type=\"password\" name=\"supassc\" size=\"15\"></td></tr>"; echo "<tr><td>$I[suconfirm]</td><td><input type=\"password\" name=\"supassc\" size=\"15\"></td></tr>";
echo '</table></td></tr><tr><td><br>'.submit($I['initbtn']).'</td></tr></table></form>'; echo '</table></td></tr><tr><td><br>'.submit($I['initbtn']).'</td></tr></table></form>';
echo "<p>$I[changelang]"; echo "<p id=\"changelang\">$I[changelang]";
foreach($L as $lang=>$name){ foreach($L as $lang=>$name){
echo " <a href=\"$_SERVER[SCRIPT_NAME]?action=setup&amp;lang=$lang\">$name</a>"; echo " <a href=\"$_SERVER[SCRIPT_NAME]?action=setup&amp;lang=$lang\">$name</a>";
} }
@ -849,12 +870,12 @@ function send_update(){
function send_alogin(){ function send_alogin(){
global $H, $I, $L; global $H, $I, $L;
print_start('alogin'); print_start('alogin');
echo "<$H[form]>$H[commonform]".hidden('action', 'setup').'<table class="center-table left">'; echo "<$H[form]>$H[commonform]".hidden('action', 'setup').'<table>';
echo "<tr><td>$I[nick]</td><td><input type=\"text\" name=\"nick\" size=\"15\" autofocus></td></tr>"; echo "<tr><td>$I[nick]</td><td><input type=\"text\" name=\"nick\" size=\"15\" autofocus></td></tr>";
echo "<tr><td>$I[pass]</td><td><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>"; echo "<tr><td>$I[pass]</td><td><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>";
send_captcha(); send_captcha();
echo '<tr><td colspan="2" class="right">'.submit($I['login']).'</td></tr></table></form>'; echo '<tr><td colspan="2">'.submit($I['login']).'</td></tr></table></form>';
echo "<p>$I[changelang]"; echo "<p id=\"changelang\">$I[changelang]";
foreach($L as $lang=>$name){ foreach($L as $lang=>$name){
echo " <a href=\"$_SERVER[SCRIPT_NAME]?action=setup&amp;lang=$lang\">$name</a>"; echo " <a href=\"$_SERVER[SCRIPT_NAME]?action=setup&amp;lang=$lang\">$name</a>";
} }
@ -879,15 +900,15 @@ function send_admin($arg=''){
} }
} }
$chlist.='</select>'; $chlist.='</select>';
echo "<h2>$I[admfunc]</h2><i>$arg</i><table class=\"center-table\">"; echo "<h2>$I[admfunc]</h2><i>$arg</i><table>";
if($U['status']>=7){ if($U['status']>=7){
thr(); thr();
echo "<tr><td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'setup').submit($I['initgosetup']).'</form></td></tr>'; echo "<tr><td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'setup').submit($I['initgosetup']).'</form></td></tr>';
} }
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[cleanmsgs]</th><td>"; echo "<tr><td><table id=\"clean\"><tr><th>$I[cleanmsgs]</th><td>";
frmadm('clean'); frmadm('clean');
echo '<table class="left right-table"><tr><td><input type="radio" name="what" id="room" value="room">'; echo '<table><tr><td><input type="radio" name="what" id="room" value="room">';
echo "<label for=\"room\">$I[room]</label></td><td>&nbsp;</td><td><input type=\"radio\" name=\"what\" id=\"choose\" value=\"choose\" checked>"; echo "<label for=\"room\">$I[room]</label></td><td>&nbsp;</td><td><input type=\"radio\" name=\"what\" id=\"choose\" value=\"choose\" checked>";
echo "<label for=\"choose\">$I[selection]</label></td><td>&nbsp;</td></tr><tr><td colspan=\"3\"><input type=\"radio\" name=\"what\" id=\"nick\" value=\"nick\">"; echo "<label for=\"choose\">$I[selection]</label></td><td>&nbsp;</td></tr><tr><td colspan=\"3\"><input type=\"radio\" name=\"what\" id=\"nick\" value=\"nick\">";
echo "<label for=\"nick\">$I[cleannick] </label><select name=\"nickname\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<label for=\"nick\">$I[cleannick] </label><select name=\"nickname\" size=\"1\"><option value=\"\">$I[choose]</option>";
@ -899,32 +920,32 @@ function send_admin($arg=''){
echo '</select></td><td>'; echo '</select></td><td>';
echo submit($I['clean'], 'class="delbutton"').'</td></tr></table></form></td></tr></table></td></tr>'; echo submit($I['clean'], 'class="delbutton"').'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo '<tr><td><table class="left-table"><tr><td>'.sprintf($I['kickchat'], get_setting('kickpenalty')).'</td></tr><tr><td>'; echo '<tr><td><table id="kick"><tr><th>'.sprintf($I['kickchat'], get_setting('kickpenalty')).'</th></tr><tr><td>';
frmadm('kick'); frmadm('kick');
echo "<table class=\"right-table\"><tr><td>$I[kickreason]</td><td class=\"right\"><input type=\"text\" name=\"kickmessage\" size=\"30\"></td><td>&nbsp;</td></tr>"; echo "<table><tr><td>$I[kickreason]</td><td><input type=\"text\" name=\"kickmessage\" size=\"30\"></td><td>&nbsp;</td></tr>";
echo "<tr><td><input type=\"checkbox\" name=\"what\" value=\"purge\" id=\"purge\"><label for=\"purge\">&nbsp;$I[kickpurge]</label></td><td class=\"right\">$chlist</td><td class=\"right\">"; echo "<tr><td><input type=\"checkbox\" name=\"what\" value=\"purge\" id=\"purge\"><label for=\"purge\">&nbsp;$I[kickpurge]</label></td><td>$chlist</td><td>";
echo submit($I['kick']).'</td></tr></table></form></td></tr></table></td></tr>'; echo submit($I['kick']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[logoutinact]</th><td>"; echo "<tr><td><table id=\"logout\"><tr><th>$I[logoutinact]</th><td>";
frmadm('logout'); frmadm('logout');
echo "<table class=\"right-table\"><tr class=\"right\"><td>$chlist</td><td>"; echo "<table><tr><td>$chlist</td><td>";
echo submit($I['logout']).'</td></tr></table></form></td></tr></table></td></tr>'; echo submit($I['logout']).'</td></tr></table></form></td></tr></table></td></tr>';
$views=array('sessions', 'filter', 'linkfilter'); $views=array('sessions', 'filter', 'linkfilter');
foreach($views as $view){ foreach($views as $view){
thr(); thr();
echo '<tr><td><table class="left-table"><tr><th>'.$I[$view].'</th><td class="right">'; echo "<tr><td><table id=\"$view\"><tr><th>".$I[$view].'</th><td>';
frmadm($view); frmadm($view);
echo submit($I['view']).'</form></td></tr></table></td></tr>'; echo submit($I['view']).'</form></td></tr></table></td></tr>';
} }
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[topic]</th><td>"; echo "<tr><td><table id=\"topic\"><tr><th>$I[topic]</th><td>";
frmadm('topic'); frmadm('topic');
echo '<table class="right-table"><tr><td><input type="text" name="topic" size="20" value="'.get_setting('topic').'"></td><td>'; echo '<table><tr><td><input type="text" name="topic" size="20" value="'.get_setting('topic').'"></td><td>';
echo submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>'; echo submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[guestacc]</th><td>"; echo "<tr><td><table id=\"guestaccess\"><tr><th>$I[guestacc]</th><td>";
frmadm('guestaccess'); frmadm('guestaccess');
echo '<table class="right-table">'; echo '<table>';
echo '<tr><td><select name="guestaccess">'; echo '<tr><td><select name="guestaccess">';
echo '<option value="1"'; echo '<option value="1"';
if($ga===1){ if($ga===1){
@ -953,9 +974,9 @@ function send_admin($arg=''){
echo '</select></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>'; echo '</select></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
if(get_setting('suguests')){ if(get_setting('suguests')){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[addsuguest]</th><td>"; echo "<tr><td><table id=\"suguests\"><tr><th>$I[addsuguest]</th><td>";
frmadm('superguest'); frmadm('superguest');
echo "<table class=\"right-table\"><tr><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<table><tr><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>";
foreach($users as $user){ foreach($users as $user){
if($user[2]==1){ if($user[2]==1){
echo "<option value=\"$user[0]\" style=\"$user[1]\">$user[0]</option>"; echo "<option value=\"$user[0]\" style=\"$user[1]\">$user[0]</option>";
@ -965,9 +986,9 @@ function send_admin($arg=''){
thr(); thr();
} }
if($U['status']>=7){ if($U['status']>=7){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[admmembers]</th><td>"; echo "<tr><td><table id=\"status\"><tr><th>$I[admmembers]</th><td>";
frmadm('status'); frmadm('status');
echo "<table class=\"right-table\"><td class=\"right\"><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<table><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>";
$members=[]; $members=[];
$result=$db->query('SELECT nickname, style, status FROM ' . PREFIX . 'members ORDER BY LOWER(nickname);'); $result=$db->query('SELECT nickname, style, status FROM ' . PREFIX . 'members ORDER BY LOWER(nickname);');
while($temp=$result->fetch(PDO::FETCH_NUM)){ while($temp=$result->fetch(PDO::FETCH_NUM)){
@ -1002,17 +1023,17 @@ function send_admin($arg=''){
} }
echo '</select></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>'; echo '</select></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[passreset]</th><td>"; echo "<tr><td><table id=\"passreset\"><tr><th>$I[passreset]</th><td>";
frmadm('passreset'); frmadm('passreset');
echo "<table class=\"right-table\"><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<table><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>";
foreach($members as $member){ foreach($members as $member){
echo "<option value=\"$member[0]\" style=\"$member[1]\">$member[0]</option>"; echo "<option value=\"$member[0]\" style=\"$member[1]\">$member[0]</option>";
} }
echo '</select></td><td><input type="password" name="pass"></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>'; echo '</select></td><td><input type="password" name="pass"></td><td>'.submit($I['change']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[regguest]</th><td>"; echo "<tr><td><table id=\"register\"><tr><th>$I[regguest]</th><td>";
frmadm('register'); frmadm('register');
echo "<table class=\"right-table\"><tr><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<table><tr><td><select name=\"name\" size=\"1\"><option value=\"\">$I[choose]</option>";
foreach($users as $user){ foreach($users as $user){
if($user[2]==1){ if($user[2]==1){
echo "<option value=\"$user[0]\" style=\"$user[1]\">$user[0]</option>"; echo "<option value=\"$user[0]\" style=\"$user[1]\">$user[0]</option>";
@ -1020,9 +1041,9 @@ function send_admin($arg=''){
} }
echo '</select></td><td>'.submit($I['register']).'</td></tr></table></form></td></tr></table></td></tr>'; echo '</select></td><td>'.submit($I['register']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[regmem]</th></tr><tr><td>"; echo "<tr><td><table id=\"regnew\"><tr><th>$I[regmem]</th></tr><tr><td>";
frmadm('regnew'); frmadm('regnew');
echo "<table class=\"right-table\"><tr><td>$I[nick]</td><td>&nbsp;</td><td><input type=\"text\" name=\"name\" size=\"20\"></td><td>&nbsp;</td></tr>"; echo "<table><tr><td>$I[nick]</td><td>&nbsp;</td><td><input type=\"text\" name=\"name\" size=\"20\"></td><td>&nbsp;</td></tr>";
echo "<tr><td>$I[pass]</td><td>&nbsp;</td><td><input type=\"password\" name=\"pass\" size=\"20\"></td><td>"; echo "<tr><td>$I[pass]</td><td>&nbsp;</td><td><input type=\"password\" name=\"pass\" size=\"20\"></td><td>";
echo submit($I['register']).'</td></tr></table></form></td></tr></table></td></tr>'; echo submit($I['register']).'</td></tr></table></form></td></tr></table></td></tr>';
thr(); thr();
@ -1040,13 +1061,13 @@ function send_sessions(){
$lines=[]; $lines=[];
} }
print_start('sessions'); print_start('sessions');
echo "<h1>$I[sessact]</h1><table class=\"center-table\">"; echo "<h1>$I[sessact]</h1><table>";
echo "<tr><th class=\"padded\">$I[sessnick]</th><th class=\"padded\">$I[sesstimeout]</th><th class=\"padded\">$I[sessua]</th>"; echo "<tr><th>$I[sessnick]</th><th>$I[sesstimeout]</th><th>$I[sessua]</th>";
$trackip=(bool) get_setting('trackip'); $trackip=(bool) get_setting('trackip');
$memexpire=(int) get_setting('memberexpire'); $memexpire=(int) get_setting('memberexpire');
$guestexpire=(int) get_setting('guestexpire'); $guestexpire=(int) get_setting('guestexpire');
if($trackip) echo "<th class=\"padded\">$I[sesip]</th>"; if($trackip) echo "<th>$I[sesip]</th>";
echo "<th class=\"padded\">$I[actions]</th></tr>"; echo "<th>$I[actions]</th></tr>";
foreach($lines as $temp){ foreach($lines as $temp){
if($temp['status']==0){ if($temp['status']==0){
$s=' (K)'; $s=' (K)';
@ -1063,7 +1084,7 @@ function send_sessions(){
}else{ }else{
$s=' (SA)'; $s=' (SA)';
} }
echo '<tr class="left"><td class="padded">'.style_this(htmlspecialchars($temp['nickname']).$s, $temp['style']).'</td><td class="padded">'; echo '<tr><td class="nickname">'.style_this(htmlspecialchars($temp['nickname']).$s, $temp['style']).'</td><td class="timeout">';
if($temp['status']>2){ if($temp['status']>2){
get_timeout($temp['lastpost'], $memexpire); get_timeout($temp['lastpost'], $memexpire);
}else{ }else{
@ -1071,11 +1092,11 @@ function send_sessions(){
} }
echo '</td>'; echo '</td>';
if($U['status']>$temp['status'] || $U['nickname']===$temp['nickname']){ if($U['status']>$temp['status'] || $U['nickname']===$temp['nickname']){
echo "<td class=\"padded\">$temp[useragent]</td>"; echo "<td class=\"ua\">$temp[useragent]</td>";
if($trackip){ if($trackip){
echo "<td class=\"padded\">$temp[ip]</td>"; echo "<td class=\"ip\">$temp[ip]</td>";
} }
echo '<td class="padded">'; echo '<td class="action">';
if($temp['nickname']!==$U['nickname']){ if($temp['nickname']!==$U['nickname']){
echo '<table><tr>'; echo '<table><tr>';
if($temp['status']!=0){ if($temp['status']!=0){
@ -1093,11 +1114,11 @@ function send_sessions(){
} }
echo '</td></tr>'; echo '</td></tr>';
}else{ }else{
echo '<td class="padded">-</td>'; echo '<td class="ua">-</td>';
if($trackip){ if($trackip){
echo '<td class="padded">-</td>'; echo '<td class="ip">-</td>';
} }
echo '<td class="padded">-</td></tr>'; echo '<td class="action">-</td></tr>';
} }
} }
echo "</table><br>"; echo "</table><br>";
@ -1126,6 +1147,7 @@ function check_filter_match(&$reg){
function manage_filter(){ function manage_filter(){
global $db, $memcached; global $db, $memcached;
if(isSet($_REQUEST['id'])){ if(isSet($_REQUEST['id'])){
$reg=0;
if($tmp=check_filter_match($reg)){ if($tmp=check_filter_match($reg)){
return $tmp; return $tmp;
} }
@ -1165,6 +1187,7 @@ function manage_filter(){
function manage_linkfilter(){ function manage_linkfilter(){
global $db, $memcached; global $db, $memcached;
if(isSet($_REQUEST['id'])){ if(isSet($_REQUEST['id'])){
$reg=0;
if($tmp=check_filter_match($reg)){ if($tmp=check_filter_match($reg)){
return $tmp; return $tmp;
} }
@ -1225,7 +1248,7 @@ function get_linkfilters(){
function send_filter($arg=''){ function send_filter($arg=''){
global $H, $I, $U; global $H, $I, $U;
print_start('filter'); print_start('filter');
echo "<h2>$I[filter]</h2><i>$arg</i><table class=\"center-table\">"; echo "<h2>$I[filter]</h2><i>$arg</i><table>";
thr(); thr();
echo '<tr><th><table style="width:100%;"><tr>'; echo '<tr><th><table style="width:100%;"><tr>';
echo "<td style=\"width:8em;\">$I[fid]</td>"; echo "<td style=\"width:8em;\">$I[fid]</td>";
@ -1270,7 +1293,7 @@ function send_filter($arg=''){
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex-$filter[id]\" value=\"1\"$checked><label for=\"regex-$filter[id]\">$I[regex]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex-$filter[id]\" value=\"1\"$checked><label for=\"regex-$filter[id]\">$I[regex]</label></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"kick\" id=\"kick-$filter[id]\" value=\"1\"$checkedk><label for=\"kick-$filter[id]\">$I[kick]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"kick\" id=\"kick-$filter[id]\" value=\"1\"$checkedk><label for=\"kick-$filter[id]\">$I[kick]</label></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"cs\" id=\"cs-$filter[id]\" value=\"1\"$checkedcs><label for=\"cs-$filter[id]\">$I[cs]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"cs\" id=\"cs-$filter[id]\" value=\"1\"$checkedcs><label for=\"cs-$filter[id]\">$I[cs]</label></td>";
echo '<td class="right" style="width:5em;">'.submit($I['change']).'</td></tr></table></form></td></tr>'; echo '<td class="filtersubmit" style="width:5em;">'.submit($I['change']).'</td></tr></table></form></td></tr>';
} }
echo '<tr><td>'; echo '<tr><td>';
frmadm('filter'); frmadm('filter');
@ -1282,7 +1305,7 @@ function send_filter($arg=''){
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex\" value=\"1\"><label for=\"regex\">$I[regex]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex\" value=\"1\"><label for=\"regex\">$I[regex]</label></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"1\"><label for=\"kick\">$I[kick]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"1\"><label for=\"kick\">$I[kick]</label></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"cs\" id=\"cs\" value=\"1\"><label for=\"cs\">$I[cs]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"cs\" id=\"cs\" value=\"1\"><label for=\"cs\">$I[cs]</label></td>";
echo '<td class="right" style="width:5em;">'.submit($I['add']).'</td></tr></table></form></td></tr>'; echo '<td class="filtersubmit" style="width:5em;">'.submit($I['add']).'</td></tr></table></form></td></tr>';
echo "</table><br>"; echo "</table><br>";
echo "<$H[form]>$H[commonform]".hidden('action', 'admin').hidden('do', 'filter').submit($I['reload']).'</form>'; echo "<$H[form]>$H[commonform]".hidden('action', 'admin').hidden('do', 'filter').submit($I['reload']).'</form>';
print_end(); print_end();
@ -1291,10 +1314,10 @@ function send_filter($arg=''){
function send_linkfilter($arg=''){ function send_linkfilter($arg=''){
global $H, $I, $U; global $H, $I, $U;
print_start('linkfilter'); print_start('linkfilter');
echo "<h2>$I[linkfilter]</h2><i>$arg</i><table class=\"center-table\">"; echo "<h2>$I[linkfilter]</h2><i>$arg</i><table>";
thr(); thr();
echo '<tr><th><table style="width:100%;">'; echo '<tr><th><table style="width:100%;"><tr>';
echo "<tr><td style=\"width:8em;\">$I[fid]</td>"; echo "<td style=\"width:8em;\">$I[fid]</td>";
echo "<td style=\"width:12em;\">$I[match]</td>"; echo "<td style=\"width:12em;\">$I[match]</td>";
echo "<td style=\"width:12em;\">$I[replace]</td>"; echo "<td style=\"width:12em;\">$I[replace]</td>";
echo "<td style=\"width:5em;\">$I[regex]</td>"; echo "<td style=\"width:5em;\">$I[regex]</td>";
@ -1315,7 +1338,7 @@ function send_linkfilter($arg=''){
echo "<td style=\"width:12em;\"><input type=\"text\" name=\"match\" value=\"$filter[match]\" size=\"20\" style=\"$U[style]\"></td>"; echo "<td style=\"width:12em;\"><input type=\"text\" name=\"match\" value=\"$filter[match]\" size=\"20\" style=\"$U[style]\"></td>";
echo '<td style="width:12em;"><input type="text" name="replace" value="'.htmlspecialchars($filter['replace'])."\" size=\"20\" style=\"$U[style]\"></td>"; echo '<td style="width:12em;"><input type="text" name="replace" value="'.htmlspecialchars($filter['replace'])."\" size=\"20\" style=\"$U[style]\"></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex-$filter[id]\" value=\"1\"$checked><label for=\"regex-$filter[id]\">$I[regex]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex-$filter[id]\" value=\"1\"$checked><label for=\"regex-$filter[id]\">$I[regex]</label></td>";
echo '<td class="right" style="width:5em;">'.submit($I['change']).'</td></tr></table></form></td></tr>'; echo '<td class="filtersubmit" style="width:5em;">'.submit($I['change']).'</td></tr></table></form></td></tr>';
} }
echo '<tr><td>'; echo '<tr><td>';
frmadm('linkfilter'); frmadm('linkfilter');
@ -1324,7 +1347,7 @@ function send_linkfilter($arg=''){
echo "<td style=\"width:12em;\"><input type=\"text\" name=\"match\" value=\"\" size=\"20\" style=\"$U[style]\"></td>"; echo "<td style=\"width:12em;\"><input type=\"text\" name=\"match\" value=\"\" size=\"20\" style=\"$U[style]\"></td>";
echo "<td style=\"width:12em;\"><input type=\"text\" name=\"replace\" value=\"\" size=\"20\" style=\"$U[style]\"></td>"; echo "<td style=\"width:12em;\"><input type=\"text\" name=\"replace\" value=\"\" size=\"20\" style=\"$U[style]\"></td>";
echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex\" value=\"1\"><label for=\"regex\">$I[regex]</label></td>"; echo "<td style=\"width:5em;\"><input type=\"checkbox\" name=\"regex\" id=\"regex\" value=\"1\"><label for=\"regex\">$I[regex]</label></td>";
echo '<td class="right" style="width:5em;">'.submit($I['add']).'</td></tr></table></form></td></tr>'; echo '<td class="filtersubmit" style="width:5em;">'.submit($I['add']).'</td></tr></table></form></td></tr>';
echo "</table><br>"; echo "</table><br>";
echo "<$H[form]>$H[commonform]".hidden('action', 'admin').hidden('do', 'linkfilter').submit($I['reload']).'</form>'; echo "<$H[form]>$H[commonform]".hidden('action', 'admin').hidden('do', 'linkfilter').submit($I['reload']).'</form>';
print_end(); print_end();
@ -1391,9 +1414,8 @@ function send_messages(){
$sort=''; $sort='';
} }
print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language$nocache$sort"); print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language$nocache$sort");
echo '<div class="left">';
echo '<a id="top"></a>'; echo '<a id="top"></a>';
echo "<a style=\"position:fixed;top:0.5em;right:0.5em\" href=\"#bottom\">$I[bottom]</a>"; echo "<a id=\"bottom_link\" href=\"#bottom\">$I[bottom]</a>";
if(!$U['sortupdown']){ if(!$U['sortupdown']){
echo '<div id="topic">'; echo '<div id="topic">';
echo get_setting('topic'); echo get_setting('topic');
@ -1409,15 +1431,13 @@ function send_messages(){
echo get_setting('topic'); echo get_setting('topic');
echo '</div>'; echo '</div>';
} }
echo "<a id=\"bottom\"></a><a style=\"position:fixed;bottom:0.5em;right:0.5em\" href=\"#top\">$I[top]</a>"; echo "<a id=\"bottom\"></a><a id=\"top_link\" href=\"#top\">$I[top]</a>";
echo '</div>';
print_end(); print_end();
} }
function send_inbox(){ function send_inbox(){
global $H, $I, $U, $db; global $H, $I, $U, $db;
print_start('messages'); print_start('inbox');
echo '<div class="left">';
echo "<$H[form]>$H[commonform]".hidden('action', 'inbox').hidden('do', 'clean').submit($I['delselmes'], 'class="delbutton"').'<br><br>'; echo "<$H[form]>$H[commonform]".hidden('action', 'inbox').hidden('do', 'clean').submit($I['delselmes'], 'class="delbutton"').'<br><br>';
$dateformat=get_setting('dateformat'); $dateformat=get_setting('dateformat');
$tz=3600*$U['tz']; $tz=3600*$U['tz'];
@ -1452,7 +1472,6 @@ function send_inbox(){
echo " $message[text]</label></div>"; echo " $message[text]</label></div>";
} }
echo "</form><br>$H[backtochat]"; echo "</form><br>$H[backtochat]";
echo '</div>';
print_end(); print_end();
} }
@ -1460,7 +1479,7 @@ function send_notes($type){
global $H, $I, $U, $db; global $H, $I, $U, $db;
print_start('notes'); print_start('notes');
if($U['status']>=6){ if($U['status']>=6){
echo "<table class=\"center-table\"><tr><td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'notes').hidden('do', 'admin').submit($I['admnotes']).'</form></td>'; echo "<table><tr><td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'notes').hidden('do', 'admin').submit($I['admnotes']).'</form></td>';
echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'notes').submit($I['notes']).'</form></td></tr></table>'; echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'notes').submit($I['notes']).'</form></td></tr></table>';
} }
if($type==='staff'){ if($type==='staff'){
@ -1516,7 +1535,7 @@ function send_notes($type){
echo hidden('action', 'notes')."<textarea name=\"text\" rows=\"$U[notesboxheight]\" cols=\"$U[notesboxwidth]\">".htmlspecialchars($note['text']).'</textarea><br>'; echo hidden('action', 'notes')."<textarea name=\"text\" rows=\"$U[notesboxheight]\" cols=\"$U[notesboxwidth]\">".htmlspecialchars($note['text']).'</textarea><br>';
echo submit($I['savenotes']).'</form><br>'; echo submit($I['savenotes']).'</form><br>';
if($num[0]>1){ if($num[0]>1){
echo "<br><table class=\"center-table\"><tr><td>$I[revisions]</td>"; echo "<br><table><tr><td>$I[revisions]</td>";
if($revision<$num[0]-1){ if($revision<$num[0]-1){
echo "<td><$H[form]>$H[commonform]".hidden('action', 'notes').hidden('revision', $revision+1); echo "<td><$H[form]>$H[commonform]".hidden('action', 'notes').hidden('revision', $revision+1);
if($type==='admin'){ if($type==='admin'){
@ -1543,19 +1562,19 @@ function send_approve_waiting(){
$result=$db->query('SELECT * FROM ' . PREFIX . 'sessions WHERE entry=0 AND status=1 ORDER BY id;'); $result=$db->query('SELECT * FROM ' . PREFIX . 'sessions WHERE entry=0 AND status=1 ORDER BY id;');
if($tmp=$result->fetchAll(PDO::FETCH_ASSOC)){ if($tmp=$result->fetchAll(PDO::FETCH_ASSOC)){
frmadm('approve'); frmadm('approve');
echo '<table class="center-table left">'; echo '<table>';
echo "<tr><th class=\"padded\">$I[sessnick]</th><th class=\"padded\">$I[sessua]</th></tr>"; echo "<tr><th>$I[sessnick]</th><th>$I[sessua]</th></tr>";
foreach($tmp as $temp){ foreach($tmp as $temp){
echo '<tr>'.hidden('alls[]', htmlspecialchars($temp['nickname'])); echo '<tr>'.hidden('alls[]', htmlspecialchars($temp['nickname']));
echo '<td class="padded"><input type="checkbox" name="csid[]" id="'.htmlspecialchars($temp[nickname]).'" value="'.htmlspecialchars($temp['nickname']).'">'; echo '<td><input type="checkbox" name="csid[]" id="'.htmlspecialchars($temp[nickname]).'" value="'.htmlspecialchars($temp['nickname']).'">';
echo '<label for="'.htmlspecialchars($temp['nickname']).'">'.style_this(htmlspecialchars($temp['nickname']), $temp['style']).'</label></td>'; echo '<label for="'.htmlspecialchars($temp['nickname']).'">'.style_this(htmlspecialchars($temp['nickname']), $temp['style']).'</label></td>';
echo "<td class=\"padded\">$temp[useragent]</td></tr>"; echo "<td>$temp[useragent]</td></tr>";
} }
echo "</table><br><table class=\"center-table left\"><tr><td><input type=\"radio\" name=\"what\" value=\"allowchecked\" id=\"allowchecked\" checked><label for=\"allowchecked\">$I[allowchecked]</label></td>"; echo "</table><br><table id=\"action\"><tr><td><input type=\"radio\" name=\"what\" value=\"allowchecked\" id=\"allowchecked\" checked><label for=\"allowchecked\">$I[allowchecked]</label></td>";
echo "<td><input type=\"radio\" name=\"what\" value=\"allowall\" id=\"allowall\"><label for=\"allowall\">$I[allowall]</label></td>"; echo "<td><input type=\"radio\" name=\"what\" value=\"allowall\" id=\"allowall\"><label for=\"allowall\">$I[allowall]</label></td>";
echo "<td><input type=\"radio\" name=\"what\" value=\"denychecked\" id=\"denychecked\"><label for=\"denychecked\">$I[denychecked]</label></td>"; echo "<td><input type=\"radio\" name=\"what\" value=\"denychecked\" id=\"denychecked\"><label for=\"denychecked\">$I[denychecked]</label></td>";
echo "<td><input type=\"radio\" name=\"what\" value=\"denyall\" id=\"denyall\"><label for=\"denyall\">$I[denyall]</label></td></tr><tr><td colspan=\"8\" class=\"center\">$I[denymessage] <input type=\"text\" name=\"kickmessage\" size=\"45\"></td>"; echo "<td><input type=\"radio\" name=\"what\" value=\"denyall\" id=\"denyall\"><label for=\"denyall\">$I[denyall]</label></td></tr><tr><td colspan=\"8\">$I[denymessage] <input type=\"text\" name=\"kickmessage\" size=\"45\"></td>";
echo '</tr><tr><td colspan="8" class="center">'.submit($I['butallowdeny']).'</td></tr></table></form>'; echo '</tr><tr><td colspan="8">'.submit($I['butallowdeny']).'</td></tr></table></form>';
}else{ }else{
echo "$I[waitempty]<br>"; echo "$I[waitempty]<br>";
} }
@ -1605,7 +1624,7 @@ function send_waiting_room(){
echo hidden('action', 'logout').submit($I['exit'], 'id="exitbutton"').'</form>'; echo hidden('action', 'logout').submit($I['exit'], 'id="exitbutton"').'</form>';
$rulestxt=get_setting('rulestxt'); $rulestxt=get_setting('rulestxt');
if(!empty($rulestxt)){ if(!empty($rulestxt)){
echo "<h2>$I[rules]</h2><b>$rulestxt</b>"; echo "<div id=\"rules\"><h2>$I[rules]</h2><b>$rulestxt</b></div>";
} }
print_end(); print_end();
} }
@ -1614,19 +1633,17 @@ function send_waiting_room(){
function send_choose_messages(){ function send_choose_messages(){
global $I, $U; global $I, $U;
print_start('choose_messages'); print_start('choose_messages');
echo '<div class="left">';
frmadm('clean'); frmadm('clean');
echo hidden('what', 'selected').submit($I['delselmes'], 'class="delbutton"').'<br><br>'; echo hidden('what', 'selected').submit($I['delselmes'], 'class="delbutton"').'<br><br>';
print_messages($U['status']); print_messages($U['status']);
echo '<br>'.submit($I['delselmes'], 'class="delbutton"')."</form>"; echo '<br>'.submit($I['delselmes'], 'class="delbutton"')."</form>";
echo '</div>';
print_end(); print_end();
} }
function send_del_confirm(){ function send_del_confirm(){
global $I; global $I;
print_start('del_confirm'); print_start('del_confirm');
echo "<table class=\"center-table\"><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>"; echo "<table><tr><td colspan=\"2\">$I[confirm]</td></tr><tr><td>";
frmpst('delete'); frmpst('delete');
if(isSet($_REQUEST['multi'])){ if(isSet($_REQUEST['multi'])){
echo hidden('multi', 'on'); echo hidden('multi', 'on');
@ -1653,13 +1670,13 @@ function send_post(){
if(!isSet($_REQUEST['sendto'])){ if(!isSet($_REQUEST['sendto'])){
$_REQUEST['sendto']=''; $_REQUEST['sendto']='';
} }
echo '<table class="center-table" style="border-spacing:0px;"><tr><td>'; echo '<table><tr><td>';
frmpst('post'); frmpst('post');
echo hidden('postid', $U['postid']); echo hidden('postid', $U['postid']);
if(isSet($_REQUEST['multi'])){ if(isSet($_REQUEST['multi'])){
echo hidden('multi', 'on'); echo hidden('multi', 'on');
} }
echo '<table class="center-table" style="border-spacing:0px;"><tr style="vertical-align:top;"><td><table class="center-table" style="border-spacing:0px;"><tr style="vertical-align:top;"><td>'.style_this(htmlspecialchars($U['nickname']), $U['style']).'</td><td>:</td>'; echo '<table><tr><td><table><tr id="firstline"><td>'.style_this(htmlspecialchars($U['nickname']), $U['style']).'</td><td>:</td>';
if(!isSet($U['rejected'])){ if(!isSet($U['rejected'])){
$U['rejected']=''; $U['rejected']='';
} }
@ -1721,7 +1738,7 @@ function send_post(){
echo '</select></td>'; echo '</select></td>';
if(get_setting('enfileupload')){ if(get_setting('enfileupload')){
if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){ if(!$disablepm && ($U['status']>=5 || ($U['status']>=3 && get_count_mods()==0 && get_setting('memkick')))){
echo '</tr></table><table class="center-table" style="border-spacing:0px;"><tr>'; 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'));
} }
@ -1729,7 +1746,7 @@ function send_post(){
echo "<td><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"kick\"><label for=\"kick\">$I[kick]</label></td>"; echo "<td><input type=\"checkbox\" name=\"kick\" id=\"kick\" value=\"kick\"><label for=\"kick\">$I[kick]</label></td>";
echo "<td><input type=\"checkbox\" name=\"what\" id=\"what\" value=\"purge\" checked><label for=\"what\">$I[alsopurge]</label></td>"; echo "<td><input type=\"checkbox\" name=\"what\" id=\"what\" value=\"purge\" checked><label for=\"what\">$I[alsopurge]</label></td>";
} }
echo '</tr></table></td></tr></table></form></td></tr><tr><td><table class="center-table" style="border-spacing:0px;"><tr><td>'; echo '</tr></table></td></tr></table></form></td></tr><tr><td><table><tr id="thirdline"><td>';
frmpst('delete'); frmpst('delete');
if(isSet($_REQUEST['multi'])){ if(isSet($_REQUEST['multi'])){
echo hidden('multi', 'on'); echo hidden('multi', 'on');
@ -1757,23 +1774,20 @@ function send_greeting(){
global $I, $U, $language; global $I, $U, $language;
print_start('greeting', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language"); print_start('greeting', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language");
printf("<h1>$I[greetingmsg]</h1>", style_this(htmlspecialchars($U['nickname']), $U['style'])); printf("<h1>$I[greetingmsg]</h1>", style_this(htmlspecialchars($U['nickname']), $U['style']));
echo '<div class="left">';
printf("<hr><small>$I[entryhelp]</small>", $U['refresh']); printf("<hr><small>$I[entryhelp]</small>", $U['refresh']);
$rulestxt=get_setting('rulestxt'); $rulestxt=get_setting('rulestxt');
if(!empty($rulestxt)){ if(!empty($rulestxt)){
echo "<hr><h2>$I[rules]</h2>$rulestxt"; echo "<hr><div id=\"rules\"><h2>$I[rules]</h2>$rulestxt</div>";
} }
echo '</div>';
print_end(); print_end();
} }
function send_help(){ function send_help(){
global $H, $I, $U; global $H, $I, $U;
print_start('help'); print_start('help');
echo '<div class="left">';
$rulestxt=get_setting('rulestxt'); $rulestxt=get_setting('rulestxt');
if(!empty($rulestxt)){ if(!empty($rulestxt)){
echo "<h2>$I[rules]</h2>$rulestxt<br><br><hr>"; echo "<div id=\"rules\"><h2>$I[rules]</h2>$rulestxt<br></div><hr>";
} }
echo "<h2>$I[help]</h2>$I[helpguest]"; echo "<h2>$I[help]</h2>$I[helpguest]";
if(get_setting('imgembed')){ if(get_setting('imgembed')){
@ -1788,15 +1802,14 @@ function send_help(){
} }
} }
} }
echo "<br><hr><div class=\"center\">$H[backtochat]$H[credit]</div>"; echo "<br><hr><div id=\"backcredit\">$H[backtochat]$H[credit]</div>";
echo '</div>';
print_end(); print_end();
} }
function send_profile($arg=''){ function send_profile($arg=''){
global $F, $H, $I, $L, $U, $db, $language; global $F, $H, $I, $L, $U, $db, $language;
print_start('profile'); print_start('profile');
echo "<$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'save')."<h2>$I[profile]</h2><i>$arg</i><table class=\"center-table\">"; echo "<$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'save')."<h2>$I[profile]</h2><i>$arg</i><table>";
thr(); thr();
$ignored=[]; $ignored=[];
$stmt=$db->prepare('SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?;'); $stmt=$db->prepare('SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?;');
@ -1805,7 +1818,7 @@ function send_profile($arg=''){
$ignored[]=htmlspecialchars($tmp['ign']); $ignored[]=htmlspecialchars($tmp['ign']);
} }
if(count($ignored)>0){ if(count($ignored)>0){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[unignore]</th><td class=\"right\">"; echo "<tr><td><table id=\"unignore\"><tr><th>$I[unignore]</th><td>";
echo "<select name=\"unignore\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<select name=\"unignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
foreach($ignored as $ign){ foreach($ignored as $ign){
echo "<option value=\"$ign\">$ign</option>"; echo "<option value=\"$ign\">$ign</option>";
@ -1813,7 +1826,7 @@ function send_profile($arg=''){
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
} }
echo "<tr><td><table class=\"left-table\"><tr><th>$I[ignore]</th><td class=\"right\">"; echo "<tr><td><table id=\"ignore\"><tr><th>$I[ignore]</th><td>";
echo "<select name=\"ignore\" size=\"1\"><option value=\"\">$I[choose]</option>"; echo "<select name=\"ignore\" size=\"1\"><option value=\"\">$I[choose]</option>";
$stmt=$db->prepare('SELECT poster, style FROM ' . PREFIX . 'messages INNER JOIN ' . PREFIX . 'sessions ON (' . PREFIX . 'messages.poster=' . PREFIX . 'sessions.nickname) WHERE poster!=? AND (status<=? OR status<=3) AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) GROUP BY poster;'); $stmt=$db->prepare('SELECT poster, style FROM ' . PREFIX . 'messages INNER JOIN ' . PREFIX . 'sessions ON (' . PREFIX . 'messages.poster=' . PREFIX . 'sessions.nickname) WHERE poster!=? AND (status<=? OR status<=3) AND poster NOT IN (SELECT ign FROM ' . PREFIX . 'ignored WHERE ignby=?) GROUP BY poster;');
$stmt->execute([$U['nickname'], $U['status'], $U['nickname']]); $stmt->execute([$U['nickname'], $U['status'], $U['nickname']]);
@ -1822,18 +1835,18 @@ function send_profile($arg=''){
} }
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[refreshrate]</th><td class=\"right\">"; echo "<tr><td><table id=\"refresh\"><tr><th>$I[refreshrate]</th><td>";
echo "<input type=\"number\" name=\"refresh\" size=\"3\" maxlength=\"3\" min=\"5\" max=\"150\" value=\"$U[refresh]\"></td></tr></table></td></tr>"; echo "<input type=\"number\" name=\"refresh\" size=\"3\" maxlength=\"3\" min=\"5\" max=\"150\" value=\"$U[refresh]\"></td></tr></table></td></tr>";
thr(); thr();
preg_match('/#([0-9a-f]{6})/i', $U['style'], $matches); preg_match('/#([0-9a-f]{6})/i', $U['style'], $matches);
echo "<tr><td><table class=\"left-table\"><tr><td><b>$I[fontcolour]</b> (<a href=\"$_SERVER[SCRIPT_NAME]?action=colours&amp;session=$U[session]&amp;lang=$language\" target=\"view\">$I[viewexample]</a>)</td><td class=\"right\">"; echo "<tr><td><table id=\"colour\"><tr><th>$I[fontcolour] (<a href=\"$_SERVER[SCRIPT_NAME]?action=colours&amp;session=$U[session]&amp;lang=$language\" target=\"view\">$I[viewexample]</a>)</th><td>";
echo "<input type=\"color\" value=\"#$matches[1]\" name=\"colour\"></td></tr></table></td></tr>"; echo "<input type=\"color\" value=\"#$matches[1]\" name=\"colour\"></td></tr></table></td></tr>";
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><td><b>$I[bgcolour]</b> (<a href=\"$_SERVER[SCRIPT_NAME]?action=colours&amp;session=$U[session]&amp;lang=$language\" target=\"view\">$I[viewexample]</a>)</td><td class=\"right\">"; echo "<tr><td><table id=\"bgcolour\"><tr><th>$I[bgcolour] (<a href=\"$_SERVER[SCRIPT_NAME]?action=colours&amp;session=$U[session]&amp;lang=$language\" target=\"view\">$I[viewexample]</a>)</th><td>";
echo "<input type=\"color\" value=\"#$U[bgcolour]\" name=\"bgcolour\"></td></tr></table></td></tr>"; echo "<input type=\"color\" value=\"#$U[bgcolour]\" name=\"bgcolour\"></td></tr></table></td></tr>";
thr(); thr();
if($U['status']>=3){ if($U['status']>=3){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[fontface]</th><td><table class=\"right-table\">"; echo "<tr><td><table id=\"font\"><tr><th>$I[fontface]</th><td><table>";
echo "<tr><td>&nbsp;</td><td><select name=\"font\" size=\"1\"><option value=\"\">* $I[roomdefault] *</option>"; echo "<tr><td>&nbsp;</td><td><select name=\"font\" size=\"1\"><option value=\"\">* $I[roomdefault] *</option>";
foreach($F as $name=>$font){ foreach($F as $name=>$font){
echo "<option style=\"$font\" "; echo "<option style=\"$font\" ";
@ -1863,7 +1876,7 @@ function send_profile($arg=''){
$bool_settings[]='incognito'; $bool_settings[]='incognito';
} }
foreach($bool_settings as $setting){ foreach($bool_settings as $setting){
echo '<tr><td><table class="left-table"><tr><th>'.$I[$setting].'</th><td class="right">'; echo "<tr><td><table id=\"$setting\"><tr><th>".$I[$setting].'</th><td>';
echo "<input type=\"checkbox\" name=\"$setting\" id=\"$setting\" value=\"on\""; echo "<input type=\"checkbox\" name=\"$setting\" id=\"$setting\" value=\"on\"";
if($U[$setting]){ if($U[$setting]){
echo ' checked'; echo ' checked';
@ -1872,7 +1885,7 @@ function send_profile($arg=''){
thr(); thr();
} }
if($U['status']>=2 && get_setting('eninbox')){ if($U['status']>=2 && get_setting('eninbox')){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[eninbox]</th><td class=\"right\">"; echo "<tr><td><table id=\"eninbox\"><tr><th>$I[eninbox]</th><td>";
echo "<select name=\"eninbox\" id=\"eninbox\">"; echo "<select name=\"eninbox\" id=\"eninbox\">";
echo '<option value="0"'; echo '<option value="0"';
if($U['eninbox']==0){ if($U['eninbox']==0){
@ -1897,8 +1910,8 @@ function send_profile($arg=''){
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
} }
echo "<tr><td><table class=\"left-table\"><tr><th>$I[tz]</th><td class=\"right\">"; echo "<tr><td><table id=\"tz\"><tr><th>$I[tz]</th><td>";
echo "<select name=\"tz\" id=\"tz\">"; echo "<select name=\"tz\">";
$tzs=[-12=>'-12', -11=>'-11', -10=>'-10', -9=>'-9', -8=>'-8', -7=>'-7', -6=>'-6', -5=>'-5', -4=>'-4', -3=>'-3', -2=>'-2', -1=>'-1', 0=>'', 1=>'+1', 2=>'+2', 3=>'+3', 4=>'+4', 5=>'+5', 6=>'+6', 7=>'+7', 8=>'+8', 9=>'+9', 10=>'+10', 11=>'+11', 12=>'+12', 13=>'+13', 14=>'+14']; $tzs=[-12=>'-12', -11=>'-11', -10=>'-10', -9=>'-9', -8=>'-8', -7=>'-7', -6=>'-6', -5=>'-5', -4=>'-4', -3=>'-3', -2=>'-2', -1=>'-1', 0=>'', 1=>'+1', 2=>'+2', 3=>'+3', 4=>'+4', 5=>'+5', 6=>'+6', 7=>'+7', 8=>'+8', 9=>'+9', 10=>'+10', 11=>'+11', 12=>'+12', 13=>'+13', 14=>'+14'];
foreach($tzs as $tz=>$name){ foreach($tzs as $tz=>$name){
$select = $U['tz']==$tz ? ' selected' : ''; $select = $U['tz']==$tz ? ' selected' : '';
@ -1906,21 +1919,21 @@ function send_profile($arg=''){
} }
echo '</select></td></tr></table></td></tr>'; echo '</select></td></tr></table></td></tr>';
thr(); thr();
echo "<tr><td><table class=\"left-table\"><tr><th>$I[pbsize]</th><td><table class=\"right-table\">"; echo "<tr><td><table id=\"boxsize\"><tr><th>$I[pbsize]</th><td><table>";
echo "<tr><td>&nbsp;</td><td>$I[width]</td><td><input type=\"number\" name=\"boxwidth\" size=\"3\" maxlength=\"3\" value=\"$U[boxwidth]\"></td>"; echo "<tr><td>&nbsp;</td><td>$I[width]</td><td><input type=\"number\" name=\"boxwidth\" size=\"3\" maxlength=\"3\" value=\"$U[boxwidth]\"></td>";
echo "<td>&nbsp;</td><td>$I[height]</td><td><input type=\"number\" name=\"boxheight\" size=\"3\" maxlength=\"3\" value=\"$U[boxheight]\"></td>"; echo "<td>&nbsp;</td><td>$I[height]</td><td><input type=\"number\" name=\"boxheight\" size=\"3\" maxlength=\"3\" value=\"$U[boxheight]\"></td>";
echo '</tr></table></td></tr></table></td></tr>'; echo '</tr></table></td></tr></table></td></tr>';
thr(); thr();
if($U['status']>=5){ if($U['status']>=5){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[nbsize]</th><td><table class=\"right-table\">"; echo "<tr><td><table id=\"notesboxsize\"><tr><th>$I[nbsize]</th><td><table>";
echo "<tr><td>&nbsp;</td><td>$I[width]</td><td><input type=\"number\" name=\"notesboxwidth\" size=\"3\" maxlength=\"3\" value=\"$U[notesboxwidth]\"></td>"; echo "<tr><td>&nbsp;</td><td>$I[width]</td><td><input type=\"number\" name=\"notesboxwidth\" size=\"3\" maxlength=\"3\" value=\"$U[notesboxwidth]\"></td>";
echo "<td>&nbsp;</td><td>$I[height]</td><td><input type=\"number\" name=\"notesboxheight\" size=\"3\" maxlength=\"3\" value=\"$U[notesboxheight]\"></td>"; echo "<td>&nbsp;</td><td>$I[height]</td><td><input type=\"number\" name=\"notesboxheight\" size=\"3\" maxlength=\"3\" value=\"$U[notesboxheight]\"></td>";
echo '</tr></table></td></tr></table></td></tr>'; echo '</tr></table></td></tr></table></td></tr>';
thr(); thr();
} }
if($U['status']>=2){ if($U['status']>=2){
echo "<tr><td><table class=\"left-table\"><tr><th>$I[changepass]</th></tr>"; echo "<tr><td><table id=\"changepass\"><tr><th>$I[changepass]</th></tr>";
echo '<tr><td><table class="right-table">'; echo '<tr><td><table>';
echo "<tr><td>&nbsp;</td><td>$I[oldpass]</td><td><input type=\"password\" name=\"oldpass\" size=\"20\"></td></tr>"; echo "<tr><td>&nbsp;</td><td>$I[oldpass]</td><td><input type=\"password\" name=\"oldpass\" size=\"20\"></td></tr>";
echo "<tr><td>&nbsp;</td><td>$I[newpass]</td><td><input type=\"password\" name=\"newpass\" size=\"20\"></td></tr>"; echo "<tr><td>&nbsp;</td><td>$I[newpass]</td><td><input type=\"password\" name=\"newpass\" size=\"20\"></td></tr>";
echo "<tr><td>&nbsp;</td><td>$I[confirmpass]</td><td><input type=\"password\" name=\"confirmpass\" size=\"20\"></td></tr>"; echo "<tr><td>&nbsp;</td><td>$I[confirmpass]</td><td><input type=\"password\" name=\"confirmpass\" size=\"20\"></td></tr>";
@ -1932,19 +1945,18 @@ function send_profile($arg=''){
if($U['status']>1 && $U['status']<8){ if($U['status']>1 && $U['status']<8){
echo "<br><$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'delete').submit($I['deleteacc'], 'class="delbutton"').'</form>'; echo "<br><$H[form]>$H[commonform]".hidden('action', 'profile').hidden('do', 'delete').submit($I['deleteacc'], 'class="delbutton"').'</form>';
} }
echo "<br><p>$I[changelang]"; echo "<br><p id=\"changelang\">$I[changelang]";
foreach($L as $lang=>$name){ foreach($L as $lang=>$name){
echo " <a href=\"$_SERVER[SCRIPT_NAME]?lang=$lang&amp;session=$U[session]&amp;action=controls\" target=\"controls\">$name</a>"; echo " <a href=\"$_SERVER[SCRIPT_NAME]?lang=$lang&amp;session=$U[session]&amp;action=controls\" target=\"controls\">$name</a>";
} }
echo '</p></td></tr>'; echo "</p><br>$H[backtochat]";
echo "<br>$H[backtochat]";
print_end(); print_end();
} }
function send_controls(){ function send_controls(){
global $H, $I, $U; global $H, $I, $U;
print_start('controls'); print_start('controls');
echo '<table class="center-table" style="border-spacing:0px;"><tr>'; echo '<table><tr>';
echo "<td><$H[form] target=\"post\">$H[commonform]".hidden('action', 'post').submit($I['reloadpb']).'</form></td>'; echo "<td><$H[form] target=\"post\">$H[commonform]".hidden('action', 'post').submit($I['reloadpb']).'</form></td>';
echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'view').submit($I['reloadmsgs']).'</form></td>'; echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'view').submit($I['reloadmsgs']).'</form></td>';
echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'profile').submit($I['chgprofile']).'</form></td>'; echo "<td><$H[form] target=\"view\">$H[commonform]".hidden('action', 'profile').submit($I['chgprofile']).'</form></td>';
@ -1997,18 +2009,18 @@ function send_logout(){
function send_colours(){ function send_colours(){
global $H, $I; global $H, $I;
print_start('colours'); print_start('colours');
echo "<h2>$I[colourtable]</h2><tt>"; echo "<h2>$I[colourtable]</h2><kbd><b>";
for($red=0x00;$red<=0xFF;$red+=0x33){ for($red=0x00;$red<=0xFF;$red+=0x33){
for($green=0x00;$green<=0xFF;$green+=0x33){ for($green=0x00;$green<=0xFF;$green+=0x33){
for($blue=0x00;$blue<=0xFF;$blue+=0x33){ for($blue=0x00;$blue<=0xFF;$blue+=0x33){
$hcol=sprintf('%02X', $red).sprintf('%02X', $green).sprintf('%02X', $blue); $hcol=sprintf('%02X', $red).sprintf('%02X', $green).sprintf('%02X', $blue);
echo "<span style=\"color:#$hcol\"><b>$hcol</b></span> "; echo "<span style=\"color:#$hcol\">$hcol</span> ";
} }
echo '<br>'; echo '<br>';
} }
echo '<br>'; echo '<br>';
} }
echo "</tt><$H[form]>$H[commonform]".hidden('action', 'profile').submit($I['backtoprofile'], ' class="backbutton"').'</form>'; echo "</b></kbd><$H[form]>$H[commonform]".hidden('action', 'profile').submit($I['backtoprofile'], ' class="backbutton"').'</form>';
print_end(); print_end();
} }
@ -2025,19 +2037,19 @@ function send_login(){
if($englobal===1 && isSet($_POST['globalpass'])){ if($englobal===1 && isSet($_POST['globalpass'])){
echo hidden('globalpass', $_POST['globalpass']); echo hidden('globalpass', $_POST['globalpass']);
} }
echo '<table class="center-table" style="border:2px solid;">'; echo '<table>';
if($englobal!==1 || (isSet($_POST['globalpass']) && $_POST['globalpass']==get_setting('globalpass'))){ if($englobal!==1 || (isSet($_POST['globalpass']) && $_POST['globalpass']==get_setting('globalpass'))){
echo "<tr><td class=\"left\">$I[nick]</td><td class=\"right\"><input type=\"text\" name=\"nick\" size=\"15\" autofocus></td></tr>"; echo "<tr><td>$I[nick]</td><td><input type=\"text\" name=\"nick\" size=\"15\" autofocus></td></tr>";
echo "<tr><td class=\"left\">$I[pass]</td><td class=\"right\"><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>"; echo "<tr><td>$I[pass]</td><td><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>";
send_captcha(); send_captcha();
if($ga!==0){ if($ga!==0){
if(get_setting('guestreg')!=0){ if(get_setting('guestreg')!=0){
echo "<tr><td class=\"left\">$I[regpass]</td><td class=\"right\"><input type=\"password\" name=\"regpass\" size=\"15\" placeholder=\"$I[optional]\"></td></tr>"; echo "<tr><td>$I[regpass]</td><td><input type=\"password\" name=\"regpass\" size=\"15\" placeholder=\"$I[optional]\"></td></tr>";
} }
if($englobal===2){ if($englobal===2){
echo "<tr><td class=\"left\">$I[globalloginpass]</td><td class=\"right\"><input type=\"password\" name=\"globalpass\" size=\"15\"></td></tr>"; echo "<tr><td>$I[globalloginpass]</td><td><input type=\"password\" name=\"globalpass\" size=\"15\"></td></tr>";
} }
echo "<tr><td colspan=\"2\">$I[choosecol]<br><select class=\"center\" name=\"colour\"><option value=\"\">* $I[randomcol] *</option>"; echo "<tr><td colspan=\"2\">$I[choosecol]<br><select name=\"colour\"><option value=\"\">* $I[randomcol] *</option>";
print_colours(); print_colours();
echo '</select></td></tr>'; echo '</select></td></tr>';
}else{ }else{
@ -2045,21 +2057,21 @@ function send_login(){
} }
echo '<tr><td colspan="2">'.submit($I['enter']).'</td></tr></table></form>'; echo '<tr><td colspan="2">'.submit($I['enter']).'</td></tr></table></form>';
get_nowchatting(); get_nowchatting();
echo '<br><br><div id="topic">'; echo '<br><div id="topic">';
echo get_setting('topic'); echo get_setting('topic');
echo '</div>'; echo '</div>';
$rulestxt=get_setting('rulestxt'); $rulestxt=get_setting('rulestxt');
if(!empty($rulestxt)){ if(!empty($rulestxt)){
echo "<h2>$I[rules]</h2><b>$rulestxt</b><br>"; echo "<div id=\"rules\"><h2>$I[rules]</h2><b>$rulestxt</b></div>";
} }
}else{ }else{
echo "<tr><td class=\"left\">$I[globalloginpass]</td><td class=\"right\"><input type=\"password\" name=\"globalpass\" size=\"15\" autofocus></td></tr>"; echo "<tr><td>$I[globalloginpass]</td><td><input type=\"password\" name=\"globalpass\" size=\"15\" autofocus></td></tr>";
if($ga===0){ if($ga===0){
echo "<tr><td colspan=\"2\">$I[noguests]</td></tr>"; echo "<tr><td colspan=\"2\">$I[noguests]</td></tr>";
} }
echo '<tr><td colspan="2">'.submit($I['enter']).'</td></tr></table></form>'; echo '<tr><td colspan="2">'.submit($I['enter']).'</td></tr></table></form>';
} }
echo "<p>$I[changelang]"; echo "<p id=\"changelang\">$I[changelang]";
foreach($L as $lang=>$name){ foreach($L as $lang=>$name){
echo " <a href=\"$_SERVER[SCRIPT_NAME]?lang=$lang\">$name</a>"; echo " <a href=\"$_SERVER[SCRIPT_NAME]?lang=$lang\">$name</a>";
} }
@ -2076,7 +2088,7 @@ function send_chat_disabled(){
function send_error($err){ function send_error($err){
global $H, $I; global $H, $I;
print_start('error'); print_start('error');
echo "<div class=\"left\"><h2>$I[error]: $err</h2>$H[backtologin]</div>"; echo "<h2>$I[error]: $err</h2>$H[backtologin]";
print_end(); print_end();
} }
@ -2116,7 +2128,7 @@ function print_notifications(){
function print_chatters(){ function print_chatters(){
global $I, $U, $db, $language; global $I, $U, $db, $language;
if(!$U['hidechatters']){ if(!$U['hidechatters']){
echo '<div id="chatters"><table style="border-spacing:0px;"><tr>'; echo '<div id="chatters"><table><tr>';
$stmt=$db->prepare('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 AND nickname NOT IN (SELECT ign FROM '. PREFIX . 'ignored WHERE ignby=?) AND nickname NOT IN (SELECT ignby FROM '. PREFIX . 'ignored WHERE ign=?) ORDER BY status DESC, lastpost DESC;'); $stmt=$db->prepare('SELECT nickname, style, status FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 AND nickname NOT IN (SELECT ign FROM '. PREFIX . 'ignored WHERE ignby=?) AND nickname NOT IN (SELECT ignby FROM '. PREFIX . 'ignored WHERE ign=?) ORDER BY status DESC, lastpost DESC;');
$stmt->execute([$U['nickname'], $U['nickname']]); $stmt->execute([$U['nickname'], $U['nickname']]);
$nc=substr(time(), -6); $nc=substr(time(), -6);
@ -2129,13 +2141,13 @@ function print_chatters(){
} }
} }
if(!empty($M)){ if(!empty($M)){
echo "<th style=\"vertical-align:top;\">$I[members]:</th><td>&nbsp;</td><td style=\"vertical-align:top;\">".implode(' &nbsp; ', $M).'</td>'; echo "<th>$I[members]:</th><td>&nbsp;</td><td>".implode(' &nbsp; ', $M).'</td>';
if(!empty($G)){ if(!empty($G)){
echo '<td>&nbsp;&nbsp;</td>'; echo '<td>&nbsp;&nbsp;</td>';
} }
} }
if(!empty($G)){ if(!empty($G)){
echo "<th style=\"vertical-align:top;\">$I[guests]:</th><td>&nbsp;</td><td style=\"vertical-align:top;\">".implode(' &nbsp; ', $G).'</td>'; echo "<th>$I[guests]:</th><td>&nbsp;</td><td>".implode(' &nbsp; ', $G).'</td>';
} }
echo '</tr></table></div>'; echo '</tr></table></div>';
} }
@ -2450,13 +2462,14 @@ function get_nowchatting(){
parse_sessions(); parse_sessions();
$stmt=$db->query('SELECT COUNT(*) FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0;'); $stmt=$db->query('SELECT COUNT(*) FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0;');
$count=$stmt->fetch(PDO::FETCH_NUM); $count=$stmt->fetch(PDO::FETCH_NUM);
echo sprintf($I['curchat'], $count[0]).'<br>'; echo '<div id="chatters">'.sprintf($I['curchat'], $count[0]).'<br>';
if(!get_setting('hidechatters')){ if(!get_setting('hidechatters')){
$stmt=$db->query('SELECT nickname, style FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 ORDER BY status DESC, lastpost DESC;'); $stmt=$db->query('SELECT nickname, style FROM ' . PREFIX . 'sessions WHERE entry!=0 AND status>0 AND incognito=0 ORDER BY status DESC, lastpost DESC;');
while($user=$stmt->fetch(PDO::FETCH_NUM)){ while($user=$stmt->fetch(PDO::FETCH_NUM)){
echo style_this(htmlspecialchars($user[0]), $user[1]).' &nbsp; '; echo style_this(htmlspecialchars($user[0]), $user[1]).' &nbsp; ';
} }
} }
echo '</div>';
} }
function parse_sessions(){ function parse_sessions(){
@ -2796,6 +2809,10 @@ function set_new_nickname(){
$stmt->execute(array($_REQUEST['newnickname'], $U['nickname'])); $stmt->execute(array($_REQUEST['newnickname'], $U['nickname']));
$stmt=$db->prepare('UPDATE ' . PREFIX . 'ignored SET ign=? WHERE ign=?;'); $stmt=$db->prepare('UPDATE ' . PREFIX . 'ignored SET ign=? WHERE ign=?;');
$stmt->execute(array($_REQUEST['newnickname'], $U['nickname'])); $stmt->execute(array($_REQUEST['newnickname'], $U['nickname']));
$stmt=$db->prepare('UPDATE ' . PREFIX . 'inbox SET poster=? WHERE poster=?;');
$stmt->execute(array($_REQUEST['newnickname'], $U['nickname']));
$stmt=$db->prepare('UPDATE ' . PREFIX . 'inbox SET recipient=? WHERE recipient=?;');
$stmt->execute(array($_REQUEST['newnickname'], $U['nickname']));
$U['nickname']=$_REQUEST['newnickname']; $U['nickname']=$_REQUEST['newnickname'];
} }
return ''; return '';
@ -3468,7 +3485,7 @@ function check_init(){
} }
function destroy_chat($C){ function destroy_chat($C){
global $H, $I, $db, $language; global $H, $I, $db, $language, $memcached;
setcookie(COOKIENAME, false); setcookie(COOKIENAME, false);
print_start('destory'); print_start('destory');
$db->exec('DROP TABLE ' . PREFIX . 'captcha;'); $db->exec('DROP TABLE ' . PREFIX . 'captcha;');
@ -3557,7 +3574,7 @@ function init_chat(){
$db->exec('CREATE INDEX ' . PREFIX . 'incognito ON ' . PREFIX . 'sessions(incognito);'); $db->exec('CREATE INDEX ' . PREFIX . 'incognito ON ' . PREFIX . 'sessions(incognito);');
$db->exec('CREATE TABLE ' . PREFIX . "settings (setting varchar(50) NOT NULL PRIMARY KEY, value text NOT NULL)$diskengine$charset;"); $db->exec('CREATE TABLE ' . PREFIX . "settings (setting varchar(50) NOT NULL PRIMARY KEY, value text NOT NULL)$diskengine$charset;");
$settings=[['guestaccess', '0'], ['globalpass', ''], ['englobalpass', '0'], ['captcha', '0'], ['dateformat', 'm-d H:i:s'], ['rulestxt', ''], ['msgencrypted', '0'], ['dbversion', DBVERSION], ['css', 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} input,select,textarea{color:#FFFFFF;background-color:#000000;} a img{width:15%} a:hover img{width:35%} .error{color:#FF0033;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;} .center-table{margin-left:auto;margin-right:auto;} body{text-align:center;} .left-table{width:100%;text-align:left;} .right{text-align:right;} .left{text-align:left;} .right-table{border-spacing:0px;margin-left:auto;} .padded{padding:5px;} #chatters{max-height:100px;overflow-y:auto;} .center{text-align:center;}'], ['memberexpire', '60'], ['guestexpire', '15'], ['kickpenalty', '10'], ['entrywait', '120'], ['messageexpire', '14400'], ['messagelimit', '150'], ['maxmessage', 2000], ['captchatime', '600'], ['colbg', '000000'], ['coltxt', 'FFFFFF'], ['maxname', '20'], ['minpass', '5'], ['defaultrefresh', '20'], ['dismemcaptcha', '0'], ['suguests', '0'], ['imgembed', '1'], ['timestamps', '1'], ['trackip', '0'], ['captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'], ['memkick', '1'], ['forceredirect', '0'], ['redirect', ''], ['incognito', '1'], ['chatname', 'My Chat'], ['topic', ''], ['msgsendall', $I['sendallmsg']], ['msgsendmem', $I['sendmemmsg']], ['msgsendmod', $I['sendmodmsg']], ['msgsendadm', $I['sendadmmsg']], ['msgsendprv', $I['sendprvmsg']], ['msgenter', $I['entermsg']], ['msgexit', $I['exitmsg']], ['msgmemreg', $I['memregmsg']], ['msgsureg', $I['suregmsg']], ['msgkick', $I['kickmsg']], ['msgmultikick', $I['multikickmsg']], ['msgallkick', $I['allkickmsg']], ['msgclean', $I['cleanmsg']], ['numnotes', '3'], ['mailsender', 'www-data <www-data@localhost>'], ['mailreceiver', 'Webmaster <webmaster@localhost>'], ['sendmail', '0'], ['modfallback', '1'], ['guestreg', '0'], ['disablepm', '0'], ['disabletext', "<h1>$I[disabledtext]</h1>"], ['defaulttz', '0'], ['eninbox', '0'], ['passregex', '.*'], ['nickregex', '^[A-Za-z0-9]*$'], ['externalcss', ''], ['enablegreeting', '0'], ['sortupdown', '0'], ['hidechatters', '0'], ['enfileupload', '0'], ['msgattache', '%2$s [%1$s]'], ['maxuploadsize', '1024']]; $settings=[['guestaccess', '0'], ['globalpass', ''], ['englobalpass', '0'], ['captcha', '0'], ['dateformat', 'm-d H:i:s'], ['rulestxt', ''], ['msgencrypted', '0'], ['dbversion', DBVERSION], ['css', ''], ['memberexpire', '60'], ['guestexpire', '15'], ['kickpenalty', '10'], ['entrywait', '120'], ['messageexpire', '14400'], ['messagelimit', '150'], ['maxmessage', 2000], ['captchatime', '600'], ['colbg', '000000'], ['coltxt', 'FFFFFF'], ['maxname', '20'], ['minpass', '5'], ['defaultrefresh', '20'], ['dismemcaptcha', '0'], ['suguests', '0'], ['imgembed', '1'], ['timestamps', '1'], ['trackip', '0'], ['captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'], ['memkick', '1'], ['forceredirect', '0'], ['redirect', ''], ['incognito', '1'], ['chatname', 'My Chat'], ['topic', ''], ['msgsendall', $I['sendallmsg']], ['msgsendmem', $I['sendmemmsg']], ['msgsendmod', $I['sendmodmsg']], ['msgsendadm', $I['sendadmmsg']], ['msgsendprv', $I['sendprvmsg']], ['msgenter', $I['entermsg']], ['msgexit', $I['exitmsg']], ['msgmemreg', $I['memregmsg']], ['msgsureg', $I['suregmsg']], ['msgkick', $I['kickmsg']], ['msgmultikick', $I['multikickmsg']], ['msgallkick', $I['allkickmsg']], ['msgclean', $I['cleanmsg']], ['numnotes', '3'], ['mailsender', 'www-data <www-data@localhost>'], ['mailreceiver', 'Webmaster <webmaster@localhost>'], ['sendmail', '0'], ['modfallback', '1'], ['guestreg', '0'], ['disablepm', '0'], ['disabletext', "<h1>$I[disabledtext]</h1>"], ['defaulttz', '0'], ['eninbox', '0'], ['passregex', '.*'], ['nickregex', '^[A-Za-z0-9]*$'], ['externalcss', ''], ['enablegreeting', '0'], ['sortupdown', '0'], ['hidechatters', '0'], ['enfileupload', '0'], ['msgattache', '%2$s [%1$s]'], ['maxuploadsize', '1024']];
$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){
$stmt->execute($pair); $stmt->execute($pair);
@ -3649,7 +3666,7 @@ function update_db(){
$db->exec('ALTER TABLE ' . PREFIX . 'messages DROP postid;'); $db->exec('ALTER TABLE ' . PREFIX . 'messages DROP postid;');
} }
if($dbversion<10){ if($dbversion<10){
$db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('css', 'a:visited{color:#B33CB4;} a:active{color:#FF0033;} a:link{color:#0000FF;} input,select,textarea{color:#FFFFFF;background-color:#000000;} a img{width:15%} a:hover img{width:35%} .error{color:#FF0033;} .delbutton{background-color:#660000;} .backbutton{background-color:#004400;} #exitbutton{background-color:#AA0000;}'), ('memberexpire', '60'), ('guestexpire', '15'), ('kickpenalty', '10'), ('entrywait', '120'), ('messageexpire', '14400'), ('messagelimit', '150'), ('maxmessage', 2000), ('captchatime', '600');"); $db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('css', ''), ('memberexpire', '60'), ('guestexpire', '15'), ('kickpenalty', '10'), ('entrywait', '120'), ('messageexpire', '14400'), ('messagelimit', '150'), ('maxmessage', 2000), ('captchatime', '600');");
$db->exec('ALTER TABLE ' . PREFIX . 'sessions ADD ip varchar(45) NOT NULL;'); $db->exec('ALTER TABLE ' . PREFIX . 'sessions ADD ip varchar(45) NOT NULL;');
} }
if($dbversion<11){ if($dbversion<11){
@ -3711,11 +3728,6 @@ function update_db(){
if($dbversion<15){ if($dbversion<15){
$db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('mailsender', 'www-data <www-data@localhost>'), ('mailreceiver', 'Webmaster <webmaster@localhost>'), ('sendmail', '0'), ('modfallback', '1'), ('guestreg', '0');"); $db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('mailsender', 'www-data <www-data@localhost>'), ('mailreceiver', 'Webmaster <webmaster@localhost>'), ('sendmail', '0'), ('modfallback', '1'), ('guestreg', '0');");
} }
if($dbversion<16){
$css=get_setting('css');
$css.=' .center-table{margin-left:auto;margin-right:auto;} body{text-align:center;} .left-table{width:100%;text-align:left;} .right{text-align:right;} .left{text-align:left;} .right-table{border-spacing:0px;margin-left:auto;} .padded{padding:5px;} #chatters{max-height:100px;overflow-y:auto;} .center{text-align:center;}';
update_setting('css', $css);
}
if($dbversion<17){ if($dbversion<17){
$db->exec('ALTER TABLE ' . PREFIX . 'sessions ADD COLUMN nocache smallint NOT NULL DEFAULT 0;'); $db->exec('ALTER TABLE ' . PREFIX . 'sessions ADD COLUMN nocache smallint NOT NULL DEFAULT 0;');
$db->exec('ALTER TABLE ' . PREFIX . 'members ADD COLUMN nocache smallint NOT NULL DEFAULT 0;'); $db->exec('ALTER TABLE ' . PREFIX . 'members ADD COLUMN nocache smallint NOT NULL DEFAULT 0;');
@ -3818,7 +3830,7 @@ function update_db(){
} }
$db->exec('CREATE INDEX ' . PREFIX . 'inbox_poster ON ' . PREFIX . 'inbox(poster);'); $db->exec('CREATE INDEX ' . PREFIX . 'inbox_poster ON ' . PREFIX . 'inbox(poster);');
$db->exec('CREATE INDEX ' . PREFIX . 'inbox_recipient ON ' . PREFIX . 'inbox(recipient);'); $db->exec('CREATE INDEX ' . PREFIX . 'inbox_recipient ON ' . PREFIX . 'inbox(recipient);');
$result=$olddb->query('SELECT filtermatch, filterreplace, regex FROM ' . PREFIX . 'filter;'); $result=$olddb->query('SELECT filtermatch, filterreplace, regex FROM ' . PREFIX . 'linkfilter;');
$data=$result->fetchAll(PDO::FETCH_NUM); $data=$result->fetchAll(PDO::FETCH_NUM);
$db->exec('DROP TABLE ' . PREFIX . 'linkfilter;'); $db->exec('DROP TABLE ' . PREFIX . 'linkfilter;');
$db->exec('CREATE TABLE ' . PREFIX . "linkfilter (id integer PRIMARY KEY AUTO_INCREMENT, filtermatch varchar(255) NOT NULL, filterreplace varchar(255) NOT NULL, regex smallint NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;"); $db->exec('CREATE TABLE ' . PREFIX . "linkfilter (id integer PRIMARY KEY AUTO_INCREMENT, filtermatch varchar(255) NOT NULL, filterreplace varchar(255) NOT NULL, regex smallint NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
@ -4053,6 +4065,7 @@ function load_lang(){
} }
include('lang_en.php'); //always include English include('lang_en.php'); //always include English
if($language!=='en'){ if($language!=='en'){
$T=[];
include("lang_$language.php"); //replace with translation if available include("lang_$language.php"); //replace with translation if available
foreach($T as $name=>$translation){ foreach($T as $name=>$translation){
$I[$name]=$translation; $I[$name]=$translation;

View File

@ -72,7 +72,7 @@ $T=array(
'selection' => 'Auswahl', 'selection' => 'Auswahl',
'cleannick' => 'Folgender Nickname:', 'cleannick' => 'Folgender Nickname:',
'clean' => 'Löschen', 'clean' => 'Löschen',
'kickchat' => '<b>Teilnehmer rausschmeißen</b> (%d Minuten)', 'kickchat' => 'Teilnehmer rausschmeißen (%d Minuten)',
'kickreason' => 'Begründung:', 'kickreason' => 'Begründung:',
'kickpurge' => 'Nachrichten löschen', 'kickpurge' => 'Nachrichten löschen',
'kick' => 'Rausschmeißen', 'kick' => 'Rausschmeißen',

View File

@ -72,7 +72,7 @@ $I=array(
'selection' => 'Selection', 'selection' => 'Selection',
'cleannick' => 'Following nickname:', 'cleannick' => 'Following nickname:',
'clean' => 'Clean', 'clean' => 'Clean',
'kickchat' => '<b>Kick Chatter</b> (%d minutes)', 'kickchat' => 'Kick Chatter (%d minutes)',
'kickreason' => 'Kickmessage:', 'kickreason' => 'Kickmessage:',
'kickpurge' => 'Purge messages', 'kickpurge' => 'Purge messages',
'kick' => 'Kick', 'kick' => 'Kick',

View File

@ -70,7 +70,7 @@ $T=array(
'selection' => 'Selección', 'selection' => 'Selección',
'cleannick' => 'Following nickname:', 'cleannick' => 'Following nickname:',
'clean' => 'Clean', 'clean' => 'Clean',
'kickchat' => '<b>Expulsado</b> (%d minutos)', 'kickchat' => 'Expulsado (%d minutos)',
'kickreason' => 'Motivo de expulsión:', 'kickreason' => 'Motivo de expulsión:',
'kickpurge' => 'Mensaje de purga', 'kickpurge' => 'Mensaje de purga',
'kick' => 'Expulsar', 'kick' => 'Expulsar',

View File

@ -70,7 +70,7 @@ $T=array(
'selection' => 'Selección', 'selection' => 'Selección',
'cleannick' => 'Following nickname:', 'cleannick' => 'Following nickname:',
'clean' => 'Clean', 'clean' => 'Clean',
'kickchat' => '<b>Expulsado</b> (%d minutos)', 'kickchat' => 'Expulsado (%d minutos)',
'kickreason' => 'Motivo de expulsión:', 'kickreason' => 'Motivo de expulsión:',
'kickpurge' => 'Mensaje de purga', 'kickpurge' => 'Mensaje de purga',
'kick' => 'Expulsar', 'kick' => 'Expulsar',

View File

@ -70,7 +70,7 @@ $T=array(
'selection' => 'Sélection', 'selection' => 'Sélection',
'cleannick' => 'Suivre le pseudo:', 'cleannick' => 'Suivre le pseudo:',
'clean' => 'Nettoyé', 'clean' => 'Nettoyé',
'kickchat' => '<b>Pseudos éjectés</b> (%d minutes)', 'kickchat' => 'Pseudos éjectés (%d minutes)',
'kickreason' => 'Messages interdis:', 'kickreason' => 'Messages interdis:',
'kickpurge' => 'Purger les messages', 'kickpurge' => 'Purger les messages',
'kick' => 'Banni / éjecté', 'kick' => 'Banni / éjecté',

View File

@ -70,7 +70,7 @@ $T=array(
'selection' => 'Pilihan', 'selection' => 'Pilihan',
'cleannick' => 'Nama berikut:', 'cleannick' => 'Nama berikut:',
'clean' => 'Bersih', 'clean' => 'Bersih',
'kickchat' => '<b>Usir pengobrol</b> (%d menit)', 'kickchat' => 'Usir pengobrol (%d menit)',
'kickreason' => 'pesan pengusiran:', 'kickreason' => 'pesan pengusiran:',
'kickpurge' => 'Bersihkan pesan', 'kickpurge' => 'Bersihkan pesan',
'kick' => 'Usir', 'kick' => 'Usir',

View File

@ -70,7 +70,7 @@ $T=array(
'selection' => 'Выбор', 'selection' => 'Выбор',
'cleannick' => 'По нику:', 'cleannick' => 'По нику:',
'clean' => 'Очистить', 'clean' => 'Очистить',
'kickchat' => '<b>Бан</b> (%d минут)', 'kickchat' => 'Бан (%d минут)',
'kickreason' => 'Сообщение забаненому', 'kickreason' => 'Сообщение забаненому',
'kickpurge' => 'Очистка сообщений', 'kickpurge' => 'Очистка сообщений',
'kick' => 'Бан', 'kick' => 'Бан',