diff --git a/CHANGELOG b/CHANGELOG index 056f41d..4cf19d2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,8 @@ -Version 1.19.1 - May. 1, 2016 +Version 1.19.2 - May 7, 2016 +Remove JavaScript "load only new messages" feature +Add JS auto-refresh to header instead + +Version 1.19.1 - May 1, 2016 Fix parts of the offline inbox Version 1.19 - Apr. 29, 2016 diff --git a/chat.php b/chat.php index 76c6fd4..8f412c5 100644 --- a/chat.php +++ b/chat.php @@ -53,12 +53,7 @@ function route(){ send_login(); }elseif($_REQUEST['action']==='view'){ check_session(); - send_messages(false); - }elseif($_REQUEST['action']==='jsview'){ - check_session(); - send_messages(true); - }elseif($_REQUEST['action']==='jsrefresh'){ - send_jsrefresh(); + send_messages(); }elseif($_REQUEST['action']==='redirect' && !empty($_GET['url'])){ send_redirect($_GET['url']); }elseif($_REQUEST['action']==='wait'){ @@ -216,7 +211,7 @@ function route_setup(){ if(!valid_admin()){ send_alogin(); } - $C['bool_settings']=array('suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'forceredirect', 'incognito', 'enablejs', 'sendmail', 'modfallback', 'disablepm', 'eninbox'); + $C['bool_settings']=array('suguests', 'imgembed', 'timestamps', 'trackip', 'memkick', 'forceredirect', 'incognito', 'sendmail', 'modfallback', 'disablepm', 'eninbox'); $C['colour_settings']=array('colbg', 'coltxt'); $C['msg_settings']=array('msgenter', 'msgexit', 'msgmemreg', 'msgsureg', 'msgkick', 'msgmultikick', 'msgallkick', 'msgclean', 'msgsendall', 'msgsendmem', 'msgsendmod', 'msgsendadm', 'msgsendprv'); $C['number_settings']=array('memberexpire', 'guestexpire', 'kickpenalty', 'entrywait', 'captchatime', 'messageexpire', 'messagelimit', 'keeplimit', 'maxmessage', 'maxname', 'minpass', 'defaultrefresh', 'numnotes'); @@ -283,12 +278,14 @@ function thr(){ function print_start($class='', $ref=0, $url=''){ global $H, $I; if(!empty($url)){ - $url=str_replace('&', '&', $url);// Don't escape "&" in URLs here, it breaks some (older) browsers! + $url=str_replace('&', '&', $url);// Don't escape "&" in URLs here, it breaks some (older) browsers and js refresh! header("Refresh: $ref; URL=$url"); } echo "$H[meta_html]"; if(!empty($url)){ echo ""; + $ref*=1000; + echo ""; } if($class==='init'){ echo "$I[init]"; @@ -617,9 +614,6 @@ function send_setup(){ } echo ">$I[enabled]"; echo ''; - if($setting==='enablejs' && !extension_loaded('json')){ - echo "$I[jsonextrequired]"; - } echo ''; } thr(); @@ -1291,27 +1285,17 @@ function send_frameset(){ exit; } -function send_messages($js){ +function send_messages(){ global $H, $I, $U, $db, $language; - if(!$js){ - if($U['nocache']){ - $nocache='&nc='.substr(time(), -6); - }else{ - $nocache=''; - } - if(isSet($_COOKIE[COOKIENAME])){ - print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view$nocache"); - if(get_setting('enablejs')==1 && extension_loaded('json')){ - echo ""; - } - }else{ - print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language$nocache"); - if(get_setting('enablejs')==1 && extension_loaded('json')){ - echo ""; - } - } + if($U['nocache']){ + $nocache='&nc='.substr(time(), -6); }else{ - print_start('messages'); + $nocache=''; + } + if(isSet($_COOKIE[COOKIENAME])){ + print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view$nocache"); + }else{ + print_start('messages', $U['refresh'], "$_SERVER[SCRIPT_NAME]?action=view&session=$U[session]&lang=$language$nocache"); } echo '
'; echo ''; @@ -1331,9 +1315,6 @@ function send_messages($js){ } print_messages(); echo '
'; - if($js){ - echo ""; - } echo "$I[top]"; echo ''; print_end(); @@ -1386,21 +1367,6 @@ function send_inbox(){ print_end(); } -function send_jsrefresh(){ - global $I; - if(!extension_loaded('json')){ - send_fatal_error($I['jsonextrequired']); - } - check_session(); - ob_start(); - print_messages(); - $msgs=ob_get_clean(); - ob_start(); - print_chatters(); - $chatters=ob_get_clean(); - echo json_encode(array($_REQUEST['id'], $msgs, $chatters, get_setting('topic'))); -} - function send_notes($type){ global $H, $I, $U, $db; print_start('notes'); @@ -3385,7 +3351,7 @@ function init_chat(){ $db->exec('CREATE INDEX ' . PREFIX . 'incognito ON ' . PREFIX . 'sessions(incognito);'); $db->exec('CREATE TABLE ' . PREFIX . "settings (setting varchar(50) NOT NULL PRIMARY KEY, value varchar(20000) NOT NULL);"); } - $settings=array(array('guestaccess', '0'), array('globalpass', ''), array('englobalpass', '0'), array('captcha', '0'), array('dateformat', 'm-d H:i:s'), array('rulestxt', ''), array('msgencrypted', '0'), array('dbversion', DBVERSION), array('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;}'), array('memberexpire', '60'), array('guestexpire', '15'), array('kickpenalty', '10'), array('entrywait', '120'), array('messageexpire', '14400'), array('messagelimit', '150'), array('maxmessage', 2000), array('captchatime', '600'), array('colbg', '000000'), array('coltxt', 'FFFFFF'), array('maxname', '20'), array('minpass', '5'), array('defaultrefresh', '20'), array('dismemcaptcha', '0'), array('suguests', '0'), array('imgembed', '1'), array('timestamps', '1'), array('trackip', '0'), array('captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), array('memkick', '1'), array('forceredirect', '0'), array('redirect', ''), array('incognito', '1'), array('enablejs', '0'), array('chatname', 'My Chat'), array('topic', ''), array('msgsendall', $I['sendallmsg']), array('msgsendmem', $I['sendmemmsg']), array('msgsendmod', $I['sendmodmsg']), array('msgsendadm', $I['sendadmmsg']), array('msgsendprv', $I['sendprvmsg']), array('msgenter', $I['entermsg']), array('msgexit', $I['exitmsg']), array('msgmemreg', $I['memregmsg']), array('msgsureg', $I['suregmsg']), array('msgkick', $I['kickmsg']), array('msgmultikick', $I['multikickmsg']), array('msgallkick', $I['allkickmsg']), array('msgclean', $I['cleanmsg']), array('numnotes', '3'), array('keeplimit', '3'), array('mailsender', 'www-data '), array('mailreceiver', 'Webmaster '), array('sendmail', '0'), array('modfallback', '1'), array('guestreg', '0'), array('disablepm', '0'), array('disabletext', "

$I[disabledtext]

"), array('defaulttz', '0'), array('eninbox', '0')); + $settings=array(array('guestaccess', '0'), array('globalpass', ''), array('englobalpass', '0'), array('captcha', '0'), array('dateformat', 'm-d H:i:s'), array('rulestxt', ''), array('msgencrypted', '0'), array('dbversion', DBVERSION), array('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;}'), array('memberexpire', '60'), array('guestexpire', '15'), array('kickpenalty', '10'), array('entrywait', '120'), array('messageexpire', '14400'), array('messagelimit', '150'), array('maxmessage', 2000), array('captchatime', '600'), array('colbg', '000000'), array('coltxt', 'FFFFFF'), array('maxname', '20'), array('minpass', '5'), array('defaultrefresh', '20'), array('dismemcaptcha', '0'), array('suguests', '0'), array('imgembed', '1'), array('timestamps', '1'), array('trackip', '0'), array('captchachars', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), array('memkick', '1'), array('forceredirect', '0'), array('redirect', ''), array('incognito', '1'), array('chatname', 'My Chat'), array('topic', ''), array('msgsendall', $I['sendallmsg']), array('msgsendmem', $I['sendmemmsg']), array('msgsendmod', $I['sendmodmsg']), array('msgsendadm', $I['sendadmmsg']), array('msgsendprv', $I['sendprvmsg']), array('msgenter', $I['entermsg']), array('msgexit', $I['exitmsg']), array('msgmemreg', $I['memregmsg']), array('msgsureg', $I['suregmsg']), array('msgkick', $I['kickmsg']), array('msgmultikick', $I['multikickmsg']), array('msgallkick', $I['allkickmsg']), array('msgclean', $I['cleanmsg']), array('numnotes', '3'), array('keeplimit', '3'), array('mailsender', 'www-data '), array('mailreceiver', 'Webmaster '), array('sendmail', '0'), array('modfallback', '1'), array('guestreg', '0'), array('disablepm', '0'), array('disabletext', "

$I[disabledtext]

"), array('defaulttz', '0'), array('eninbox', '0')); $stmt=$db->prepare('INSERT INTO ' . PREFIX . 'settings (setting, value) VALUES (?, ?);'); foreach($settings as $pair){ $stmt->execute($pair); @@ -3501,7 +3467,7 @@ function update_db(){ $db->exec('ALTER TABLE ' . PREFIX . 'sessions ENGINE=MEMORY;'); $db->exec('ALTER TABLE ' . PREFIX . 'settings MODIFY id integer unsigned NOT NULL, MODIFY setting varchar(50) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL, MODIFY value varchar(20000) NOT NULL;'); $db->exec('ALTER TABLE ' . PREFIX . 'settings DROP PRIMARY KEY, DROP id, ADD PRIMARY KEY(setting);'); - $db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('enablejs', '0'), ('chatname', 'My Chat'), ('topic', ''), ('msgsendall', '$I[sendallmsg]'), ('msgsendmem', '$I[sendmemmsg]'), ('msgsendmod', '$I[sendmodmsg]'), ('msgsendadm', '$I[sendadmmsg]'), ('msgsendprv', '$I[sendprvmsg]'), ('numnotes', '3');"); + $db->exec('INSERT INTO ' . PREFIX . "settings (setting, value) VALUES ('chatname', 'My Chat'), ('topic', ''), ('msgsendall', '$I[sendallmsg]'), ('msgsendmem', '$I[sendmemmsg]'), ('msgsendmod', '$I[sendmodmsg]'), ('msgsendadm', '$I[sendadmmsg]'), ('msgsendprv', '$I[sendprvmsg]'), ('numnotes', '3');"); } if($dbversion<13){ $db->exec('ALTER TABLE ' . PREFIX . 'filter CHANGE `match` filtermatch varchar(255) NOT NULL, CHANGE `replace` filterreplace varchar(20000) NOT NULL;'); @@ -3557,6 +3523,12 @@ function update_db(){ if($dbversion<22){ $db->exec('CREATE INDEX ' . PREFIX . 'incognito ON ' . PREFIX . 'sessions(incognito);'); } + if($dbversion<23){ + $db->exec('DELETE FROM ' . PREFIX . "settings WHERE setting='enablejs';"); + if(MEMCACHED){ + $memcached->delete(DBNAME . '-' . PREFIX . "settings-enablejs"); + } + } update_setting('dbversion', DBVERSION); if(get_setting('msgencrypted')!=MSGENCRYPTED){ if(!extension_loaded('openssl')){ @@ -3745,8 +3717,8 @@ function load_lang(){ function load_config(){ date_default_timezone_set('UTC'); - define('VERSION', '1.19.1'); // Script version - define('DBVERSION', 22); // Database version + define('VERSION', '1.19.2'); // Script version + define('DBVERSION', 23); // Database 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('ENCRYPTKEY', 'MY_KEY'); // Encryption key for messages define('DBHOST', 'localhost'); // Database host diff --git a/lang_de.php b/lang_de.php index 8d63f7b..d4ef8f3 100644 --- a/lang_de.php +++ b/lang_de.php @@ -277,7 +277,6 @@ $T=array( 'restore' => 'Wiederherstellen', 'settings' => 'Einstellungen', 'linkfilter' => 'Linkfilter', - 'enablejs' => 'JavaScript für besseres Nachrichtenladen erlauben', 'chatname' => 'Chatname', 'destroy' => 'Chat zerstören', 'destroyed' => 'Chat erfolgreich zerstört', diff --git a/lang_en.php b/lang_en.php index 2913bed..d7971fd 100644 --- a/lang_en.php +++ b/lang_en.php @@ -277,7 +277,6 @@ $I=array( 'restore' => 'Restore', 'settings' => 'Settings', 'linkfilter' => 'Linkfilter', - 'enablejs' => 'Allow JavaScript for better message loading', 'chatname' => 'Chat name', 'destroy' => 'Destroy chat', 'destroyed' => 'Successfully destroyed chat', diff --git a/lang_es_AR.php b/lang_es_AR.php index 319c5f1..25f32f7 100644 --- a/lang_es_AR.php +++ b/lang_es_AR.php @@ -276,7 +276,6 @@ $T=array( 'restore' => 'Restablacer copia', 'settings' => 'Configuración', 'linkfilter' => 'Filtro de enlaces', - 'enablejs' => 'Permitir JavaScript para mejorar la carga de mensajes', 'chatname' => 'Nombre de la sala', 'destroy' => 'Destruir sala', 'destroyed' => 'Sala destruida satisfactoriamente', diff --git a/lang_es_ES.php b/lang_es_ES.php index 95a43ea..ff43832 100644 --- a/lang_es_ES.php +++ b/lang_es_ES.php @@ -276,7 +276,6 @@ $T=array( 'restore' => 'Restaurar', 'settings' => 'Preferencias', 'linkfilter' => 'Filtro de enlaces', - 'enablejs' => 'Permitir JavaScript para mejorar la carga de mensajes', 'chatname' => 'Nombre de la sala', 'destroy' => 'Destruir sala', 'destroyed' => 'Sala destruida satisfactoriamente', diff --git a/lang_fr.php b/lang_fr.php index f98916e..46979fa 100644 --- a/lang_fr.php +++ b/lang_fr.php @@ -276,7 +276,6 @@ $T=array( 'restore' => 'Récupérer', 'settings' => 'Paramètres', 'linkfilter' => 'Lien filtré', - 'enablejs' => 'Autoriser JavaScript permet un meilleur chargement des messages ', 'chatname' => 'Nom du chat', 'destroy' => 'Destruction du chat', 'destroyed' => 'Chat supprimé', diff --git a/lang_id.php b/lang_id.php index 762a089..674cacb 100644 --- a/lang_id.php +++ b/lang_id.php @@ -276,7 +276,6 @@ $T=array( 'restore' => 'Pulihkan', 'settings' => 'Pengaturan', 'linkfilter' => 'penyaring-tautan', - 'enablejs' => 'Izinkan javascript agar pemuatan pesan lebih baik', 'chatname' => 'Nama obrolan', 'destroy' => 'Musnahkan obrolan', 'destroyed' => 'Berhasil memusnahkan obrolan',