因某些原因,比如工作统计责任划分等,有时文章后面要显示发布编辑的名字。
网上找的一些说PHPCMS解决发布者不显示问题的帖子。不知是由于说的是以前的版本,还是其它原因。文章的行数对不上,按那个方法要改三个文件以上。而且按它说的改了也没有效果。
自己研究了下代码,最后只在一个文件中添加代码,就解决了。特记录之。
第一步:修改 content_model.class.php 文件
1,在add_content函数添加文章部分
第222行 在生成静态页前面加上
$username=$systeminfo['username'];
改成
$username=$systeminfo['username']; //dhs
//生成静态
if(!$isimport && $data['status']==99) {
//在添加和修改内容处定义了 INDEX_HTML
if(defined('INDEX_HTML')) $html->index();
if(defined('RELATION_HTML')) $html->create_relation_html($catid);
}
另外,如果要在修改时也能更新此信息,可在320行附近
//生成静态
$html = pc_base::load_app_class('html', 'content');
if($urls['content_ishtml']) {
在它的前面加上$username=$systeminfo['username'];
第二步 在生成页面的模板中,加上发布人信息。
<p class="eidtor" >责任编辑:{$username}</p>
这里,会显示在文章左下方,不符合习惯。可将右浮动写在CSS文件中。如果不想改CSS文件。可以写成这样
<p class="eidtor" style="float:right" >责任编辑:{$username}</p>
补充
今天到单位测试,发现编辑时$username=$systeminfo['username'];有时为空值。找到有效果的解决办法是
/*修复编辑后不显示编辑用户名的问题,传递模版*/
$temp = $this->get_one(array('id'=>$id));
$username =$urls['data']['username'] = $temp['username'];
//end
//生成静态
$html = pc_base::load_app_class('html', 'content');
if($urls['content_ishtml']) {
$html->show($urls[1],$urls['data']);
}