1<?php 2/* 3 * e107 website system 4 * 5 * Copyright (C) 2008-2013 e107 Inc (e107.org) 6 * Released under the terms and conditions of the 7 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) 8 * 9 * Plugin - Chatbox 10 * 11 */ 12 13require_once("../../class2.php"); 14 15if (!e107::isInstalled('chatbox_menu') || !getperms("P")) 16{ 17 e107::redirect('admin'); 18 exit; 19} 20 21// include_lXXXan( e_PLUGIN."chatbox_menu/languages/".e_LANGUAGE."/admin_chatbox_menu.php"); 22 23e107::lan('chatbox_menu','admin_chatbox_menu'); 24 25 26require_once(e_ADMIN."auth.php"); 27require_once(e_HANDLER."userclass_class.php"); 28$mes = e107::getMessage(); 29$frm = e107::getForm(); 30 31if (isset($_POST['updatesettings'])) 32{ 33 $temp = array(); 34 $temp['chatbox_posts'] = vartrue($_POST['chatbox_posts'], 5); 35 $temp['cb_layer'] = intval($_POST['cb_layer']); 36 $temp['cb_layer_height'] = max(varset($_POST['cb_layer_height'], 200), 150); 37 $temp['cb_emote'] = intval($_POST['cb_emote']); 38 $temp['cb_mod'] = intval($_POST['cb_mod']); 39 $temp['cb_user_addon'] = intval($_POST['cb_user_addon']); 40 41 42 e107::getConfig('core')->setPref($temp)->save(false); 43 e107::getCache()->clear("nq_chatbox"); 44 45} 46 47 48if (isset($_POST['prune'])) 49{ 50 $chatbox_prune = intval($_POST['chatbox_prune']); 51 $prunetime = time() - $chatbox_prune; 52 53 $sql->delete("chatbox", "cb_datestamp < '{$prunetime}' "); 54 e107::getLog()->add('CHBLAN_02', $chatbox_prune.', '.$prunetime, E_LOG_INFORMATIVE, ''); 55 e107::getCache()->clear("nq_chatbox"); 56 $mes->addSuccess(LAN_AL_CHBLAN_02); 57} 58 59if (isset($_POST['recalculate'])) 60{ 61 $sql->update("user", "user_chats = 0"); 62 $qry = "SELECT u.user_id AS uid, count(c.cb_nick) AS count FROM #chatbox AS c 63 LEFT JOIN #user AS u ON SUBSTRING_INDEX(c.cb_nick,'.',1) = u.user_id 64 WHERE u.user_id > 0 65 GROUP BY uid"; 66 67 if ($sql->gen($qry)) 68 { 69 $ret = array(); 70 while($row = $sql -> fetch()) 71 { 72 $list[$row['uid']] = $row['count']; 73 } 74 } 75 76 foreach($list as $uid => $cnt) 77 { 78 $sql->update("user", "user_chats = '{$cnt}' WHERE user_id = '{$uid}'"); 79 } 80 81 e107::getLog()->add('CHBLAN_03','', E_LOG_INFORMATIVE, ''); 82 $mes->addSuccess(CHBLAN_33); 83} 84 85 86if(!isset($pref['cb_mod'])) 87{ 88 $pref['cb_mod'] = e_UC_ADMIN; 89} 90 91$text = " 92 <form method='post' action='".e_SELF."' id='cbform' > 93 <table class='table adminform'> 94 <colgroup> 95 <col class='col-label' /> 96 <col class='col-control' /> 97 </colgroup> 98 <tr> 99 <td>".CHBLAN_11.":</td> 100 <td>".$frm->select('chatbox_posts', array(5, 10, 15, 20, 25), $pref['chatbox_posts'],'useValues=1')."<span class='field-help'>".CHBLAN_12."</span></td> 101 </tr> 102 <tr> 103 <td>".CHBLAN_32.": </td> 104 <td>". r_userclass("cb_mod", $pref['cb_mod'], 'off', "nobody,main,admin, classes")."</td> 105 </tr> 106 <tr> 107 <td>".CHBLAN_36."</td> 108 <td>".$frm->radio('cb_layer', array(0 => CHBLAN_37, 1 => str_replace("[x]", $frm->number('cb_layer_height', $pref['cb_layer_height'], 3), CHBLAN_29), 2 => CHBLAN_38), $pref['cb_layer'], array('sep' => '<br />'))."</td> 109 </tr> 110 "; 111 112if($pref['smiley_activate']) 113{ 114 $text .= "<tr> 115 <td>".CHBLAN_31."?: </td> 116 <td>".$frm->radio_switch('cb_emote', $pref['cb_emote'])."</td> 117 </tr>"; 118} 119 120$text .= " 121 <tr> 122 <td>".CHBLAN_42."</td> 123 <td>".$frm->radio_switch('cb_user_addon', $pref['cb_user_addon'])."</td> 124 </tr> 125 <tr> 126 <td>".LAN_PRUNE.":</td> 127 <td class='form-inline'>".CHBLAN_23.$frm->select('chatbox_prune', array(86400 => CHBLAN_24, 604800 => CHBLAN_25, 2592000 => CHBLAN_26, 1 => CHBLAN_27), '', '', true).$frm->admin_button('prune', LAN_PRUNE, 'other')."<span class='field-help'>".CHBLAN_22."</span></td> 128 </tr> 129 <tr> 130 <td>".CHBLAN_34.":</td> 131 <td>".$frm->admin_button('recalculate', CHBLAN_35, 'other')."</td> 132 </tr> 133 </table> 134 135 <div class='buttons-bar center'> 136 ".$frm->admin_button('updatesettings', LAN_UPDATE, 'update')." 137 </div> 138 </form>"; 139 140$ns->tablerender(CHBLAN_20, $mes->render().$text); 141 142require_once(e_ADMIN."footer.php"); 143 144function admin_chatbox_adminmenu() 145{ 146 $mode = varset($_GET['mode'],'main'); 147 148 $var['main']['text'] = LAN_PREFS; 149 $var['main']['link'] = e_SELF; 150 151 $icon = e107::getParser()->toIcon(e_PLUGIN."chatbox_menu/images/chatbox_32.png"); 152 $caption = $icon."<span>".LAN_PLUGIN_CHATBOX_MENU_NAME."</span>"; 153 154 e107::getNav()->admin($caption, $mode, $var); 155} 156 157 158