系统管理员要想在dedecms后台给某个用户添加文章,怎么做?
首先,进入后台->注册会员列表,选择某个会员,之后点击文档按钮,则进入列表页,点击添加文档,可添加并保存文档,
但添加的是以登录用户的id发布的文档,需要修改代码实现给选定的用户添加文档。
1.dede/templets/content_list.htm:
<input type='button' class="coolbg np" onClick="location='catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives';" value='添加文档' />
在上面这句中增加传的参数mid,即改为:
<input type='button' class="coolbg np" onClick="location='catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives&mid=<?php echo $_GET['mid'];?>';" value='添加文档' />
2.dede/content_list.php:
增加传递变量的这句:
$mid = isset($mid) ? intval($mid) : 0;
3.dede/templets/content_list.htm:
在添加文档按钮的url中,增加mid这个参数,如下:
<input type='button' class="coolbg np" onClick="location='catalog_do.php?channelid={dede:global.channelid/}&cid={dede:global.cid/}&dopost=addArchives&mid=<?php echo $mid; ?>';" value='添加文档' />
至此,到添加文档按钮处的该会员mid已经传入到了添加文档详细页了,只要再将mid作为文档提交表单中的元素,提交到后台并在sql中用mid来替代原有的发布者id即可,代码如下:
4.dede/templets/article_add.htm
在两个form中分布增加:
<input type="hidden" name="mid" value="<?php echo $mid?>" />
5.dede/article_add.php
这里分为两个逻辑:
①自动获取单页面的内容
增加:
$mid=empty($mid) ? 0 : intval($mid);
②保存文档
增加:
$mid = empty($mid)?$adminid:$mid;
并把”保存到主表“的SQL改为,注意标红色的
//保存到主表
$query = "INSERT INTO `#@__archives`(id,typeid,typeid2,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,voteid,notpost,description,keywords,filename,dutyadmin,weight)
VALUES ('$arcID','$typeid','$typeid2','$sortrank','$flag','$ismake','$channelid','$arcrank','$click','$money',
'$title','$shorttitle','$color','$writer','$source','$litpic','$pubdate','$senddate',
'$mid','$voteid','$notpost','$description','$keywords','$filename','$adminid','$weight');";
再增加文档,就不一定是当前用户发出的文档了,发布者就是按选择的用户发布的了。
发布完后,也可以在继续发布文章处再增加mid,具体代码不再赘述