ThinkCMF(二):多个分类下的文章显示并分页;导航高亮;大图轮播图(slides);点赞、收藏、浏览数组件的使用;redirect里用U方法添加地址
一、查找多个分类下的文章放在一个页面显示并分类where:id in(1,2,3);
<php> $posts=sp_sql_posts_paged('field:post_title,post_date,object_id,term_id;order:post_date desc;where:term_id in(1,2,3)'); </php> <foreach name="posts['posts']" item="v"> <div class="more_new_fo_l_do"> <div class="more_new_fo_l_do_l"><a title="{$v.post_title}" target="_blank" href="{:leuu('article/index',array('id'=>$v['object_id'],'cid'=>$v['term_id']))}">{$v.post_title}</a></div><div class="more_new_fo_l_do_r">{:date('Y-m-d',strtotime($v['post_date']))}</div>//切换时间格式:如2017-01-01 </div> </foreach> <div class="fenye"><ul>{$posts.page}</ul></div>//分页
二、导航高亮,一个比较笨的方法,多建几个script,对应栏目,根据索引高亮显示
/*导航效果开始*/ var sj = $(".cd_wai").children("ul").children("li:eq("+4+")"); sj.append("<div class='sanjiao' id='sjao'></div>");//在高亮的li里面添加一个三角显示效果 $(".cd_wai").children("ul").children("li:eq("+4+")").addClass("cur"); $(".cd_wai").mouseenter(function(e) { $(this).children("ul").children("li").removeClass("cur"); }).mouseleave(function(){ $(this).children("ul").children("li:eq("+4+")").addClass("cur"); }); /*导航效果结束*/
三、后台幻灯片制作轮播图来调取
<div id="banner_im_g">
<div id="carousel-ad" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active" id="banner_lunbo"><!--banner1-->
<php>
$home_slides=sp_getslide("protal_index");
/*var_dump($home_slides[1]['slide_pic']);*/
</php>
<img class="lb_img banner_lb_img" src="{:sp_get_asset_upload_path($home_slides[1]['slide_pic'])}" alt="First slide">
<!--<img class="lb_img banner_lb_img" src="__TMPL__Public/assets/images/banner_lb.jpg" alt="First slide">-->
</div><!--banner1-->
<!--banner2--><div class="item">
<img class="lb_img banner_lb_img" src="{:sp_get_asset_upload_path($home_slides[0]['slide_pic'])}" alt="Second slide">
</div><!--banner2-->
</div>
</div>
</div>

