联系我们
软件销售
投诉邮箱

q@xunruicms.com

想在前台会员中心显示同用户组发布的内容我参照这个解答《类增加
方案栏目:迅睿CMS 更新时间:2020-10-29 19:22:45

想在前台会员中心,显示同用户组发布的内容。我参照这个解答:https://www.xunruicms.com/wenda/23914.html,《table类增加列表查询条件》

修改了/dayrui/App/Demo/Controllers/Member/Home.php文件,

<?php namespace Phpcmf\Controllers\Member;

class Home extends \Phpcmf\Member\Module
{

 // 内容列表
 public function index() {
    if ($this->member['groupid']) { 
       $where = " uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

       if ($this->init['where_list']) {
           $this->init['where_list'].= ' or '.$where;
           // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
       } else {
           $this->init['where_list'] = $where;
       }
    }
       $this->_Member_List();
}

 public function add() {
  $this->_Member_Add();
 }

 public function edit() {
     if ($this->member['groupid']) { 
       $where = " uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

       if ($this->init['where_list']) {
           $this->init['where_list'].= ' or '.$where;
           // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
       } else {
           $this->init['where_list'] = $where;
       }
    }
  $this->_Member_Edit();
 }

 public function del() {
  $this->_Member_Del();
 }
}


我用同用户组账号登录,内容列表是显示出来了,但是点击编辑的时候,提示“数据#1不存在”

想在前台会员中心显示同用户组发布的内容我参照这个解答《类增加


想在前台会员中心显示同用户组发布的内容我参照这个解答《类增加

迅睿: 说明id=1的记录不满足条件了

迅睿: 你自己可以研究一下原理,思路就是这个方向

草木人: 用发布账号登录是能编辑的,而且我看了编辑的链接是一样的。。。/index.php?s=member&app=zccx&c=home&m=edit&id=1回复@迅睿框架创始人  

草木人: 这个edit,除了/dayrui/App/Demo/Controllers/Member/Home.php,是不是还有其他地方有关联?比如del我也按照上面的代码添加了,但是提示不能删除别人的内容,这个不是这里控自的,应该还有其他地方在控自

public function del() {
	    if ($this->member['groupid']) { 
       $where = " uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

       if ($this->init['where_list']) {
           $this->init['where_list'].= ' or '.$where;
           // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
       } else {
           $this->init['where_list'] = $where;
       }
    }
		$this->_Member_Del();
	}
回复@迅睿框架创始人  

迅睿: where_list用于列表显示,删除不能用这种


public function del() {
     if ($this->member['groupid']) { 
       $this->delete_where = "uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

   
    }
  $this->_Member_Del();
 }

草木人: 老大,会员中心同会员组能查看了,但是同会员组不能编辑其他人发布的内容,这个帮忙研究一下,我没搞定啊

public function edit() {
     if ($this->member['groupid']) { 
       $where = " uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

       if ($this->init['where_list']) {
           $this->init['where_list'].= ' or '.$where;
           // 考虑到父类也许有可能会自带条件,防止被覆盖默认条件,所以追加一个 AND
       } else {
           $this->init['where_list'] = $where;
       }
    }
  $this->_Member_Edit();
 }

回复@迅睿框架创始人  

迅睿: 同理啊where_list用于列表显示,编辑不能用这种

public function edit() {
if ($this->member['groupid']) { 
       $this->edit_where = "uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";

   
    } 
    $this->_Member_Edit();
 }

草木人: 点编辑还是提示数据#2不存在,/index.php?s=member&app=zccx&c=home&m=edit&id=2
这个id=2是同会员组另外的账号发布的,id=1是自己发布的,没问题

	public function edit() {
	    if ($this->member['groupid']) {
       $this->edit_where = "uid in (select uid from ".\Phpcmf\Service::M()->dbprefix('member_group_index')." where gid in(".implode(",", $this->member['groupid'])."))";
        }
		$this->_Member_Edit();
	}
回复@迅睿框架创始人  

迅睿: 这句话的意思是,编辑自己的文章,并且是同一个用户组的文章,记住,用户中心直接编辑自己的文章,不能编辑其他人的

草木人: 那想实现同会员组的都能编辑,有没有什么办法?回复@迅睿框架创始人  

曼德拉的铅笔: 用户中心不能编辑别人的内容

K大帅: 想在会员中心编辑他们的文章  这是犯程序的大忌呀。。。。去修改核心的类 把那句判断删掉吧草木人  

相关内容