管理员组 可以给回帖点评打分 简单评价
没事瞎鼓秋 其实dx有评分功能~ 开阔一下思路了 可以干别的~
我写的不规范的 大家可以参考一下 开发一下思路。
开始~
------------------------------------------------------------------------------------------------------------------------------------------------
首先建立一个表
id pid uid uname fen nr js
id 帖子ID 评分人ID 评分人名字 分数 内容 时间
然后找到帖子 和回帖模板
\template\default\forum
viewthread.htm 帖子模板
viewthread_node.htm 回帖循环 在这里该!!
我放在【回复】那位置了 在412行
<!--{if $_G[fid] == 46 and $post['first']==0 and $_G[uid]>0 and $_G[groupid]==1 }-->
<a href="dafen.php?mod=ping&pid=$post[pid]&tid=$_G[tid]" onclick="showWindow('dafen', this.href, 'get', 0)">老师打分!</a>
<!--{/if}-->
说明: 板块ID 46 必须的回帖 必须登陆 必须是管理员组 才能显示 老师评分选项。
<a href="dafen.php?mod=ping&pid=$post[pid]&tid=$_G[tid]" onclick="showWindow('dafen', this.href, 'get', 0)">老师打分!</a>
showWindow ajax 显示弹窗
dafen.php
----------------------------------------------------------------------------------------------------------------------
<?php
define('APPTYPEID', 1);
define('CURSCRIPT', 'home');
require_once './source/class/class_core.php';
$discuz = C::app();
$discuz->init();
if( empty($_POST[pid]) and empty($_GET[pid]) ) die('err');
if($_G[adminid]!=1)die('你不是管理员!');
if($_G[groupid]!=1) die('你不在教师组中!');
$mod = getgpc('mod');
if(!in_array($mod, array('ping', 'add', 'asd'))) {
die('err');
}
$mod();
function add(){
global $_G;
$uid=$_G[uid];
$uname=$_G[username];
$pid=intval($_POST[pid]);
$sj=time();
$f=intval($_POST[fen]);
$nr=htmlspecialchars($_POST[nr]);
$tid=$_POST[tid];
$df_arr=DB::fetch_first("SELECT id,pid FROM `dafen` where pid='$pid' order by id desc ");
if(count($df_arr)>1){
DB::query("update dafen set fen=$f,nr='$nr',pid=$pid,sj=$sj,uid=$uid,uname='$uname' where pid=$pid");
}
else{
DB::query("insert into dafen (fen,nr,sj,pid,uid,uname) values ('$f','$nr','$sj','$pid','$uid','$uname')");
}
echo "<script type=\"text/javascript\">alert(\"打分完成.\");location.href='/forum.php?mod=viewthread&tid={$tid}#pid{$pid}';</script>";
}
function ping(){
$id=$_GET[pid];
$tid=$_GET[tid];
$df_arr=DB::fetch_first("SELECT * FROM `dafen` where pid='$id' order by id desc ");
include template("forum/dafen");//调用单页模版文件
}
?>
\template\default\forum\dafen.htm 模板文件
-----------------------------------------------------------------------------------------
{subtemplate common/header}
<form id="form1" name="form1" method="post" action="dafen.php?mod=add" >
<table width="570" height="253" border="1">
<tr>
<td width="86" height="30" align="center"><h3 class="flb">打分!</h3></td>
<td width="468" align="right"> <span><a href="javascript:void(0);" onclick="hideWindow('dafen');" >关闭窗口</a></span>
</td>
</tr>
<tr>
<td width="86" height="49" align="center">分数:</td>
<td width="468">
<label>
<input type="text" name="fen" id="fen" value="$df_arr[fen]" /><input name="pid" type="hidden" value="$id" />
<input name="tid" type="hidden" value="$tid " />
</label>
</td>
</tr>
<tr>
<td height="137" align="center">说明:</td>
<td><p>
<textarea name="nr" id="textarea" cols="45" rows="5">$df_arr[nr]</textarea>
</p>
</td>
</tr>
<tr>
<td align="center"> </td>
<td>
<label>
<input type="submit" name="button" id="button" value="提交" />
</label>
</td>
</tr>
</table>
</form>
{subtemplate common/footer}
然后在回到 \template\default\forum\ viewthread_node.htm回帖列表模板
在大约275行<!--{subtemplate forum/viewthread_node_body}-->后面显示评语!
<!--{if count($post[df]) > 1}-->
<hr><br>评分老师: $post[df][uname] <br>分数: $post[df][fen]分!<br> 点评内容:<br> $post[df][nr]
<!--{/if}-->
数据哪里来。。
在帖子php文件 \source\module\forum\forum_viewthread.php
我靠 根本看不明白啊 这是天书 随便找个地方放 我们就放838行吧
//==========================================================
if ($_G['forum_thread'][fid]==46){
$df_arr=array();
foreach($postlist as $pid => $post) {
$df_arr=DB::fetch_first("SELECT * FROM `dafen` where pid='{$postlist[$pid][pid]}' order by id desc ");
if (count($df_arr)>1){$postlist[$pid][df] = $df_arr;}
}
}
//===========================================================
dx有缓存,在调试的时候 你该了模板 你需要去 \data\template 删除下面文件 才能显示
1_1_forum_dafen.tpl.php
1_1_forum_viewthread_node.tpl.php
1_diy_forum_viewthread.tpl.php
真的很无聊。。。。dx真的太强大了 该不明白。。。