在PHPCMS中进行二次开发以增加顶踩功能的方法
要在phpcms二次开发中增加顶踩功能,首先需要在模型中添加点赞和反对的字段,然后在控制器中添加相应的操作方法。在视图中,为每个文章或评论添加点赞和反对的按钮,并绑定相应的事件。当用户点击这些按钮时,触发控制器中的操作方法,更新数据库中的点赞和反对字段。同时,需要对点赞和反对的数量进行实时更新,可以在前端使用Ajax技术实现。最后,可以对点赞和反对的数据进行统计分析,例如显示热门文章或评论等。
phpcms默认是没有文章顶踩功能,如果你是用phpcms做网站,但网站设计需要在文章中添加顶踩功能。怎么办?
下面详细介绍下phpcms如何添加顶踩功能步骤:
1、在后台模型增加两个字段,一个goodpost,一个badpost;这个步骤简单,按后台新增加字段下一步就行了。
2、在模块/phpcms/modules/content/增加扩展函数MY_index.php,代码如下:
classMY_indexextendsindex{function__construct(){parent::__construct();}//评价publicfunctiondigg(){$modelid=intval($_GET['modelid']);$id=intval($_GET['id']);$digg=intval($_GET['digg']);$this->db->set_model($modelid);//$this->db->table_name.='_data';$data=$this->db->get_one(array('id'=>$id),'goodpost,badpost');if($digg=="good"){$this->db->update(array('goodpost'=>'+=1'),array('id'=>$id));echo++$data['goodpost'];}else{$this->db->update(array('badpost'=>'+=1'),array('id'=>$id));echo++$data['badpost'];}}}
3、在/statics/js/加入digg.js,js代码如下:
functiondigg(cid,d,mid){varsaveid=GetCookie('diggid');if(saveid==cid){alert("已经喜欢过了!");returnfalse;}else{$.get("/index.php?m=content&c=index&a=digg",{modelid:mid,id:cid,digg:d},function(r){if(d=="good"){$('#up').html(r);}else{$('#down').html(r);}});SetCookie('diggid',cid,1);}}functionGetCookie(c_name){if(document.cookie.length>0){c_start=document.cookie.indexOf(c_name+"=")if(c_start!=-1){c_start=c_start+c_name.length+1;c_end=document.cookie.indexOf(";",c_start);if(c_end==-1){c_end=document.cookie.length;}returnunescape(document.cookie.substring(c_start,c_end));}}returnnull}functionSetCookie(c_name,value,expiredays){varexdate=newDate();exdate.setDate(exdate.getDate()+expiredays);document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString());//使设置的有效时间正确。增加toGMTString()}
4、在顶踩页面加入digg.js,然后在显示顶踩数标签处加入digg()函数就行了。
<span><ahref="javascript:void(0);"onclick="digg({$id},1,{$modelid})">顶</a>:<spanid="up">{$up}</span></span><span><ahref="javascript:void(0);"onclick="digg({$id},0,{$modelid})">踩</a>:<spanid="down">{$down}</span></span><scripttype="text/javascript"src="{JS_PATH}digg.js"></script>