Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 7.2.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpcms/modules/admin/classes/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/admin/classes/sites.class.php
<?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');

		}

	}

}