diff --git a/upload/language/ru_RU/system.php b/upload/language/ru_RU/system.php index 0f545af..0e66af0 100644 --- a/upload/language/ru_RU/system.php +++ b/upload/language/ru_RU/system.php @@ -114,6 +114,9 @@ 'no' => 'Нет', 'save' => 'Сохранить', 'add' => 'Добавить', + 'edit' => 'Редактировать', + 'delete' => 'Удалить', + 'search' => 'Поиск', 'filemanager' => 'Файловый менеджер', 'filemanager_ph' => 'Выберите файлы или перенесите их сюда', diff --git a/upload/modules/admin.php b/upload/modules/admin.php index b362617..8ee6f1f 100644 --- a/upload/modules/admin.php +++ b/upload/modules/admin.php @@ -18,6 +18,8 @@ ); $this->core->bc = $this->core->gen_bc($bc); + + $this->core->header .= ''; } public function content(){ diff --git a/upload/modules/admin/comments.class.php b/upload/modules/admin/comments.class.php index c61b620..f9688dc 100644 --- a/upload/modules/admin/comments.class.php +++ b/upload/modules/admin/comments.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_comments'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_comments']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `c`.text_html LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `c`.id, `c`.nid, `c`.text_html, `n`.title AS `new` FROM `mcr_comments` AS `c` LEFT JOIN `mcr_news` AS `n` ON `n`.id=`c`.nid + $where ORDER BY `c`.id DESC LIMIT $start, $end"); @@ -61,14 +69,24 @@ private function comment_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_comments`"); + $sql = "SELECT COUNT(*) FROM `mcr_comments`"; + $page = "?mode=admin&do=comments&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_comments` WHERE text_html LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=comments&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_comments'], "?mode=admin&do=comments&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_comments'], $page, $ar[0]), "COMMENTS" => $this->comment_array() ); diff --git a/upload/modules/admin/groups.class.php b/upload/modules/admin/groups.class.php index 76ec588..10c2483 100644 --- a/upload/modules/admin/groups.class.php +++ b/upload/modules/admin/groups.class.php @@ -27,8 +27,16 @@ $start = $this->core->pagination($this->config->pagin['adm_groups'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_groups']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT id, title, description FROM `mcr_groups` + $where ORDER BY id DESC LIMIT $start, $end"); @@ -52,14 +60,24 @@ private function group_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_groups`"); + $sql = "SELECT COUNT(*) FROM `mcr_groups`"; + $page = "?mode=admin&do=groups&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_groups` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=groups&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_groups'], "?mode=admin&do=groups&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_groups'], $page, $ar[0]), "GROUPS" => $this->group_array() ); diff --git a/upload/modules/admin/logs.class.php b/upload/modules/admin/logs.class.php index 007b6a7..10999ab 100644 --- a/upload/modules/admin/logs.class.php +++ b/upload/modules/admin/logs.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_logs'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_logs']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `l`.`message` LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `l`.id, `l`.uid, `l`.`message`, `l`.`date`, `u`.login FROM `mcr_logs` AS `l` LEFT JOIN `mcr_users` AS `u` ON `u`.id=`l`.uid + $where ORDER BY `l`.id DESC LIMIT $start, $end"); @@ -55,12 +63,22 @@ private function logs_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_logs`"); + $sql = "SELECT COUNT(*) FROM `mcr_logs`"; + $page = "?mode=admin&do=logs&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_logs` WHERE `message` LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=logs&search=$search&pid="; + } + + $query = $this->db->query($sql); $ar = @$this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_logs'], "?mode=admin&do=logs&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_logs'], $page, $ar[0]), "LOGS" => $this->logs_array() ); diff --git a/upload/modules/admin/menu.class.php b/upload/modules/admin/menu.class.php index ce40f09..64c3123 100644 --- a/upload/modules/admin/menu.class.php +++ b/upload/modules/admin/menu.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_menu'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_menu']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `m`.title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `m`.id, `m`.title, `m`.`parent`, `m`.`url`, `m`.`target`, `p`.title AS `ptitle` FROM `mcr_menu` AS `m` LEFT JOIN `mcr_menu` AS `p` ON `p`.id=`m`.`parent` + $where ORDER BY `m`.id ASC LIMIT $start, $end"); @@ -59,14 +67,24 @@ private function menu_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_menu`"); + $sql = "SELECT COUNT(*) FROM `mcr_menu`"; + $page = "?mode=admin&do=menu&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_menu` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=menu&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu'], "?mode=admin&do=menu&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu'], $page, $ar[0]), "MENU" => $this->menu_array() ); diff --git a/upload/modules/admin/menu_adm.class.php b/upload/modules/admin/menu_adm.class.php index c6fd2e9..ea4eaf7 100644 --- a/upload/modules/admin/menu_adm.class.php +++ b/upload/modules/admin/menu_adm.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_menu_adm'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_menu_adm']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `m`.title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `m`.id, `m`.gid, `m`.title, `m`.`url`, `m`.`target`, `g`.title AS `group` FROM `mcr_menu_adm` AS `m` LEFT JOIN `mcr_menu_adm_groups` AS `g` ON `g`.id=`m`.gid + $where ORDER BY `m`.`priority` ASC LIMIT $start, $end"); @@ -57,12 +65,22 @@ private function menu_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_menu_adm`"); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm`"; + $page = "?mode=admin&do=menu_adm&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=menu_adm&search=$search&pid="; + } + + $query = $this->db->query($sql); $ar = @$this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_adm'], "?mode=admin&do=menu_adm&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_adm'], $page, $ar[0]), "MENU" => $this->menu_array() ); diff --git a/upload/modules/admin/menu_groups.class.php b/upload/modules/admin/menu_groups.class.php index e8836f8..374f7dd 100644 --- a/upload/modules/admin/menu_groups.class.php +++ b/upload/modules/admin/menu_groups.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_menu_groups'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_menu_groups']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `g`.title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `g`.id, `g`.title, `g`.`text`, `p`.id AS `pid`, `p`.`title` AS `perm` FROM `mcr_menu_adm_groups` AS `g` LEFT JOIN `mcr_permissions` AS `p` ON `p`.`value`=`g`.`access` + $where ORDER BY `g`.`priority` ASC LIMIT $start, $end"); @@ -56,14 +64,24 @@ private function group_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_menu_adm_groups`"); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm_groups`"; + $page = "?mode=admin&do=menu_groups&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm_groups` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=menu_groups&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_groups'], "?mode=admin&do=menu_groups&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_groups'], $page, $ar[0]), "GROUPS" => $this->group_array() ); diff --git a/upload/modules/admin/menu_icons.class.php b/upload/modules/admin/menu_icons.class.php index f4c29fe..9e9d6aa 100644 --- a/upload/modules/admin/menu_icons.class.php +++ b/upload/modules/admin/menu_icons.class.php @@ -27,8 +27,16 @@ $start = $this->core->pagination($this->config->pagin['adm_menu_icons'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_menu_icons']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT id, title, img FROM `mcr_menu_adm_icons` + $where ORDER BY id DESC LIMIT $start, $end"); @@ -52,14 +60,24 @@ private function icon_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_menu_adm_icons`"); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm_icons`"; + $page = "?mode=admin&do=menu_icons&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_menu_adm_icons` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=menu_icons&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_icons'], "?mode=admin&do=menu_icons&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_menu_icons'], $page, $ar[0]), "ICONS" => $this->icon_array() ); diff --git a/upload/modules/admin/monitoring.class.php b/upload/modules/admin/monitoring.class.php index aabec0e..13e97d4 100644 --- a/upload/modules/admin/monitoring.class.php +++ b/upload/modules/admin/monitoring.class.php @@ -27,8 +27,16 @@ $start = $this->core->pagination($this->config->pagin['adm_monitoring'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_monitoring']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT id, title, ip, `port` FROM `mcr_monitoring` + $where ORDER BY id DESC LIMIT $start, $end"); @@ -53,14 +61,24 @@ private function monitor_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_monitoring`"); + $sql = "SELECT COUNT(*) FROM `mcr_monitoring`"; + $page = "?mode=admin&do=monitoring&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_monitoring` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=monitoring&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_monitoring'], "?mode=admin&do=monitoring&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_monitoring'], $page, $ar[0]), "SERVERS" => $this->monitor_array() ); diff --git a/upload/modules/admin/news.class.php b/upload/modules/admin/news.class.php index 2339260..db6e81a 100644 --- a/upload/modules/admin/news.class.php +++ b/upload/modules/admin/news.class.php @@ -27,10 +27,18 @@ $start = $this->core->pagination($this->config->pagin['adm_news'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_news']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `n`.title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `n`.id, `n`.cid, `n`.title, `c`.title AS `category` FROM `mcr_news` AS `n` LEFT JOIN `mcr_news_cats` AS `c` ON `c`.id=`n`.cid + $where ORDER BY `n`.id DESC LIMIT $start, $end"); @@ -57,12 +65,22 @@ private function news_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_news`"); + $sql = "SELECT COUNT(*) FROM `mcr_news`"; + $page = "?mode=admin&do=news&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_news` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=news&search=$search&pid="; + } + + $query = $this->db->query($sql); $ar = @$this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_news'], "?mode=admin&do=news&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_news'], $page, $ar[0]), "NEWS" => $this->news_array() ); diff --git a/upload/modules/admin/news_cats.class.php b/upload/modules/admin/news_cats.class.php index 4aabe37..1c105dd 100644 --- a/upload/modules/admin/news_cats.class.php +++ b/upload/modules/admin/news_cats.class.php @@ -27,13 +27,19 @@ $start = $this->core->pagination($this->config->pagin['adm_news_cats'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_news_cats']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT id, title, `data` FROM `mcr_news_cats` + $where ORDER BY id DESC LIMIT $start, $end"); - - if(!$query || $this->db->num_rows($query)<=0){ return $this->core->sp(MCR_THEME_MOD."admin/news_cats/cat-none.html"); } ob_start(); @@ -54,14 +60,24 @@ private function cats_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_news_cats`"); + $sql = "SELECT COUNT(*) FROM `mcr_news_cats`"; + $page = "?mode=admin&do=news_cats&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_news_cats` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=news_cats&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_news_cats'], "?mode=admin&do=news_cats&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_news_cats'], $page, $ar[0]), "CATEGORIES" => $this->cats_array() ); diff --git a/upload/modules/admin/permissions.class.php b/upload/modules/admin/permissions.class.php index 8680b5c..9c39b54 100644 --- a/upload/modules/admin/permissions.class.php +++ b/upload/modules/admin/permissions.class.php @@ -27,8 +27,16 @@ $start = $this->core->pagination($this->config->pagin['adm_groups'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_groups']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT id, title, description, `value`, `system`, `data` FROM `mcr_permissions` + $where ORDER BY `value` ASC LIMIT $start, $end"); @@ -59,14 +67,24 @@ private function permissions_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_permissions`"); + $sql = "SELECT COUNT(*) FROM `mcr_permissions`"; + $page = "?mode=admin&do=permissions&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_permissions` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=permissions&search=$search&pid="; + } + + $query = $this->db->query($sql); if(!$query){ exit("SQL Error"); } $ar = $this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_groups'], "?mode=admin&do=permissions&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_groups'], $page, $ar[0]), "PERMISSIONS" => $this->permissions_array() ); diff --git a/upload/modules/admin/settings.class.php b/upload/modules/admin/settings.class.php index 09d692d..e33f716 100644 --- a/upload/modules/admin/settings.class.php +++ b/upload/modules/admin/settings.class.php @@ -194,7 +194,7 @@ $cfg = $this->to_int_keys($post); - if(!$this->config->savecfg($cfg, 'pagin.php', 'pagin')){ $this->core->notify($this->core->lng["e_msg"], "Не удалось сохранить файл конфигурации", 2, '?mode=admin&do=settings&op=pagin'); } + if(!$this->config->savecfg($cfg, 'pagin.php', 'pagin')){ $this->core->notify($this->core->lng["e_msg"], $this->lng['set_e_cfg_save'], 2, '?mode=admin&do=settings&op=pagin'); } // Последнее обновление пользователя $this->db->update_user($this->user); diff --git a/upload/modules/admin/statics.class.php b/upload/modules/admin/statics.class.php index 045b86b..4f09e28 100644 --- a/upload/modules/admin/statics.class.php +++ b/upload/modules/admin/statics.class.php @@ -27,11 +27,19 @@ $start = $this->core->pagination($this->config->pagin['adm_statics'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_statics']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $where = "WHERE `s`.title LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `s`.id, `s`.`uniq`, `s`.title, `s`.uid, `p`.title AS `perm` FROM `mcr_statics` AS `s` LEFT JOIN `mcr_permissions` AS `p` ON `p`.`value`=`s`.`permissions` + $where ORDER BY `s`.id DESC LIMIT $start, $end"); @@ -61,12 +69,22 @@ private function static_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_statics`"); + $sql = "SELECT COUNT(*) FROM `mcr_statics`"; + $page = "?mode=admin&do=statics&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + $sql = "SELECT COUNT(*) FROM `mcr_statics` WHERE title LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=statics&search=$search&pid="; + } + + $query = $this->db->query($sql); $ar = @$this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_statics'], "?mode=admin&do=statics&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_statics'], $page, $ar[0]), "STATICS" => $this->static_array() ); diff --git a/upload/modules/admin/users.class.php b/upload/modules/admin/users.class.php index f1f1652..dde0406 100644 --- a/upload/modules/admin/users.class.php +++ b/upload/modules/admin/users.class.php @@ -27,10 +27,20 @@ $start = $this->core->pagination($this->config->pagin['adm_users'], 0, 0); // Set start pagination $end = $this->config->pagin['adm_users']; // Set end pagination + $where = ""; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + if(preg_match("/[а-яА-ЯёЁ]+/iu", $search)){ $search = ""; } + $table = (preg_match("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/i", $search)) ? 'ip_last' : 'login'; + $where = "WHERE `u`.`$table` LIKE '%$search%'"; + } + $query = $this->db->query("SELECT `u`.id, `u`.gid, `u`.login, `u`.email, `g`.title AS `group`, `u`.ip_create, `u`.ip_last FROM `mcr_users` AS `u` LEFT JOIN `mcr_groups` AS `g` ON `g`.id=`u`.gid + $where ORDER BY `u`.login ASC LIMIT $start, $end"); @@ -58,12 +68,24 @@ private function user_list(){ - $query = $this->db->query("SELECT COUNT(*) FROM `mcr_users`"); + $sql = "SELECT COUNT(*) FROM `mcr_users`"; + $page = "?mode=admin&do=users&pid="; + + if(isset($_GET['search']) && !empty($_GET['search'])){ + $search = $this->db->safesql(urldecode($_GET['search'])); + if(preg_match("/[а-яА-ЯёЁ]+/iu", $search)){ $search = ""; } + $table = (preg_match("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/i", $search)) ? "ip_last" : "login"; + $sql = "SELECT COUNT(*) FROM `mcr_users` WHERE `$table` LIKE '%$search%'"; + $search = $this->db->HSC(urldecode($_GET['search'])); + $page = "?mode=admin&do=users&search=$search&pid="; + } + + $query = $this->db->query($sql); $ar = @$this->db->fetch_array($query); $data = array( - "PAGINATION" => $this->core->pagination($this->config->pagin['adm_users'], "?mode=admin&do=users&pid=", $ar[0]), + "PAGINATION" => $this->core->pagination($this->config->pagin['adm_users'], $page, $ar[0]), "USERS" => $this->user_array() ); @@ -212,14 +234,15 @@ $money = floatval(@$_POST['money']); $realmoney = floatval(@$_POST['realmoney']); + $time = time(); $new_data = array( - "time_create" => time(), - "time_last" => time(), + "time_create" => $time, + "time_last" => $time, "firstname" => $firstname, "lastname" => $lastname, "gender" => $gender, - "birthday" => $birthday + "birthday" => $birthday, ); $new_data = $this->db->safesql(json_encode($new_data)); diff --git a/upload/system.php b/upload/system.php index 9fd84ee..8dc9a7a 100644 --- a/upload/system.php +++ b/upload/system.php @@ -8,7 +8,7 @@ // System constants define('PROGNAME', 'WebMCR Reloaded'. MCR); -define('VERSION', 'WebMCR Beta 1.1'); +define('VERSION', 'WebMCR Beta 1.2'); define('FEEDBACK', ''.PROGNAME.' © 2013-'.date("Y").' Qexy'); define('MCR_ROOT', dirname(__FILE__).'/'); define('MCR_MODE_PATH', MCR_ROOT.'modules/'); diff --git a/upload/themes/default/js/admin/global.js b/upload/themes/default/js/admin/global.js new file mode 100644 index 0000000..5475d3c --- /dev/null +++ b/upload/themes/default/js/admin/global.js @@ -0,0 +1,27 @@ +$(function(){ + var search_param = mcr.getUrlParam('search'); + + if(search_param!=''){ + $($('.adm-search').attr('data-for')).val(search_param); + } + + $('body').on('click', '.adm-search', function(){ + + var elem = $(this).attr('data-for'); + + var val = $(elem).val(); + + if($.trim(val)==''){ mcr.changeUrlParam({search: false}); return false; } + + mcr.changeUrlParam({search: val, pid: false}); + + return false; + }); + + $('.adm-search-input').on('keydown', function(e){ + if(e.which == 13){ + $(".adm-search").trigger("click"); + return false; + } + }); +}); \ No newline at end of file diff --git a/upload/themes/default/js/global.js b/upload/themes/default/js/global.js index 996ed16..3ca1e3c 100644 --- a/upload/themes/default/js/global.js +++ b/upload/themes/default/js/global.js @@ -74,6 +74,50 @@ return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); }, + // Получение всех параметров из URL + getUrlParams: function(){ + var string = location.search.split('?')[1]; + + var result = {}; + + string = decodeURIComponent(string); + + if(string==undefined){ return result; } + + $.each(string.split('&'), function(key, val){ + expl = val.split('='); + + result[expl[0]] = expl[1]; + }); + + return result; + }, + + // Изменение параметра url + changeUrlParam: function(json){ + var get = this.getUrlParams(); + + $.each(json, function(key, value){ + console.log(key + '=' + value); + if(get[key]===undefined || value!==false){ get[key] = value; } + if(value===false && get[key]!==undefined){ delete get[key]; } + }); + + if(Object.keys(get).length<=0){ location.search = ''; return false; } + + var string = '?'; + + $.each(get, function(key, val){ + string = string+key+'='+val+'&'; + }); + + string = string.substring(0, string.length - 1); + + location.search = string; + + return true; + }, + /* * Результирующий запрос - запрос, возвращающий результат. * diff --git a/upload/themes/default/modules/admin/comments/com-list.html b/upload/themes/default/modules/admin/comments/com-list.html index 291042a..ec0db8e 100644 --- a/upload/themes/default/modules/admin/comments/com-list.html +++ b/upload/themes/default/modules/admin/comments/com-list.html @@ -26,8 +26,9 @@