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