四、点赞、收藏、浏览数组件的使用
1.thinkcmf个人用户中心->我的收藏页面(lzfc/user/favorite.html)、在文章页面(如:articel.html)里面添加收藏、点赞、浏览数组件
2.article_new.html(在此文章的head里面首先引入<link href="__TMPL__Public/assets/simpleboot/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">;路径为themes/simplebootx/;此css文件的作用是点赞收藏组件的图标显示)
<php>
$tag=M('posts')->where(array('id'=>$id))->select();
$t=$tag[0];
$tags=M('term_relationships')->where(array('object_id'=>$id))->select();
$tas=$tags[0];
</php>
<div><!--收藏开始-->
<php>
$article_id = $t['id'];
$term_id = $tas['term_id'];
$post_titlea=mb_substr($t['post_title'], 0, 10, 'utf-8');
$post_titleb=mb_substr($t['post_title'], 0, 15, 'utf-8');
</php>
<!-- id="favorite_btn" href="{:U('user/favorite/do_favorite',array('id'=>$article_id))}" class="js-favorite-btn"-->
<a id="favorite_btn" title="收藏此文章" class="js-favorite-btn sc_dianzan" href="{:U('user/favorite/do_favorite',array('id'=>$article_id))}" data-direction="{$post_titleb}" data-title="{$post_titlea}" data-url="{:leuu('article/index',array('id'=>$article_id,'cid'=>$term_id))}" data-key="{:sp_get_favorite_key('posts',$article_id)}"><i class="fa fa-star-o"></i>
</a>
<script>
$("#favorite_btn").click(function(){
var key = $("#favorite_btn").attr("data-key");
var title = $("#favorite_btn").attr("data-title");
var url = $("#favorite_btn").attr("data-url");
var direction = $("#favorite_btn").attr("data-direction");
$.ajax({
url:"{:U('user/favorite/shoucang')}",
data:{key:key,title:title,url:url,direction:direction},
datatype:"TEXT",
type:"POST"
})
})
</script>
</div><!--收藏结束-->
<div><!--点赞开始-->
<a title="点赞此文" href="{:U('article/do_like',array('id'=>$object_id))}" class="J_count_btn sc_dianzan"><i class="fa fa-thumbs-up"></i><span class="count">{$t['post_like']}(点赞次数)</span></a>
</div><!--点赞结束-->
<div><!--浏览数结束-->
<a title="此文被浏览 {$t['post_hits']} 次" class="sc_dianzan" href="javascript:;"><i class="fa fa-eye"></i><span>{$t['post_hits']}(浏览次数)</span></a>
</div><!--浏览数结束-->
3.FavoriteController.class.php
<?php namespace User\Controller; use Common\Controller\MemberbaseController; class FavoriteController extends MemberbaseController{ // 前台个人中心我的收藏列表 public function index(){ $uid=sp_get_current_userid(); $user_favorites_model=M("UserFavorites"); $where=array("uid"=>$uid); $count=$user_favorites_model->where($where)->count(); $page=$this->page($count,10); $favorites=$user_favorites_model->where($where) ->order("createtime desc") ->limit($page->firstRow,$page->listRows) ->select(); $this->assign("page",$page->show("default")); $this->assign("favorites",$favorites); $this->display(":favorite"); } //用户收藏试用 //写此方法的作用是在下边的do_favorite里面接受不到前台传过来的key值,试了几种办法后没有实现,没办法,写了一个点击事件,先用ajax传到此方法,session保存,再在do_favorite方法里面提取session使用,前提是先提交shoucang()方法,再提交do_favorite()方法 public function shoucang() { $key = I('param.key'); $title = I('param.title'); $url = I('param.url'); $direction = I('param.direction'); session('key',$key); session('title',$title); session('url',$url); session('direction',$direction); } // 用户收藏 public function do_favorite(){ $key = session("key"); $title = session("title"); $url = session("url"); $direction = session("direction"); $key=sp_authcode($key); if($key){ $authkey=C("AUTHCODE"); $key=explode(" ", $key); $authcode=$key[0]; if($authcode==C("AUTHCODE")){ $table=$key[1]; $object_id=$key[2]; $post=I("post."); unset($post['key']); session('key',null); //删key++ $post['table']=$table; $post['object_id']=$object_id; $uid=sp_get_current_userid(); $post['uid']=$uid; $user_favorites_model=M("UserFavorites"); $find_favorite=$user_favorites_model->where(array('table'=>$table,'object_id'=>$object_id,'uid'=>$uid))->find(); if($find_favorite){ $this->error("亲,您已收藏过啦!",0); }else { $post['title'] = $title;//++ $post['url'] = $url;//++ $post['description'] = $direction;//++ $post['createtime']=time(); $result=$user_favorites_model->add($post); if($result){ $this->success("收藏成功!",0); session('title',null); //删title session('url',null); //删url session('direction',null); //删direction }else { $this->error("收藏失败!",0); } } }else{ $this->error("非法操作,无合法密钥!",0); } }else{ $this->error("非法操作,无密钥!",0); } } // 用户取消收藏 public function delete_favorite(){ $id=I("get.id",0,"intval"); $uid=sp_get_current_userid(); $post['uid']=$uid; $user_favorites_model=M("UserFavorites"); $result=$user_favorites_model->where(array('id'=>$id,'uid'=>$uid))->delete(); if($result){ $this->success("取消收藏成功!"); }else { $this->error("取消收藏失败!"); } } }
五、redirect方法里面用U方法添加地址
redirect(U('list/index',array('id'=>159)));
____________
浙公网安备 33010602011771号