public function show() { $cid = Q('cid', 0, 'intval'); $aid = Q('aid', 0, 'intval'); $Model = K('Comment'); $where = "comment_state=1 AND cid={$cid} AND aid={$aid}"; $count = $Model->join()->where($where)->where("pid=0 ")->count(); $page = new Page($count, 15); $data = array(); if ($count) { //获得1级回复的id $result = $Model->where($where)->where("pid=0 ")->limit($page->limit())->order("comment_id desc")->getField('comment_id', true); $comment_id = implode(',', $result); $data = $Model->where("comment_state=1 AND (comment_id IN ({$comment_id}) OR reply_comment_id IN ({$comment_id}))")->order("comment_id ASC")->all(); //设置头像(没有头像的用户使用默认头像) foreach ($data as $n => $d) { if (empty($d['icon'])) { $data[$n]['icon'] = __ROOT__ . "/data/image/user/50-gray.png"; } else { $data[$n]['icon'] = __ROOT__ . '/' . $d['icon']; } } } //获得多层 $data = Data::channelLevel($data, 0, '', 'comment_id'); $this->assign('page', $page->show()); $this->assign('data', $data); $con = $this->fetch('index.php'); if (Q('page')) { echo $con; } else { echo "document.write('<div id=\"hdcomment\">" . preg_replace('@\\r|\\n@mi', '', addslashes($con)) . "</div>')"; } exit; }
public function set() { if (IS_POST) { $favoriteModel = M('menu_favorite'); //删除旧的收藏 $map['uid'] = $_SESSION['user']['uid']; $favoriteModel->where($map)->del(); if (!empty($_POST['nid'])) { foreach ($_POST['nid'] as $nid) { $data = array('uid' => $_SESSION['user']['uid'], 'nid' => $nid); $favoriteModel->add($data); } } $this->success('设置成功,请刷新后台'); } else { $nodeModel = M('node'); $pre = C('DB_PREFIX'); if (IS_SUPER_ADMIN || IS_WEBMASTER) { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN\n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['user']['uid']}) AS m\n\t\t\t\t\t\t\t ON n.nid = m.nid WHERE n.is_show=1"; } else { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN {$pre}access AS a ON n.nid=a.nid LEFT JOIN\n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['user']['uid']}) AS m ON n.nid = m.nid\n\t\t\t\t\t\t\t WHERE n.type=2 OR (n.show=1 AND m.nid is not null)"; } $nodeData = $nodeModel->query($sql); $nodeData = Data::channelLevel($nodeData, 0, "", "nid"); $this->assign('data', $nodeData); $this->display(); } }
public function edit() { if (IS_POST) { $rid = Q("post.rid"); $this->_db->where(array("rid" => $rid))->del(); if (!empty($_POST['nid'])) { foreach ($_POST['nid'] as $v) { $this->_db->add(array("rid" => $rid, "nid" => $v)); } } $this->_ajax(1, '修改成功'); } else { $rid = Q("rid"); $sql = "SELECT n.nid,n.title,n.pid,n.type,a.rid as access_rid FROM hd_node AS n LEFT JOIN (SELECT * FROM (SELECT * FROM hd_access WHERE rid={$rid}) AS aa)AS a\n ON n.nid = a.nid ORDER BY list_order ASC"; $result = $this->_db->query($sql); foreach ($result as $n => $r) { $checked = $r['access_rid'] || $r['type'] == 2 ? " checked=''" : ''; $disabled = $r['type'] == 2 ? 'disabled=""' : ''; $result[$n]['checkbox'] = "<label><input type='checkbox' name='nid[]' value='{$r['nid']}' {$checked} {$disabled}/> {$r['title']}</label>"; } $this->access = Data::channelLevel($result, 0, '-', 'nid'); $this->rid = $rid; $this->display(); } }
/** * 权限设置 */ public function set() { if (IS_POST) { //先删除原来 M('access')->where("rid={$_POST['rid']}")->del(); if (!empty($_POST['access'])) { $data = array(); foreach ($_POST['access'] as $c => $a) { $data['rid'] = $_POST['rid']; $data['nid'] = $a; M('access')->add($data); } } $this->success('权限设置成功'); } else { /****第一种方案*** //找到有权限设置的节点 $node=M('node')->all(); $node=Data::channelLevel($node,0,' ','nid'); //找到该角色的已有的权限 $map['rid']=array('EQ',$_SESSION['rid']); $controller=M('access')->where($map)->getField('controller',true); $action=M('access')->where($map)->getField('action',true); $this->assign('controller',$controller); $this->assign('action',$action); $this->assign('node',$node); $this->display();*/ // ***方案二*** $data = M()->join("__access__ a join __node__ n on a.nid=n.nid")->all(); $node = Data::channelLevel($data, 0, ' ', 'nid'); $this->assign('node', $node); $this->assign('rid', $_SESSION['rid']); $this->display(); } }
public function edit() { if (IS_POST) { $this->db->where(array("rid" => $this->rid))->del(); if (!empty($_POST['nid'])) { foreach ($_POST['nid'] as $v) { $this->db->add(array("rid" => $this->rid, "nid" => $v)); } } $this->success('修改成功'); } else { $sql = "SELECT n.nid,n.title,n.pid,n.type,a.rid as access_rid FROM hd_node AS n LEFT JOIN\n \t\t\t(SELECT * FROM (SELECT * FROM hd_access WHERE rid={$this->rid}) AS t)AS a\n \t\tON n.nid = a.nid ORDER BY list_order ASC"; $result = $this->db->query($sql); foreach ($result as $n => $r) { //当前角色已经有权限或不需要验证的节点 $checked = $r['access_rid'] || $r['type'] == 2 ? " checked=''" : ''; //不需要验证的节点,关闭选择(因为所有管理员都有权限) $disabled = $r['type'] == 2 ? 'disabled=""' : ''; //前台表单 $result[$n]['checkbox'] = "<label><input type='checkbox' name='nid[]' value='{$r['nid']}' {$checked} {$disabled}/> {$r['title']}</label>"; } $this->assign('access', Data::channelLevel($result, 0, '-', 'nid')); $this->assign('rid', $this->rid); $this->display(); } }
/** * 构造函数 * @return [type] [description] */ public function __init() { $this->db = K('Goods'); $this->category = S('category'); $this->user = K('User'); /** * 获得所有栏目 */ $category = Data::channelLevel($this->category, 0, '-'); $this->assign('category', $category); }
public function __init() { /** * 获得所有栏目 */ $category = Data::channelLevel(S('category'), 0, '-'); $this->assign('category', $category); /** * 登陆后操作 */ if (!isset($_SESSION['username'])) { $this->error('请登陆后再操作'); } }
/** * 后台首页 */ public function index() { /** * 站长或超级管理员返回所有菜单 */ if (IS_SUPER_ADMIN || IS_WEBMASTER) { $node = M('node')->where("is_show=1")->order('list_order ASC')->all(); } else { /** * 管理员权限节点 */ $node = M()->join(" __access__ a RIGHT __node__ n JOIN ON n.nid=a.nid")->where("n.is_show=1 AND (n.type=2 OR a.rid={$_SESSION['user']['rid']})")->order('list_order ASC')->all(); } $node = Data::channelLevel($this->addNodeUrl($node), 0, ' ', 'nid'); //分配菜单节点 $this->assign('node', $node); //----------------------------------------------------------------------------------- /** * 快捷菜单节点 */ $quickMenu = M()->join("__menu_favorite__ m JOIN __node__ n ON m.nid=n.nid")->where("uid={$_SESSION['user']['uid']}")->all(); $this->assign('quickMenu', $this->addNodeUrl($quickMenu)); $this->display(); }
/** * 获得评论列表 */ public function get_comment() { $where = "comment_state=1 AND cid=" . $this->_cid . " AND aid=" . $this->_aid; $count = $this->join()->where($where)->where("pid=0 ")->count(); $page = new Page($count, 15); $data = array(); if ($count) { //获得1级回复的id $result = $this->where($where)->where("pid=0 ")->limit($page->limit())->order("comment_id desc")->getField('comment_id', true); $comment_id = implode(',', $result); $data = $this->where("comment_state=1 AND (comment_id IN ({$comment_id}) OR reply_comment_id IN ({$comment_id}))")->order("comment_id ASC")->all(); //设置头像(没有头像的用户使用默认头像) foreach ($data as $n => $d) { if (empty($d['icon'])) { $data[$n]['icon'] = __ROOT__ . "/data/image/user/50-gray.png"; } else { $data[$n]['icon'] = __ROOT__ . '/' . $d['icon']; } } } //获得多层 $data = Data::channelLevel($data, 0, '', 'comment_id'); return array('page' => $page->show(), 'data' => $data); }
/** * 获取当前用户在站点后台可以使用的系统菜单 * @return mixed */ public function menus() { /** * 系统管理 * 1 移除系统菜单 * 2 将没有三级或二级菜单的菜单移除 */ //移除用户没有使用权限的系统菜单 $permission = Db::table('user_permission')->where('siteid', SITEID)->where('uid', v('user.info.uid'))->where('type', 'system')->pluck('permission'); $menus = Db::table('menu')->get(); if ($permission) { $permission = explode('|', $permission); $tmp = $menus; foreach ($tmp as $k => $m) { if ($m['permission'] != '' && !in_array($m['permission'], $permission)) { unset($menus[$k]); } } } $menus = Data::channelLevel($menus, 0, '', 'id', 'pid'); //移除没有三级菜单的一级与二级菜单 $tmp = $menus; foreach ($tmp as $k => $t) { //二级菜单为空时删除些菜单 foreach ($t['_data'] as $n => $d) { if (empty($d['_data'])) { unset($menus[$k]['_data'][$n]); } } //一级菜单没有子菜单时移除 if (empty($menus[$k]['_data'])) { unset($menus[$k]); } } return $menus; }
public function edit() { if (IS_POST) { if ($this->db->editAccess()) { $this->success('修改成功'); } else { $this->error('修改失败'); } } else { $sql = "SELECT n.nid,n.title,n.pid,n.type,a.rid as access_rid FROM " . C('DB_PREFIX') . "node AS n LEFT JOIN\n \t\t\t(SELECT * FROM " . C('DB_PREFIX') . "access WHERE rid={$this->rid}) AS a\n \t\tON n.nid = a.nid ORDER BY list_order ASC"; $result = $this->db->query($sql); foreach ($result as $n => $r) { //当前角色已经有权限或不需要验证的节点 $checked = $r['access_rid'] || $r['type'] == 2 ? " checked=''" : ''; //不需要验证的节点,关闭选择(因为所有管理员都有权限) $disabled = $r['type'] == 2 ? 'disabled=""' : ''; //表单 $result[$n]['checkbox'] = "<label>\n <input type='checkbox' name='nid[]' value='{$r['nid']}' {$checked} {$disabled}/> {$r['title']}\n </label>"; } $this->assign('access', Data::channelLevel($result, 0, '-', 'nid')); $this->assign('rid', $this->rid); $this->display(); } }
public function setFavorite() { if (IS_POST) { $post = $_POST; //删除旧的收藏 $favoriteModel = M('menu_favorite'); $favoriteModel->del(array('uid' => $_SESSION['uid'])); if (!empty($_POST['nid'])) { foreach ($post['nid'] as $nid) { $favoriteModel->add(array('uid' => $_SESSION['uid'], 'nid' => $nid)); } } $pre = C("DB_PREFIX"); //更新缓存 $sql = "SELECT * FROM {$pre}menu_favorite AS m JOIN {$pre}node AS n ON m.nid=n.nid WHERE uid=" . $_SESSION['uid']; $favoriteMenu = M()->query($sql); cache($_SESSION['uid'], $favoriteMenu, MENU_CACHE_PATH); $this->success('设置成功'); } else { if (!is_writable(MENU_CACHE_PATH)) { $this->error(MENU_CACHE_PATH . '缓存目录不可写'); } $nodeModel = V('node'); $pre = C('DB_PREFIX'); if (session("WEB_MASTER") || session("rid") == 1) { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN \n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['uid']}) AS m ON n.nid = m.nid WHERE n.state=1"; } else { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN {$pre}access AS a ON n.nid=a.nid LEFT JOIN\n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['uid']}) AS m ON n.nid = m.nid \n\t\t\t\t\t\t\t WHERE n.type=2 OR (n.state=1 AND m.nid is not null)"; } $nodeData = $nodeModel->query($sql); $nodeData = Data::channelLevel($nodeData, 0, "", "nid"); $this->assign('data', $nodeData); $this->display(); } }
public function getchannletree() { $data = $this->get(); // return Data::channelList($data, 0, $html = " ", 'id'); return Data::channelLevel($data, 0, $html = " ", 'id'); }
public function setFavorite() { if (IS_POST) { $post = $_POST; //删除旧的收藏 $favoriteModel = M('menu_favorite'); $favoriteModel->del(array('uid' => $_SESSION['user']['uid'])); if (!empty($_POST['nid'])) { foreach ($post['nid'] as $nid) { $favoriteModel->add(array('uid' => $_SESSION['user']['uid'], 'nid' => $nid)); } } $pre = C("DB_PREFIX"); //更新缓存 $sql = "SELECT * FROM {$pre}menu_favorite AS m JOIN {$pre}node AS n ON m.nid=n.nid WHERE uid=" . $_SESSION['user']['uid']; $favoriteMenu = M()->query($sql); S('user_menu' . $_SESSION['user']['uid'], $favoriteMenu); $this->success('设置成功'); } else { $nodeModel = M('node'); $pre = C('DB_PREFIX'); if ($_SESSION['user']['web_master'] || $_SESSION['user']['rid'] == 1) { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN\n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['user']['uid']}) AS m ON n.nid = m.nid WHERE n.show=1"; } else { $sql = "SELECT n.nid,n.pid,m.uid,n.title FROM {$pre}node AS n LEFT JOIN {$pre}access AS a ON n.nid=a.nid LEFT JOIN\n\t\t\t\t\t\t\t (SELECT * FROM {$pre}menu_favorite WHERE uid={$_SESSION['user']['uid']}) AS m ON n.nid = m.nid\n\t\t\t\t\t\t\t WHERE n.type=2 OR (n.show=1 AND m.nid is not null)"; } $nodeData = $nodeModel->query($sql); $nodeData = Data::channelLevel($nodeData, 0, "", "nid"); $this->assign('data', $nodeData); $this->display(); } }