| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 | <?php/** * 管理员后台会员组操作类 */defined('IN_PHPCMS') or exit('No permission resources.');pc_base::load_app_class('admin', 'admin', 0);class member_group extends admin {		private $db;		function __construct() {		parent::__construct();		$this->db = pc_base::load_model('member_group_model');	}	/**	 * 会员组首页	 */	function init() {		include $this->admin_tpl('member_init');	}		/**	 * 会员组列表	 */	function manage() {		$page = isset($_GET['page']) ? intval($_GET['page']) : 1;		$member_group_list = $this->db->listinfo('', 'sort ASC', $page, 15);		$this->member_db = pc_base::load_model('member_model');		//TODO 此处循环中执行sql,会严重影响效率,稍后考虑在memebr_group表中加入会员数字段和统计会员总数功能解决。		foreach ($member_group_list as $k=>$v) {			$membernum = $this->member_db->count(array('groupid'=>$v['groupid']));			$member_group_list[$k]['membernum'] = $membernum;		}		$pages = $this->db->pages;				$big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=member&c=member_group&a=add\', title:\''.L('member_group_add').'\', width:\'700\', height:\'500\', lock:true}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('member_group_add'));		include $this->admin_tpl('member_group_list');	}				/**	 * 添加会员组	 */	function add() {		if(isset($_POST['dosubmit'])) {			$info = array();			if(!$this->_checkname($_POST['info']['name'])){				showmessage('会员组名称已经存在');			}			$info = $_POST['info'];			$info['allowpost'] = $info['allowpost'] ? 1 : 0;			$info['allowupgrade'] = $info['allowupgrade'] ? 1 : 0;			$info['allowpostverify'] = $info['allowpostverify'] ? 1 : 0;			$info['allowsendmessage'] = $info['allowsendmessage'] ? 1 : 0;			$info['allowattachment'] = $info['allowattachment'] ? 1 : 0;			$info['allowsearch'] = $info['allowsearch'] ? 1 : 0;			$info['allowvisit'] = $info['allowvisit'] ? 1 : 0;						$this->db->insert($info);			if($this->db->insert_id()){				$this->_updatecache();				showmessage(L('operation_success'),'?m=member&c=member_group&a=manage', '', 'add');			}		} else {			$show_header = $show_scroll = true;			include $this->admin_tpl('member_group_add');		}			}		/**	 * 修改会员组	 */	function edit() {		if(isset($_POST['dosubmit'])) {			$info = array();			$info = $_POST['info'];			$info['allowpost'] = isset($info['allowpost']) ? 1 : 0;			$info['allowupgrade'] = isset($info['allowupgrade']) ? 1 : 0;			$info['allowpostverify'] = isset($info['allowpostverify']) ? 1 : 0;			$info['allowsendmessage'] = isset($info['allowsendmessage']) ? 1 : 0;			$info['allowattachment'] = isset($info['allowattachment']) ? 1 : 0;			$info['allowsearch'] = isset($info['allowsearch']) ? 1 : 0;			$info['allowvisit'] = isset($info['allowvisit']) ? 1 : 0;						$this->db->update($info, array('groupid'=>$info['groupid']));						$this->_updatecache();			showmessage(L('operation_success'), '?m=member&c=member_group&a=manage', '', 'edit');		} else {								$show_header = $show_scroll = true;			$groupid = isset($_GET['groupid']) ? $_GET['groupid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);						$groupinfo = $this->db->get_one(array('groupid'=>$groupid));			include $this->admin_tpl('member_group_edit');				}	}		/**	 * 排序会员组	 */	function sort() {				if(isset($_POST['sort'])) {			foreach($_POST['sort'] as $k=>$v) {				$this->db->update(array('sort'=>$v), array('groupid'=>$k));			}						$this->_updatecache();			showmessage(L('operation_success'), HTTP_REFERER);		} else {			showmessage(L('operation_failure'), HTTP_REFERER);		}	}	/**	 * 删除会员组	 */	function delete() {			$groupidarr = isset($_POST['groupid']) ? $_POST['groupid'] : showmessage(L('illegal_parameters'), HTTP_REFERER);		$where = to_sqls($groupidarr, '', 'groupid');		if ($this->db->delete($where)) {			$this->_updatecache();			showmessage(L('operation_success'), HTTP_REFERER);		} else {			showmessage(L('operation_failure'), HTTP_REFERER);		}	}	/**	 * 检查用户名是否合法	 * @param string $name	 */	private function _checkname($name = NULL) {		if(empty($name)) return false;		if ($this->db->get_one(array('name'=>$name),'groupid')){			return false;		}		return true;	}		/**	 * 更新会员组列表缓存	 */	private function _updatecache() {		$grouplist = $this->db->listinfo('', '', 1, 1000, 'groupid');		setcache('grouplist', $grouplist);	}		public function public_checkname_ajax() {		$name = isset($_GET['name']) && trim($_GET['name']) ? trim($_GET['name']) : exit(0);		$name = iconv('utf-8', CHARSET, $name);				if ($this->db->get_one(array('name'=>$name),'groupid')){			exit('0');		} else {			exit('1');		}	}}?>
 |