toymen | 发表于:10-12-23 23:40 [添加收藏] 楼主 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
既然是CMS,相信不少人拿来做文章系统。如果这个文章系统带有会员功能的话,相信这个“添加收藏”会有一定的用途。
其实在kc企业版中,这些功能基本都具备,只是没有完整写出来而已…… 第一步:先做准备工作。 在数据库中找到king_favorite数据表,增加两个字段:kpath、ktitle。 第二步:将以下代码复制到../portal/index.php中。 代码如下: function king_ajax_favorite(){ global $king; //获取用户登录状态,如果没有登陆,提示并返回 $king->load('user'); if($user=$king->user->checkLogin()){//已登录 $userid=$user['userid']; unset($user); }else{//未登录 kc_error(您还没有登陆!); return; } //接收页面提交的数据 $kid=kc_get('kid',2,1); $modelid=kc_get('modelid',22,1); $listid=kc_get('listid',2,1); $ktitle=kc_get('ktitle',0,1); $url=kc_get('kpath',0,1); //判断该用户是否已经收藏本页,已收藏则返回 $result=$king->db->getRows_one("select kid from %s_favorite where userid=$userid and listid=$listid and kid=$kid"); if($result){ kc_error(您已经收藏过该文章,请勿重复收录!); return; } //记录收藏次数 $model=$king->portal->infoModel($modelid); if($res=$king->db->getRows_one("select nfavorite from %s__{$model['modeltable']} where kid=$kid")){ $nfavorite=$res['nfavorite']+1; $_array=array( 'nfavorite' =>$nfavorite, ); $king->db->update('%s__'.$model['modeltable'],$_array,"kid=$kid"); }else{ kc_error($king->lang->get('portal/error/notq')); return; } //写数据库 $_array=array( 'kid' =>$kid, 'userid' =>$userid, 'listid' =>$listid, 'url' =>$url, 'ktitle' =>$ktitle, ); $king->db->insert("%s_favorite",$_array); $xmlpath=$king->config('xmlpath','portal').'/portal/'.$modelid.'/'.wordwrap ($kid,1,'/',1).'.xml'; kc_f_delete($xmlpath); $cachepath='portal/favorite/'.$modelid.'/'.$kid; $king->cache->del($cachepath); $js="$('#k_favorite').html($nfavorite);"; kc_ajax('OK','<p class="k_ok">'.$king->lang->get('portal/ok/submit').'</p>',0,$js); } 第三步:在文章模板中加入“添加收藏”代码 代码如下: <input name="ktitle" id="ktitle" value="{king:title/}"/> <input name="kpath" id="kpath" value="{king:path/}"/> <a href="javascript:;" class="k_ajax" rel="{URL:'{config:system.inst/} portal/index.php',CMD:'favorite',modelid:{king:modelid/},listid:{king:listid/},kid: {king:kid/},ktitle:$('#ktitle').val(),kpath:$('#kpath').val(),userid:$('#userid').val()}">加入收 藏</a> 第四步:会员调用代码 代码如下: {king:dbqueryquery="select ktitle,kpath from %s_favorite where userid=(king:userid/) order by kid desc limit 0,10"} <p><a href="{king:kpath/}">{king:ktitle/}</a></p> {/king:dbquery} 完工! 要是想达到官方论坛这样的效果,还需要修改,可惜俺不会,自己琢磨吧! 调用时的分页,坛里有相关的帖子,自己看看!
Ta最近还发表过
[使用]
图片轮显播放代码,立贴记忆
(17-12-11)
[分享]
关于弹窗提示遮罩层位置不同浏览器兼容解决的小经验
(17-05-11)
[使用]
KC-php后台管理路径修改方法记录
(16-09-12)
[错误]
PHP SP1 图片上传后权限问题,请高人指点
(15-12-08)
[分享]
PHP+FLASH头像上传编辑插件FOR KingCMS php版
(15-06-15)
随机阅读
[建议]
会员发布了分类信息,可以花金币买信息排名
(13-10-31)
[疑问]
自定义模块 安装生成后 显示还没有安装此模块 请返回
(13-06-08)
[其他]
快好发布了吧
(13-01-16)
[使用]
怎样才能下载企业程序代码啊?
(13-01-12)
[其他]
寻找巴黎的隐蔽购物处
(12-07-28)
|
toymen | 发表于:10-12-24 21:07 编辑于:12-24 21:29 10楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
如需阅读本内容,请登录或注册成为KingCMS官方网站会员!
|
一点玉米 | 发表于:10-12-23 23:43 沙发 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() |
这个得顶
有没有演示啊 |
luke | 发表于:10-12-23 23:50 板凳 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
不错!啊!
|
toymen | 发表于:10-12-23 23:56 4楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
看来还是有图有真相呵!(演示为方便,没判断是否收藏,所以标题都是一样的)
1、修改数据表,加字段。 ![]() 2、文章“添加收藏”链接 ![]() 3、调用结果 ![]() |
一点玉米 | 发表于:10-12-24 00:02 5楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() |
赞一个
|
toymen | 发表于:10-12-24 09:02 6楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
其实第一步是可以省略的,只不过调用的时候需要循环。
首先根据userid调出listid、kid,然后再用listid、kid调出文章路径、标题等。相应的代码改一下就行了。 以下代码没经过测试,有兴趣自己试吧: {king:dbqueryquery="select listid,kid from %s_favorite where userid=(king:userid/) order by kid desc"} {king:portal.article where listid=(king:listid/) kid=(king:kid/)} <p><a href="{king:kpath/}">{king:ktitle/}</a></p> {/king:portal.article} {/king:dbquery} |
nb | 发表于:10-12-24 11:14 7楼 [回复] #Top# |
---|---|
![]() ![]() ![]() |
技术贴。。+1
|
pktsandy | 发表于:10-12-24 16:52 8楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
新手学习!这个还不如插个AddThis!
|
toymen | 发表于:10-12-24 17:16 编辑于:12-24 17:20 9楼 [回复] #Top# |
---|---|
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Reply: 8楼
不好意思,俺不知ADDTHIS! |