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');
- }
- }
- }
- ?>
|