1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- /**
- * 站点对外接口
- * @author chenzhouyu
- *
- */
- class sites {
- //数据库连接
- private $db;
- public function __construct() {
- $this->db = pc_base::load_model('site_model');
- }
-
- /**
- * 获取站点列表
- * @param string $roleid 角色ID 留空为获取所有站点列表
- */
- public function get_list($roleid='') {
- $roleid = intval($roleid);
- if(empty($roleid)) {
- if ($data = getcache('sitelist', 'commons')) {
- return $data;
- } else {
- $this->set_cache();
- return $this->db->select();
- }
- } else {
- $site_arr = $this->get_role_siteid($roleid);
- $sql = "`siteid` in($site_arr)";
- return $this->db->select($sql);
- }
- }
-
- /**
- * 按ID获取站点信息
- * @param integer $siteid 站点ID号
- */
- public function get_by_id($siteid) {
- return siteinfo($siteid);
- }
-
- /**
- * 设置站点缓存
- */
- public function set_cache() {
- $list = $this->db->select();
- $data = array();
- foreach ($list as $key=>$val) {
- $data[$val['siteid']] = $val;
- $data[$val['siteid']]['url'] = $val['domain'] ? $val['domain'] : pc_base::load_config('system', 'web_path').$val['dirname'].'/';
- }
- setcache('sitelist', $data, 'commons');
- }
-
- /**
- * PC标签中调用站点列表
- */
- public function pc_tag_list() {
- $list = $this->db->select('', 'siteid,name');
- $sitelist = array(''=>L('please_select_a_site', '', 'admin'));
- foreach ($list as $k=>$v) {
- $sitelist[$v['siteid']] = $v['name'];
- }
- return $sitelist;
- }
-
- /**
- * 按角色ID获取站点列表
- * @param string $roleid 角色ID
- */
-
- public function get_role_siteid($roleid) {
- $roleid = intval($roleid);
- if($roleid == 1) {
- $sitelists = $this->get_list();
- foreach($sitelists as $v) {
- $sitelist[] = $v['siteid'];
- }
- } else {
- $sitelist = getcache('role_siteid', 'commons');
- $sitelist = $sitelist[$roleid];
- }
- if(is_array($sitelist))
- {
- $siteid = implode(',',array_unique($sitelist));
- return $siteid;
- } else {
- showmessage(L('no_site_permissions'),'?m=admin&c=index&a=login');
- }
- }
- }
|