/** * get site data * * @param Array $query_struct * @param Array $orderby * @param Int $limit * @param Int $offset * @return Array */ private function _data($query_struct = array(), $orderby = NULL, $limit = 1000, $offset = 0) { $list = array(); $where = array(); $like = array(); $in = array(); $site = ORM::factory('site'); //WHERE if (count($query_struct) > 0) { if (isset($query_struct['where'])) { foreach ($query_struct['where'] as $key => $value) { $where[$key] = $value; } } } //LIKE if (count($query_struct) > 0) { if (isset($query_struct['like'])) { foreach ($query_struct['like'] as $key => $value) { $like[$key] = $value; } } } //IN if (count($query_struct) > 0) { if (isset($query_struct['in'])) { foreach ($query_struct['in'] as $key => $value) { $in[$key] = $value; } } } //WHERE if (count($where) > 0) { $site->where($where); } //LIKE if (count($like) > 0) { $site->like($like); } //IN if (count($in) > 0) { foreach ($in as $key => $value) { $site->in($key, $value); } } if (!empty($orderby)) { $site->orderby($orderby); } $orm_list = $site->find_all($limit, $offset); if ($this->union_query) { foreach ($orm_list as $item) { $merge_arr = array('site_type_name' => Mysite_type::instance($item->site_type_id)->get('name'), 'theme_name' => Mytheme::instance($item->theme_id)->get('name')); $list[] = array_merge($item->as_array(), $merge_arr); } } else { foreach ($orm_list as $item) { $list[] = $item->as_array(); } } return $list; }
/** * 分配管理员站点 */ public function site($id) { //zhu add $this->_check_manager($id); if ($_POST) { $manager = Mymanager::instance($id)->get(); $target_select = $this->input->post('target_select'); if ($manager['site_num'] < count($target_select)) { remind::set(Kohana::lang('o_manage.self_account') . $manager['site_num'] . Kohana::lang('o_manage.num_site'), 'manage/manager/site/' . $id); } if (!$target_select) { remind::set(Kohana::lang('o_manage.select_site'), 'manage/manager/site/' . $id); } if (Mymanager::instance()->set_sites($id, $_POST)) { remind::set(Kohana::lang('o_global.add_success'), 'manage/manager', 'success'); } else { remind::set(Kohana::lang('o_global.add_error'), 'manage/manager/site/' . $id); } } /* 得到当前所有的站点类型 */ $site_types = Mysite_type::instance()->site_types(); /* 验证是超级管理员就列出所有站点 */ if (role::is_root($this->manager_name)) { $sites = Mysite::instance()->get_sites(); } else { /* 超级管理员外自己不能调整自己的站点 */ if ($this->manager_id == $id) { remind::set(Kohana::lang('o_manage.self_can_not_set_self_site'), 'manage/manager'); } $sites = Mymanager::instance($this->manager_id)->sites(); } $target_sites = Mymanager::instance($id)->sites(); $optional_sites = tool::my_array_diff($sites, $target_sites); $this->template->content = new View("manage/assign_site"); $this->template->content->sites = $optional_sites; $this->template->content->site_types = $site_types; $this->template->content->target_sites = $target_sites; $this->template->content->access_url = url::base() . 'manage/site/ajax_search_site'; $this->template->content->title = '管理员站点分组管理'; }