rewrite some code of typos admin panel

parent f1e8c220
......@@ -22,7 +22,7 @@ class Authorization extends CI_Controller {
$this->data['auth_url'] = $this->config->base_url()."authorization/check";
$this->view_name = 'authorization/index';
$this->load->model('user');
$this->load->model('userHelper');
}
function index() {
......@@ -61,8 +61,8 @@ class Authorization extends CI_Controller {
}
}
$user_info = $this->user->getUser($username);
$password = $this->user->hashPassword($password);
$user_info = $this->userHelper->getUser($username);
$password = $this->userHelper->hashPassword($password);
echo var_dump($user_info);
......
......@@ -7,24 +7,32 @@ class Sites extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('admins/mdl_sites');
$this->login_id = $this->mdl_session->get_data('login_id');
$this->usertype = $this->mdl_session->get_data('usertype');
$this->load->model('admins/site');
$this->load->helper('menu');
$this->login_id = $this->session->login_id;
$this->usertype = $this->session->usertype;
if ($this->usertype != 'admin') {
redirect('users/typos');
}
$this->header_name = "header";
$this->view_name = "admins/sites";
$this->menu_name = "menus/menu";
$this->footer_name = "footer";
}
/*Создаем шаблон*/
function index() {
$views['body']['url'] = "admins/sites";
$data['items'] = menu_admin($this->config->base_url());
$data['base_url'] = $this->config->base_url();
$views['menu']['url'] = "menu";
$views['menu']['data']['items'] = $this->mdl_menu->admin();
$this->load->view($this->header_name, $data);
$this->load->view($this->menu_name, $data);
$this->load->view($this->view_name, $data);
$this->load->view($this->footer_name, $data);
$this->mdl_views->view($views);
return true;
}
......@@ -35,77 +43,79 @@ class Sites extends CI_Controller {
/*Получить сайты*/
function get_list_sites() {
$data['page'] = $this->mdl_post->int('page');
$data['limit'] = $this->mdl_post->int('rows', 1);
$data['sord'] = $this->mdl_post->string('sord');
$data['sidx'] = $this->mdl_post->string('sidx');
$data['search'] = $this->mdl_post->string('_search');
$data['searchField'] = $this->mdl_post->string('searchField');
$data['searchOper'] = $this->mdl_post->string('searchOper');
$data['searchString'] = $this->mdl_post->string('searchString');
$data['page'] = $this->input->get('page');
$data['limit'] = $this->input->get('rows', 1);
$data['sord'] = $this->input->get('sord');
$data['sidx'] = $this->input->get('sidx');
$data['search'] = $this->input->get('_search');
$data['searchField'] = $this->input->get('searchField');
$data['searchOper'] = $this->input->get('searchOper');
$data['searchString'] = $this->input->get('searchString');
$data['login_id'] = $this->login_id;
echo json_encode($this->mdl_sites->get_list_sites($data));
echo json_encode($this->site->getSites($data));
}
/*Получить пользователей по сайту*/
function get_list_users() {
$data['id_site'] = $this->mdl_post->int("id");
$data['page'] = $this->mdl_post->int('page');
$data['limit'] = $this->mdl_post->int('rows', 1);
$data['sord'] = $this->mdl_post->string('sord');
$data['sidx'] = $this->mdl_post->string('sidx');
$data['search'] = $this->mdl_post->string('_search');
$data['searchField'] = $this->mdl_post->string('searchField');
$data['searchOper'] = $this->mdl_post->string('searchOper');
$data['searchString'] = $this->mdl_post->string('searchString');
$data['id_site'] = $this->input->get("id");
$data['page'] = $this->input->get('page');
$data['limit'] = $this->input->get('rows', 1);
$data['sord'] = $this->input->get('sord');
$data['sidx'] = $this->input->get('sidx');
$data['search'] = $this->input->get('_search');
$data['searchField'] = $this->input->get('searchField');
$data['searchOper'] = $this->input->get('searchOper');
$data['searchString'] = $this->input->get('searchString');
$data['login_id'] = $this->login_id;
echo json_encode($this->mdl_sites->get_list_users($data));
echo json_encode($this->site->getSiteUsers($data));
}
/*Управление сайтами*/
function panel_sites() {
$oper = $this->mdl_post->string('oper');
if ($oper == 'add') {
$data['site'] = $this->mdl_post->string('site');
$oper = $this->input->post('oper');
log_message('error', "oper = $oper");
if ($oper == 'add') { // Добавление пользователя
$data['site'] = $this->input->post('site');
if ($data['site'] == '') {
echo json_encode(array('message' => 'Название сайта некорректно'));
} else {
$return = $this->mdl_sites->add_site($data);
$return = $this->site->addSite($data);
if ($return) {
echo json_encode($return);
}
}
return true;
} else if ($oper == 'edit') {
$data['id_site'] = $this->mdl_post->int('id');
$data['site'] = $this->mdl_post->string('site');
} else if ($oper == 'edit') { // Редактирование пользователя
$data['id_site'] = $this->input->post('id');
$data['site'] = $this->input->post('site');
if ($data['site'] == '') {
echo json_encode(array('message' => 'Название сайта некорректно'));
} else {
$return = $this->mdl_sites->edit_site($data);
$return = $this->site->updateSite($data);
if ($return) {
echo json_encode($return);
}
}
return true;
} else if ($oper == 'del') {
$data['id_site'] = $this->mdl_post->int('id');
if (!$this->mdl_sites->delete_site($data)) {
} else if ($oper == 'del') { // Удаление пользователя
$data['id_site'] = $this->input->post('id');
if (!$this->site->deleteSite($data)) {
echo json_encode(array('message' => 'Сайт нельзя удалить. Количество пользователей не равно 0'));
}
return true;
}
}
}
function panel_users() {
$oper = $this->mdl_post->string('oper');
$oper = $this->input->post('oper');
if ($oper == 'del') {
$this->load->model('admins/mdl_users');
$data['id_user'] = $this->mdl_post->int('id');
$data['id_site'] = $this->mdl_post->int('id_site');
$this->mdl_users->delete_responsible($data);
$this->load->model('admins/user');
$data['id_user'] = $this->input->get('id');
$data['id_site'] = $this->input->get('id_site');
$this->user->deleteResponsible($data);
}
}
}
......
......@@ -19,7 +19,13 @@
function searchString($field, $operator, $string) {
$s = " $field ";
error_log("SEARCH STRING($field, $operator, $string)");
log_message('debug', $field);
log_message('debug', $operator);
log_message('debug', $string);
if ( $field == "" ) {
return false;
}
switch ($operator) {
case 'eq':
......@@ -74,5 +80,7 @@ function searchString($field, $operator, $string) {
$s = "";
break;
}
log_message('debug', 'return ' . $s);
return $s;
}
\ No newline at end of file
......@@ -5,7 +5,7 @@
*
* @author george popoff <ambulance@etersoft.ru>
*/
class User extends CI_Model
class UserHelper extends CI_Model
{
/**
* Retrieve user by given username
......
<?php
/**
* Sites model
*
* @author <barbass@etersoft.ru>
* @author george popoff <ambulance@etersoft.ru>
*/
class Site extends CI_Model {
/*Получаем сайты*/
function getSites($data) {
return $this->filterResults('sites', $data);
}
/*Получаем пользователей по сайту*/
function getSiteUsers($data) {
return $this->filterResults('users', $data);
}
private function filterResults($table, $data) {
log_message('error', "data = " . print_r($data, true));
$this->load->helper("search");
$id_site = isset($data['id_site']) ? $data['id_site'] : 0;
$page = $data['page'];
$limit = $data['limit'];
$sord = $data['sord'];
$sidx = $data['sidx'];
$search = $data['search'];
$searchstring = "";
if ($search == "true") {
$searchField = $data['searchField'];
$searchOper = $data['searchOper'];
$searchString = $data['searchString'];
$search_string = searchString($searchField, $searchOper, $searchString);
if ($search_string != "") {
$searchstring .= " AND ".$search_string." ";
}
}
$data = array();
/*Данные для pagination jqGrid*/
$users_join_on = "responsible.id_user = users.id" . " AND " .
"responsible.id_site = '". $id_site."'";
if ( $table === 'users' ) {
$this->db->join('responsible', $users_join_on);
}
$count = $this->db->count_all_results($table);
if( $count > 0 ) {
$total_pages = ($limit > 0) ? ceil($count / $limit) : 1;
} else {
$total_pages = 0;
}
if ($page > $total_pages) {
$page = $total_pages;
}
$data['page'] = $page;
$data['total'] = $total_pages;
$data['records'] = $count;
$start = $limit * $page - $limit;
if ($start < 0) {
$start = 0;
}
$users_join_on = "r.id_user = u.id" . " AND " .
"r.id_site = '". $id_site."'";
$this->db->select('*');
/* Constructing query */
if ( $table == 'users' ) {
$this->db->from('users as u');
$this->db->join('responsible as r', $users_join_on);
} else if ( $table == 'sites' ) {
$this->db->from('sites as s');
}
if ( $search == "true" ) {
$this->db->where($search_string);
}
$this->db->limit($limit, $start);
$this->db->order_by($sidx . " " . $sord);
$results = $this->db->get();
if ( $table == 'sites') {
foreach( $results->result() as $id => $row ) {
$data['rows'][$id]['id'] = $row->id;
$data['rows'][$id]['cell'][] = $row->id;
$data['rows'][$id]['cell'][] = $row->site;
$data['rows'][$id]['cell'][] = $row->date;
}
} else if ( $table == 'users' ) {
foreach( $results->result() as $id => $row ) {
$data['rows'][$id]['id'] = $row->id;
$data['rows'][$id]['cell'][] = $row->id;
$data['rows'][$id]['cell'][] = $row->login;
$data['rows'][$id]['cell'][] = $row->type;
$data['rows'][$id]['cell'][] = $row->email;
$data['rows'][$id]['cell'][] = $row->firstname;
$data['rows'][$id]['cell'][] = $row->middlename;
$data['rows'][$id]['cell'][] = $row->lastname;
$data['rows'][$id]['cell'][] = $row->activity;
$data['rows'][$id]['cell'][] = $row->email;
$data['rows'][$id]['cell'][] = $row->date;
}
}
return $data;
}
/*Добавление сайта*/
function addSite($site) {
if (!$this->isSiteUnique($site['site'])) {
return array('message' => 'Сайт не уникален');
}
log_message("error", "here");
$data = array(
'site' => $site['site'],
'date' => date("Y-m-d H:i:s", time())
);
$this->db->insert('sites', $data);
}
/*Обновление названия*/
function updateSite($data) {
if (!$this->isSiteUnique($data['site'])) {
return array('message' => 'Сайт не уникален');
}
$this->db->set("site", $data['site']);
$this->db->where("id", $data['id_site']);
$this->db->update("sites");
}
/*Удаление сайта*/
function deleteSite($site) {
if ($this->countSiteResponsibles($site) == 0) {
$this->db->where("id", $site['id_site']);
$this->db->delete("sites");
$this->db->where("site_id", $site['id_site']);
$this->db->delete("messages");
return true;
} else {
return false;
}
}
/*Подсчет пользователей сайта*/
function countSiteResponsibles($data) {
$this->db->where("id_site", $data['id_site']);
$this->db->from("responsible");
return $this->db->count_all_results();
}
/*Проверяем сайт на уникальность*/
function isSiteUnique($site) {
$this->db->where("site", $site);
$this->db->from("sites");
$count = $this->db->count_all_results();
if ($count == 0) {
return true;
} else {
return false;
}
}
}
<div class="body">
<!-- -->
<link rel="stylesheet" type="text/css" media="screen" href="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/css/ui.jqgrid.css" />
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/js/i18n/grid.locale-ru.js"></script>
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/js/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="<?=$base_url?>javascript/jquery_plugins/jqGrid/4.4.0/src/grid.subgrid.js"></script>
<!-- -->
<table id="table_users"></table>
<div id="additional_panel"></div>
<script type="text/javascript">
jQuery("#table_users").jqGrid({ // Привязка плагина к таблице
url: TYPOS.base_url+'admins/users/get_list_users', // Скрипт - обработчик ваших запросов
editurl: TYPOS.base_url+'admins/users/panel_users',
datatype: "json", // Формат скрипта-обработчика
colNames: ['Номер', 'Логин', 'Тип', 'Email', 'Пароль', 'Имя', 'Отчество', 'Фамилия', 'Статус аккаунта','Дата регистрации'],
colModel: [
{name:"id", index:"u.id", width:80, searchtype:"integer", align:'center', sortable:true},
{name:"login", index:"u.login", width:80, searchtype:"string", align:'center', sortable:true, editable:true, editrules:{required:true}},
{name:"type", index:"u.type", width:80, searchtype:"string", align:'center', sortable:true, editable:true, edittype:'select', editoptions:{value:{'user':'Пользователь', 'admin':'Администратор'}}, editrules:{required:true}},
{name:"email", index:"u.email",width:80, sortable:true, searchtype:"string", align:'center', editable:true, editrules:{email:true, required:true}},
{name:"password", index:"u.password", width:80, sortable:false, searchtype:"string", align:'center', editable:true, edittype:'password', editrules:{required:true}},
{name:"firstname", index:"u.firstname", width:80, sortable:true, searchtype:"string", align:'center', editable:true, editrules:{required:true}},
{name:"middlename", index:"u.middlename", width:80, sortable:true, searchtype:"string", align:'center', editable:true, editrules:{required:true}},
{name:"lastname", index:"u.lastname", width:80, sortable:true, searchtype:"string", align:'center', editable:true, editrules:{required:true}},
{name:"activity", index:"u.activity", width:80, sortable:true, searchtype:"integer", align:'center', editable:true, edittype:"checkbox", editoptions: {value:"1:0", defaultValue:'0'}, formatter:'checkbox'},
{name:"date", index:"u.date", width:120, sortable:true, searchtype:"string", align:'center'},
],
subGrid : true,
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url: TYPOS.base_url+'admins/users/get_user_sites?id='+row_id,
editurl: TYPOS.base_url+'admins/users/panel_users_site?id='+row_id+'&id_user='+row_id,
datatype: "json",
colNames:['Номер', 'Сайт', 'Статус', 'Дата установки'],
colModel:[
{name:"id", index:'r.id_site', width:10, searchtype:"integer", align:'center'},
{name:"site", index:'s.site', align:'center', width:120, searchtype:"string", edittype:'select', editable:true, editoptions:{dataUrl:TYPOS.base_url+'admins/users/get_sites?id_user='+row_id}},
{name:"status", index:'r.status', align:'center', width:20, searchtype:"string", editable:true, edittype:"checkbox", editoptions: {value:"1:0", defaultValue:'1'}, formatter:'checkbox'},
{name:"date", index:"r.date", width:80, sortable:true, searchtype:"string", align:'center'},
],
rowNum:20,
pager: pager_id,
sortname: 's.site',
sortorder: 'desc',
height: '100%',
width: 1000
});
jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:true,add:true,del:true},
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
},
afterShowForm: function(formid) {
$(formid).find('#tr_site').css('display','none');
},
},
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
},
afterShowForm: function(formid) {
$(formid).find('#tr_site').css('display','table-row');
},
},
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
}}
)
},
caption: "Пользователи",
rowNum:10,
rowList:[10,20,30],
width:1200,
height: '100%',
pager: '#additional_panel', // Привязка к таблице тулбара
sortname: 'u.type',
viewrecords: true,
sortorder: "desc"
});
jQuery("#table_users").jqGrid('navGrid','#additional_panel', // Управление тулбаром таблицы
{edit:true,add:true,del:true}, // Отключаем от тулбара редактирование, добавление и удаление записей. На тулбаре останутся только две кнопки: "Поиск" и "Обновить"
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
}
}, // Опции окон редактирования
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
}
},
{afterSubmit: function(response) {
var json = response.responseText;
try {
var text = window.JSON.parse(json);
if (typeof(text) != 'undefined') {
return [false, text.message];
} else {
return [true, ''];
}
} catch(e) {
return [true, ''];
}
}
}
);
</script>
</div>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment