Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 分配管理员站点
  */
 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 = '管理员站点分组管理';
 }