diff --git a/upload/configs/blocks/banner.php b/upload/configs/blocks/banner.php index e242214..b9dbd99 100644 --- a/upload/configs/blocks/banner.php +++ b/upload/configs/blocks/banner.php @@ -9,7 +9,7 @@ 'EMAIL' => 'admin@qexy.org', 'VERSION' => '1.0', 'UPDATES' => true, - 'UPDATER' => 'http://update.webmcr.com/?do=blocks&op=banner', + 'UPDATER' => 'http://update.webmcr.com/?do=blocks&op=banner', 'PERMISSIONS' => 'block_banner', ); ?> \ No newline at end of file diff --git a/upload/configs/blocks/monitor.php b/upload/configs/blocks/monitor.php index e2077bc..a22de34 100644 --- a/upload/configs/blocks/monitor.php +++ b/upload/configs/blocks/monitor.php @@ -9,7 +9,7 @@ 'EMAIL' => 'admin@qexy.org', 'VERSION' => '1.0', 'UPDATES' => true, - 'UPDATER' => 'http://update.webmcr.com/?do=blocks&op=monitor', + 'UPDATER' => 'http://update.webmcr.com/?do=blocks&op=monitor', 'PERMISSIONS' => 'sys_monitoring', ); ?> \ No newline at end of file diff --git a/upload/configs/mail.php b/upload/configs/mail.php index 27c850d..93bc0ab 100644 --- a/upload/configs/mail.php +++ b/upload/configs/mail.php @@ -9,5 +9,6 @@ 'smtp_host' => 'smtp.site.ru', 'smtp_user' => 'admin@site.ru', 'smtp_pass' => '', + 'smtp_tls' => false, ); ?> \ No newline at end of file diff --git a/upload/configs/main.php b/upload/configs/main.php index f9bb0a2..69b9d7d 100644 --- a/upload/configs/main.php +++ b/upload/configs/main.php @@ -23,5 +23,6 @@ 'skin_path' => 'uploads/skins/', 'cloak_path' => 'uploads/cloaks/', 'hd_cloaks' => false, + 's_client' => 'index.php?mode=start', ); ?> \ No newline at end of file diff --git a/upload/engine/core.class.php b/upload/engine/core.class.php index 486428b..d9740e9 100644 --- a/upload/engine/core.class.php +++ b/upload/engine/core.class.php @@ -23,6 +23,9 @@ public function __construct(){ + // Load filter function + require(MCR_TOOL_PATH.'filter.class.php'); + // Load class cfg require(MCR_TOOL_PATH.'config.class.php'); @@ -69,6 +72,7 @@ define('BASE_URL', $base_url); define('ADMIN_MOD', 'mode=admin'); define('ADMIN_URL', BASE_URL.'?'.ADMIN_MOD); + define('MOD_URL', (isset($_GET['mode'])) ? BASE_URL.'?mode='.filter($_GET['mode'], 'chars') : BASE_URL.'?mode='.$this->cfg->main['s_dpage']); define('STYLE_URL', BASE_URL.'themes/'.$this->cfg->main['s_theme'].'/'); define('UPLOAD_URL', BASE_URL.'uploads/'); define('SKIN_URL', BASE_URL.$this->cfg->main['skin_path']); @@ -817,9 +821,8 @@ } public function safestr($string=''){ - $string = trim(strip_tags($string)); - return $this->db->HSC($string); + return preg_replace("/[\<\>\"\'\`]+/i", "", $string); } public function filter_int_array($array){ @@ -869,6 +872,8 @@ $data['SEARCH_ELEMENTS'] = $this->search_array($type); + if(empty($data['SEARCH_ELEMENTS'])){ return; } + return $this->sp(MCR_THEME_MOD."search/form.html", $data); } diff --git a/upload/engine/filter.class.php b/upload/engine/filter.class.php new file mode 100644 index 0000000..da5654f --- /dev/null +++ b/upload/engine/filter.class.php @@ -0,0 +1,94 @@ +\<\{\\\}\%]+/i", "", $var); + break; + + + case 'num_array': + $new_array = array(); + + if(!is_array($var) || empty($array)){ return $new_array; } + + foreach($var as $key => $value){ $new_array[$key] = (@$opt['float']) ? floatval($value) : intval($value); } + + return $new_array; + break; + + + case 'more_than_zero': + if(is_array($var)){ + foreach($var as $key => $val){ + if(@$opt['float']){ + $var[$key] = (floatval($var)<=0) ? 1 : floatval($var); + }else{ + $var[$key] =(intval($var)<=0) ? 1 : intval($var); + } + } + + return $var; + }else{ + if(@$opt['float']){ + return (floatval($var)<=0) ? 1 : floatval($var); + }else{ + return (intval($var)<=0) ? 1 : intval($var); + } + } + break; + + default: return false; + } +} + +?> \ No newline at end of file diff --git a/upload/engine/menu.class.php b/upload/engine/menu.class.php index f8949ce..fbe42ce 100644 --- a/upload/engine/menu.class.php +++ b/upload/engine/menu.class.php @@ -17,18 +17,13 @@ ob_start(); foreach ($tree as $key=>$ar){ - $id = intval($ar['id']); - $parent = intval($ar['parent']); - - $url = $ar['url']; - - $active = ($this->is_active($url, $ar['sons'])) ? 'active' : ''; $data = array( "TITLE" => $ar['title'], - "URL" => $this->db->HSC($url), + "URL" => $this->db->HSC($ar['url']), + "STYLE" => $this->db->HSC($ar['style']), "TARGET" => $this->db->HSC($ar['target']), - "ACTIVE" => $active, + "ACTIVE" => ($this->is_active($ar['url'], $ar['sons'])) ? 'active' : '', "SUB_MENU" => (!empty($ar['sons'])) ? $this->generate_sub_menu($ar['sons']) : "", ); @@ -72,18 +67,12 @@ foreach ($tree as $key=>$ar){ - $id = intval($ar['id']); - $parent = intval($ar['parent']); - - $url = $ar['url']; - - $active = ($this->is_active($url, $ar['sons'])) ? 'active' : ''; - $data = array( "TITLE" => $ar['title'], - "URL" => $this->db->HSC($url), + "URL" => $this->db->HSC($ar['url']), + "STYLE" => $this->db->HSC($ar['style']), "TARGET" => $this->db->HSC($ar['target']), - "ACTIVE" => $active, + "ACTIVE" => ($this->is_active($ar['url'], $ar['sons'])) ? 'active' : '', "SUB_MENU" => (!empty($ar['sons'])) ? $this->generate_sub_menu($ar['sons']) : "", ); @@ -127,7 +116,7 @@ private function menu_array(){ - $query = $this->db->query("SELECT id, title, `parent`, `url`, `target`, `permissions` + $query = $this->db->query("SELECT id, title, `parent`, `url`, `style`, `target`, `permissions` FROM `mcr_menu` ORDER BY `parent` DESC"); @@ -144,6 +133,7 @@ "title" => $ar['title'], "parent" => $ar['parent'], "url" => $ar['url'], + "style" => $ar['style'], "target" => $ar['target'], "permissions" => $ar['permissions'] ); diff --git a/upload/engine/monitoring/MineToolsAPIPing.php b/upload/engine/monitoring/MineToolsAPIPing.php index c2163bc..dc3b0fe 100644 --- a/upload/engine/monitoring/MineToolsAPIPing.php +++ b/upload/engine/monitoring/MineToolsAPIPing.php @@ -40,7 +40,7 @@ $this->slots = intval(@$array['players']['max']); - $this->motd = $array['description']; + $this->motd = @$array['description']; return true; } diff --git a/upload/engine/monitoring/MineToolsAPIQuery.php b/upload/engine/monitoring/MineToolsAPIQuery.php index 2a10f93..f2aa09d 100644 --- a/upload/engine/monitoring/MineToolsAPIQuery.php +++ b/upload/engine/monitoring/MineToolsAPIQuery.php @@ -45,7 +45,7 @@ $this->plugins = @implode(', ', @$array['Plugins']); - $this->map = $array['Map']; + $this->map = @$array['Map']; return true; } diff --git a/upload/engine/monitoring/XPawQuery.php b/upload/engine/monitoring/XPawQuery.php index d2dbbbf..a0a13fe 100644 --- a/upload/engine/monitoring/XPawQuery.php +++ b/upload/engine/monitoring/XPawQuery.php @@ -45,7 +45,9 @@ $this->status = 1; - $this->motd = $array['HostName']; + $this->motd = @$array['HostName']; + + $this->map = @$array['Map']; $this->version = @$array['Version']; diff --git a/upload/install/step_3.php b/upload/install/step_3.php index 5385180..e3e3b38 100644 --- a/upload/install/step_3.php +++ b/upload/install/step_3.php @@ -93,6 +93,8 @@ '~us~', '~us_id~', '~us_gid~', '~us_login~', '~us_email~', '~us_pass~', '~us_uuid~', '~us_salt~', '~us_tmp~', '~us_is_skin~', '~us_is_cloak~', '~us_ip_create~', '~us_ip_last~', '~us_color~', '~us_date_reg~', '~us_date_last~', '~us_fname~', '~us_lname~', '~us_gender~', '~us_bday~', '~us_ban_server~', + + '~base_url~', ); $replace = array( @@ -107,6 +109,8 @@ $this->cfg->tabname('users'), $us_f['id'], $us_f['group'], $us_f['login'], $us_f['email'], $us_f['pass'], $us_f['uuid'], $us_f['salt'], $us_f['tmp'], $us_f['is_skin'], $us_f['is_cloak'], $us_f['ip_create'], $us_f['ip_last'], $us_f['color'], $us_f['date_reg'], $us_f['date_last'], $us_f['fname'], $us_f['lname'], $us_f['gender'], $us_f['bday'], $us_f['ban_server'], + + BASE_URL, ); foreach($tables as $key => $value){ diff --git a/upload/install/tables.sql b/upload/install/tables.sql index f9c18e3..145b84d 100644 --- a/upload/install/tables.sql +++ b/upload/install/tables.sql @@ -62,6 +62,7 @@ `url` varchar(255) NOT NULL DEFAULT '', `target` varchar(10) CHARACTER SET latin1 NOT NULL DEFAULT '_self', `permissions` varchar(255) NOT NULL DEFAULT '', + `style` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; #line @@ -75,8 +76,8 @@ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; #line INSERT INTO `mcr_menu` (`id`, `title`, `parent`, `url`, `target`, `permissions`) VALUES -(1, 'Главная', 0, '/', '_self', 'sys_share'), -(2, 'ПУ', 0, '/?mode=admin', '_self', 'sys_adm_main'); +(1, 'Главная', 0, '~base_url~', '_self', 'sys_share'), +(2, 'ПУ', 0, '~base_url~?mode=admin', '_self', 'sys_adm_main'); #line CREATE TABLE IF NOT EXISTS `mcr_menu_adm` ( `id` int(10) NOT NULL AUTO_INCREMENT, @@ -93,25 +94,25 @@ ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ; #line INSERT INTO `mcr_menu_adm` (`id`, `gid`, `title`, `text`, `url`, `target`, `access`, `priority`, `icon`) VALUES -(1, 1, 'Информация', 'Информация и статистика движка', '/?mode=admin&do=info', '_self', 'sys_adm_m_i_info', 1, 8), -(2, 2, 'Новости', 'Управление списком новостей', '/?mode=admin&do=news', '_self', 'sys_adm_m_i_news', 1, 2), -(3, 2, 'Категории', 'Управление категориями новостей', '/?mode=admin&do=news_cats', '_self', 'sys_adm_m_i_news_cats', 2, 10), -(4, 2, 'Комментарии', 'Управление комментариями новостей', '/?mode=admin&do=comments', '_self', 'sys_adm_m_i_comments', 3, 13), -(5, 2, 'Просмотры', 'Управление просмотрами новостей', '/?mode=admin&do=news_views', '_self', 'sys_adm_m_i_news_views', 4, 14), -(6, 2, 'Голоса', 'Управление голосами новостей', '/?mode=admin&do=news_votes', '_self', 'sys_adm_m_i_news_votes', 5, 9), -(7, 3, 'Пользователи', 'Изменение пользователей', '/?mode=admin&do=users', '_self', 'sys_adm_m_i_users', 1, 5), -(8, 3, 'Группы', 'Управление группами пользователей и их привилегиями', '/?mode=admin&do=groups', '_self', 'sys_adm_m_i_groups', 2, 15), -(9, 3, 'Привилегии', 'Управление доступными привилегиями', '/?mode=admin&do=permissions', '_self', 'sys_adm_m_i_permissions', 3, 17), -(10, 4, 'Меню сайта', 'Управление пунктами основного меню', '/?mode=admin&do=menu', '_self', 'sys_adm_m_i_menu', 1, 7), -(11, 4, 'Меню ПУ', 'Управление пунктами меню панели управления', '/?mode=admin&do=menu_adm', '_self', 'sys_adm_m_i_menu_adm', 2, 24), -(12, 4, 'Группы меню ПУ', 'Управление группами меню панели управления', '/?mode=admin&do=menu_groups', '_self', 'sys_adm_m_i_menu_groups_adm', 3, 11), -(13, 4, 'Иконки', 'Управление иконками пунктов меню панели управления', '/?mode=admin&do=menu_icons', '_self', 'sys_adm_m_i_icons', 4, 19), -(14, 1, 'Статические страницы', 'Управление статическими страницами ', '/?mode=admin&do=statics', '_self', 'sys_adm_m_i_statics', 2, 20), -(15, 5, 'Настройки сайта', 'Основные настройки сайта', '/?mode=admin&do=settings', '_self', 'sys_adm_m_i_settings', 1, 6), -(16, 1, 'Мониторинг серверов', 'Управление серверами мониторинга', '/?mode=admin&do=monitoring', '_self', 'sys_adm_m_i_monitor', 3, 21), -(17, 1, 'Модули', 'Управление модулями', '/?mode=admin&do=modules', '_self', 'sys_adm_m_i_modules', 4, 22), -(18, 1, 'Лог действий', 'Журнал действий пользователей', '/?mode=admin&do=logs', '_self', 'sys_adm_m_i_logs', 5, 23), -(19, 1, 'Блоки', 'Управление Блоками', '/?mode=admin&do=blocks', '_self', 'sys_adm_m_i_blocks', 6, 18); +(1, 1, 'Информация', 'Информация и статистика движка', '~base_url~?mode=admin&do=info', '_self', 'sys_adm_m_i_info', 1, 8), +(2, 2, 'Новости', 'Управление списком новостей', '~base_url~?mode=admin&do=news', '_self', 'sys_adm_m_i_news', 1, 2), +(3, 2, 'Категории', 'Управление категориями новостей', '~base_url~?mode=admin&do=news_cats', '_self', 'sys_adm_m_i_news_cats', 2, 10), +(4, 2, 'Комментарии', 'Управление комментариями новостей', '~base_url~?mode=admin&do=comments', '_self', 'sys_adm_m_i_comments', 3, 13), +(5, 2, 'Просмотры', 'Управление просмотрами новостей', '~base_url~?mode=admin&do=news_views', '_self', 'sys_adm_m_i_news_views', 4, 14), +(6, 2, 'Голоса', 'Управление голосами новостей', '~base_url~?mode=admin&do=news_votes', '_self', 'sys_adm_m_i_news_votes', 5, 9), +(7, 3, 'Пользователи', 'Изменение пользователей', '~base_url~?mode=admin&do=users', '_self', 'sys_adm_m_i_users', 1, 5), +(8, 3, 'Группы', 'Управление группами пользователей и их привилегиями', '~base_url~?mode=admin&do=groups', '_self', 'sys_adm_m_i_groups', 2, 15), +(9, 3, 'Привилегии', 'Управление доступными привилегиями', '~base_url~?mode=admin&do=permissions', '_self', 'sys_adm_m_i_permissions', 3, 17), +(10, 4, 'Меню сайта', 'Управление пунктами основного меню', '~base_url~?mode=admin&do=menu', '_self', 'sys_adm_m_i_menu', 1, 7), +(11, 4, 'Меню ПУ', 'Управление пунктами меню панели управления', '~base_url~?mode=admin&do=menu_adm', '_self', 'sys_adm_m_i_menu_adm', 2, 24), +(12, 4, 'Группы меню ПУ', 'Управление группами меню панели управления', '~base_url~?mode=admin&do=menu_groups', '_self', 'sys_adm_m_i_menu_groups_adm', 3, 11), +(13, 4, 'Иконки', 'Управление иконками пунктов меню панели управления', '~base_url~?mode=admin&do=menu_icons', '_self', 'sys_adm_m_i_icons', 4, 19), +(14, 1, 'Статические страницы', 'Управление статическими страницами ', '~base_url~?mode=admin&do=statics', '_self', 'sys_adm_m_i_statics', 2, 20), +(15, 5, 'Настройки сайта', 'Основные настройки сайта', '~base_url~?mode=admin&do=settings', '_self', 'sys_adm_m_i_settings', 1, 6), +(16, 1, 'Мониторинг серверов', 'Управление серверами мониторинга', '~base_url~?mode=admin&do=monitoring', '_self', 'sys_adm_m_i_monitor', 3, 21), +(17, 1, 'Модули', 'Управление модулями', '~base_url~?mode=admin&do=modules', '_self', 'sys_adm_m_i_modules', 4, 22), +(18, 1, 'Лог действий', 'Журнал действий пользователей', '~base_url~?mode=admin&do=logs', '_self', 'sys_adm_m_i_logs', 5, 23), +(19, 1, 'Блоки', 'Управление Блоками', '~base_url~?mode=admin&do=blocks', '_self', 'sys_adm_m_i_blocks', 6, 18); #line CREATE TABLE IF NOT EXISTS `mcr_menu_adm_groups` ( `id` int(10) NOT NULL AUTO_INCREMENT, diff --git a/upload/language/ru_RU/admin/menu.php b/upload/language/ru_RU/admin/menu.php index cf21be9..5270cb8 100644 --- a/upload/language/ru_RU/admin/menu.php +++ b/upload/language/ru_RU/admin/menu.php @@ -17,6 +17,7 @@ 'menu_edit_page_name' => 'Редактирование меню', 'menu_field_name' => 'Название', 'menu_field_link' => 'Ссылка', + 'menu_field_style' => 'Стилевой класс', 'menu_field_pos' => 'Позиция', 'menu_field_parent' => 'Родитель', 'menu_field_action' => 'Действие', diff --git a/upload/language/ru_RU/admin/settings.php b/upload/language/ru_RU/admin/settings.php index a0c25ea..ced8e4f 100644 --- a/upload/language/ru_RU/admin/settings.php +++ b/upload/language/ru_RU/admin/settings.php @@ -53,6 +53,7 @@ 'set_main_sitedesc' => 'Описание сайта', 'set_main_sitekeys' => 'Ключевые слова', 'set_main_start' => 'Начальная страница', + 'set_main_client' => 'Ссылка на страницу с клиентом игры', 'set_main_theme' => 'Шаблон', 'set_main_log' => 'Лог ошибок', 'set_main_debug' => 'Отладка', diff --git a/upload/language/ru_RU/close.php b/upload/language/ru_RU/close.php index 71063fd..de47c2f 100644 --- a/upload/language/ru_RU/close.php +++ b/upload/language/ru_RU/close.php @@ -5,6 +5,7 @@ 'enter' => 'Войти', 'auth' => 'Авторизация', 'remember' => 'Запомнить меня', + 'desc' => 'На сайте ведутся технические работы. Вход только для администрации.', 'time_for1' => 'Доступ на сайт закрыт на неопределенный срок', 'time_for2' => 'Доступ на сайт закрыт до', ); diff --git a/upload/modules/admin/menu.class.php b/upload/modules/admin/menu.class.php index 33994fa..44321d2 100644 --- a/upload/modules/admin/menu.class.php +++ b/upload/modules/admin/menu.class.php @@ -153,6 +153,7 @@ if($_SERVER['REQUEST_METHOD']=='POST'){ $title = $this->db->safesql(@$_POST['title']); $url = $this->db->safesql(@$_POST['url']); + $style = preg_replace("/[^\w\-]+/i", "", @$_POST['style']); $parent = intval(@$_POST['parent']); $target = (@$_POST['target']=="_blank") ? "_blank" : "_self"; $permissions = $this->db->safesql(@$_POST['permissions']); @@ -160,9 +161,9 @@ if(!$this->core->validate_perm($permissions)){ $this->core->notify($this->core->lng["e_msg"], $this->lng['menu_perm_not_exist'], 2, '?mode=admin&do=menu'); } $insert = $this->db->query("INSERT INTO `mcr_menu` - (title, `parent`, `url`, `target`, `permissions`) + (title, `parent`, `url`, `style`, `target`, `permissions`) VALUES - ('$title', '$parent', '$url', '$target', '$permissions')"); + ('$title', '$parent', '$url', '$style', '$target', '$permissions')"); if(!$insert){ $this->core->notify($this->core->lng["e_msg"], $this->core->lng["e_sql_critical"], 2, '?mode=admin&do=menu'); } @@ -181,6 +182,7 @@ "PAGE" => $this->lng['menu_add_page_name'], "TITLE" => '', "URL" => '', + "STYLE" => '', "PERMISSIONS" => $this->core->perm_list(), "PARENTS" => $this->parents(), "TARGET" => '', @@ -195,7 +197,7 @@ $id = intval($_GET['id']); - $query = $this->db->query("SELECT title, `parent`, `url`, `target`, permissions + $query = $this->db->query("SELECT title, `parent`, `url`, `style`, `target`, permissions FROM `mcr_menu` WHERE id='$id'"); @@ -214,6 +216,7 @@ if($_SERVER['REQUEST_METHOD']=='POST'){ $title = $this->db->safesql(@$_POST['title']); $url = $this->db->safesql(@$_POST['url']); + $style = preg_replace("/[^\w\-]+/i", "", @$_POST['style']); $parent = intval(@$_POST['parent']); $target = (@$_POST['target']=="_blank") ? "_blank" : "_self"; $permissions = $this->db->safesql(@$_POST['permissions']); @@ -222,7 +225,7 @@ $update = $this->db->query("UPDATE `mcr_menu` - SET title='$title', `parent`='$parent', `url`='$url', `target`='$target', `permissions`='$permissions' + SET title='$title', `parent`='$parent', `url`='$url', `style`='$style', `target`='$target', `permissions`='$permissions' WHERE id='$id'"); if(!$update){ $this->core->notify($this->core->lng["e_msg"], $this->core->lng["e_sql_critical"], 2, '?mode=admin&do=menu&op=edit&id='.$id); } @@ -240,6 +243,7 @@ "PAGE" => $this->lng['menu_edit_page_name'], "TITLE" => $this->db->HSC($ar['title']), "URL" => $this->db->HSC($ar['url']), + "STYLE" => $this->db->HSC($ar['style']), "PERMISSIONS" => $this->core->perm_list($ar['permissions']), "PARENTS" => $this->parents($ar['parent'], $id), "TARGET" => ($ar['target']=='_blank') ? 'selected' : '', diff --git a/upload/modules/admin/settings.class.php b/upload/modules/admin/settings.class.php index 8f4c227..2154567 100644 --- a/upload/modules/admin/settings.class.php +++ b/upload/modules/admin/settings.class.php @@ -118,6 +118,8 @@ $cfg['s_dpage'] = $this->core->safestr(@$_POST['s_dpage']); + $cfg['s_client'] = $this->core->safestr(@$_POST['s_client']); + $s_theme = $this->core->safestr(@$_POST['s_theme']); if(!$this->is_theme_exist($s_theme)){ $this->core->notify($this->core->lng["e_msg"], $this->lng['set_theme_incorrect'], 2, '?mode=admin&do=settings'); } $cfg['s_theme'] = $s_theme; diff --git a/upload/modules/ajax/ac_users.php b/upload/modules/ajax/ac_users.php new file mode 100644 index 0000000..50462ff --- /dev/null +++ b/upload/modules/ajax/ac_users.php @@ -0,0 +1,42 @@ +core = $core; + $this->db = $core->db; + $this->user = $core->user; + $this->cfg = $core->cfg; + $this->lng = $core->lng_m; + + if(!$this->user->is_auth || !$this->core->is_access('sys_share')){ $this->core->js_notify($this->core->lng['e_403']); } + } + + public function content(){ + + if($_SERVER['REQUEST_METHOD']!='POST'){ $this->core->js_notify($this->lng['e_method']); } + + $ctables = $this->cfg->db['tables']; + $us_f = $ctables['users']['fields']; + + $login = $this->db->safesql(urldecode(@$_POST['query'])); + + $query = $this->db->query("SELECT `{$us_f['login']}` FROM `{$this->cfg->tabname('users')}` WHERE `{$us_f['login']}` LIKE '%$login%' "); + + if(!$query || $this->db->num_rows($query)<=0){ $this->core->js_notify($this->lng['ok']); } + + $array = array(); + + while($ar = $this->db->fetch_assoc($query)){ + $array[] = $this->db->HSC($ar[$us_f['login']]); + } + + $this->core->js_notify($this->lng['ok'], $this->lng['ok'], true, $array); + } + +} + +?> \ No newline at end of file diff --git a/upload/modules/ajax/filemanager.php b/upload/modules/ajax/filemanager.php index 27cbb55..a554a64 100644 --- a/upload/modules/ajax/filemanager.php +++ b/upload/modules/ajax/filemanager.php @@ -195,8 +195,6 @@ if(!$update){ $this->core->js_notify($this->core->lng["e_sql_critical"]); } - //http://test16.ru/?mode=file&uniq=Y90HqwIeaYh0 - $data = array( 'link' => BASE_URL.'?mode=file&uniq='.$this->db->HSC(@$_POST['val']), 'uniq' => $this->db->HSC(@$_POST['val']), diff --git a/upload/modules/banned.php b/upload/modules/banned.php new file mode 100644 index 0000000..eaf2a85 --- /dev/null +++ b/upload/modules/banned.php @@ -0,0 +1,40 @@ +core = $core; + $this->db = $core->db; + $this->cfg = $core->cfg; + $this->user = $core->user; + $this->lng = $core->lng_m; + + $bc = array( + $this->lng['mod_name'] => BASE_URL."?mode=banned" + ); + + $this->core->bc = $this->core->gen_bc($bc); + } + + public function content(){ + + $time = time(); + + if($this->user->is_banned===false){ $this->core->notify(); } + + $expire = date("d.m.Y - H:i:s", $this->user->is_banned); + + $data = array( + 'EXPIRE' => ($this->user->is_banned<=0) ? $this->lng['ban_forever'] : $this->lng['ban_expired'].' '.$expire, + ); + + echo $this->core->sp(MCR_THEME_MOD."banned/main.html", $data); + + exit; + } +} + +?> \ No newline at end of file diff --git a/upload/modules/news.php b/upload/modules/news.php index f47c7e0..3e3a7b2 100644 --- a/upload/modules/news.php +++ b/upload/modules/news.php @@ -271,7 +271,7 @@ $time = time(); - $uid = ($this->user->id<=0) ? -1 : $this->user->id; + $uid = ($this->user->id<=0) ? 1 : $this->user->id; $insert = $this->db->query("INSERT INTO `mcr_news_views` (nid, uid, ip, `time`) @@ -294,7 +294,10 @@ $id = intval($_GET['id']); $query = $this->db->query("SELECT `n`.id, `n`.cid, `n`.title, `n`.text_html, `n`.vote, `n`.discus, `n`.uid, `n`.`data`, `n`.`attach`, - `c`.title AS `category`, COUNT(DISTINCT `v`.id) AS `views`, COUNT(DISTINCT `l`.id) AS `likes`, COUNT(DISTINCT `d`.id) AS `dislikes` + `c`.title AS `category`, + COUNT(DISTINCT `v`.id) AS `views`, + COUNT(DISTINCT `l`.id) AS `likes`, + COUNT(DISTINCT `d`.id) AS `dislikes` FROM `mcr_news` AS `n` LEFT JOIN `mcr_news_cats` AS `c` ON `c`.id=`n`.cid @@ -304,15 +307,14 @@ ON `l`.nid=`n`.id AND `l`.`value`='1' LEFT JOIN `mcr_news_votes` AS `d` ON `d`.nid=`n`.id AND `d`.`value`='0' - WHERE `n`.id='$id'"); + WHERE `n`.id='$id' + GROUP BY `n`.`id`"); if(!$query || $this->db->num_rows($query)<=0){ $this->core->notify($this->core->lng['404'], $this->core->lng['t_404']); } $ar = $this->db->fetch_assoc($query); - if(is_null($ar['id'])){ $this->core->notify($this->core->lng['404'], $this->core->lng['t_404']); } - if(!isset($_SESSION['views-new-'.$id])){ $this->update_views($id); } diff --git a/upload/themes/default/global.html b/upload/themes/default/global.html index 92e3804..71c3a56 100644 --- a/upload/themes/default/global.html +++ b/upload/themes/default/global.html @@ -50,7 +50,7 @@
diff --git a/upload/themes/default/js/global.js b/upload/themes/default/js/global.js index b9e3281..3ee1665 100644 --- a/upload/themes/default/js/global.js +++ b/upload/themes/default/js/global.js @@ -8,16 +8,12 @@ loading: function(status){ if(status!==false){ - if(!$('#js-loader').hasClass('runclose') && !$('#js-loader').hasClass('runopen')){ - $('#js-loader').addClass('runopen').fadeIn(300, function(){ - $(this).removeClass('runopen'); - }); - } + if($('#js-loader').is(':hidden')){ $('#js-loader').fadeIn(500); } }else{ - $('#js-loader').addClass('runclose').fadeOut(300, function(){ - $(this).removeClass('runclose'); - }); + if($('#js-loader').is(':visible')){ $('#js-loader').fadeOut(500); } } + + return (status===false) ? false : true; }, /* @@ -152,55 +148,6 @@ // Получение информации о откртых и закрытых спойлерах spl_items: Cookies.getJSON('spl_items'), - // Инстализация мониторинга - init_monitoring: function(){ - - if($('.monitor-id').length<=0){ return; } - - var that = this; - - that.loading(); - - var formdata = new FormData(); - - formdata.append('mcr_secure', that.meta_data.secure); - - $.ajax({ - url: "index.php?mode=ajax&do=monitoring", - dataType: "json", - type: 'POST', - contentType: false, - processData: false, - data: formdata, - error: function(data){ - that.logger(data); - that.notify(lng.error, lng.e_monitor); - }, - - success: function(data){ - - if(!data._type){ return that.notify(data._title, data._message); } - - if(data._data.length<=0){ return that.loading(false); } - - $.each(data._data, function(key, ar){ - $('.monitor-id#'+ar.id+' .bar').css('width', ar.progress+'%'); - $('.monitor-id#'+ar.id+' .progress').removeClass('progress-info').removeClass('progress-danger'); - - if(ar.status==1){ - $('.monitor-id#'+ar.id+' .progress').addClass('progress-info'); - $('.monitor-id#'+ar.id+' .stats').text(ar.online+' / '+ar.slots); - }else{ - $('.monitor-id#'+ar.id+' .progress').addClass('progress-danger'); - $('.monitor-id#'+ar.id+' .stats').text(lng.offline); - } - }); - - that.loading(false); - } - }); - }, - init_filemanager: function(pge){ var that = this; @@ -280,9 +227,6 @@ $(function(){ $('input[type="file"].file-inputs').bootstrapFileInput(); - // Загрузка мониторинга - mcr.init_monitoring(); - // Загрузка файлового менеджера(если доступен) if($('.file-manager').length > 0){ mcr.init_filemanager(); } @@ -751,4 +695,55 @@ $('body').on('click', '.is_auth_user', function(){ if(!mcr.meta_data.is_auth){ mcr.notify(lng.error, lng.e_auth, false); return false; } }); + + function fd_ac_users(query){ + var formdata = new FormData(); + + formdata.append('mcr_secure', mcr.meta_data.secure); + formdata.append('query', query); + + return formdata; + } + + $('body').on('input', 'input[type="text"].ac_users', function(){ + + var that = $(this); + + var formdata = new FormData(); + + formdata.append('mcr_secure', mcr.meta_data.secure); + formdata.append('query', that.val()); + + that.typeahead({ + items: 10, + minLength: 2, + source: function(query, process){ + return $.ajax({ + url: "index.php?mode=ajax&do=ac_users", + dataType: 'json', + type: 'POST', + async: true, + cache: false, + contentType: false, + processData: false, + data: fd_ac_users(query), + error: function(data){ + mcr.logger(data); + mcr.notify(lng.error, 'warn'); + }, + + success: function(data){ + if(!data._type){ return; } + + process(data._data); + } + }); + }, + + matcher: function (param){ + return true; + } + }); + }); + }); \ No newline at end of file diff --git a/upload/themes/default/menu/menu-id-parented.html b/upload/themes/default/menu/menu-id-parented.html index 677fe46..aa4a8f0 100644 --- a/upload/themes/default/menu/menu-id-parented.html +++ b/upload/themes/default/menu/menu-id-parented.html @@ -1,4 +1,4 @@ -