最近用织梦dedecms做了个发布信息的网站,需要实现网站会员投稿后,前台能自动更新的功能。
先是官方论坛进行查找,只发现有人在问,却没有人回答。没办法,只好自己动手操作,还真是花了不少的功夫。
我是通过三个步骤实现的:
首先修改member目录下inc目录里的inc_archives_functi*****.php文件,添加以下代码:
function GetUpdateTest()
{
global $arcID, $typeid, $cfg_make_andcat, $cfg_makeindex, $cfg_make_prenext;
$revalue = $dolist = '';
if($cfg_makeindex=='Y' || $cfg_make_andcat=='Y' || $cfg_make_prenext=='Y')
{
if($cfg_make_prenext=='Y' && !empty($typeid)) $dolist = 'makeprenext';
if($cfg_makeindex=='Y') $dolist .= empty($dolist) ? 'makeindex' : ',makeindex';
if($cfg_make_andcat=='Y') $dolist .= empty($dolist) ? 'makeparenttype' : ',makeparenttype';
$dolists = explode(',', $dolist);
$jumpUrl = "task_do.php?typeid={$typeid}&aid={$arcID}&dopost={$dolists[0]}&nextdo=".ereg_replace($dolists[0]."[,]{0,1}", '', $dolist);
$revalue = "<table width='80%' style='border:1px dashed #cdcdcd;margin-left:20px;margin-bottom:15px' id='tgtable' align='left'><tr><td bgcolor='#EBF5C9'> <strong>正在进行相关内容更新,请完成前不要进行其它操作:</strong>\r\n</td></tr>\r\n";
$revalue .= "<tr><td>\r\n<iframe name='stafrm' frameborder='0' id='stafrm' width='100%' height='200px' src='$jumpUrl'></iframe>\r\n</td></tr>\r\n";
$revalue .= "</table>";
}
else
{
$revalue = '';
}
return $revalue;
}
第二步,请修改member目录下archives_add.php或archives_sg_add.php(独立模型),在“$wintitle = "成功发布内容!";”这行上面添加以下内容:
$msg = "<div style=\"line-height:36px;height:36px\">{$msg}</div>".GetUpdateTest();
最后一步:从登陆目录(例如dede,如果没改动的话)复制文件task_do.php粘帖到member目录下,然后进后台更新系统缓存,over。