用Dedecms做blog要做到有blog的样子首先要解决的就是首页分页问题,dedecms5.6新版中可以用arclist标签+Ajax实现首页分页。
方法如下
1、必须在首页<head></head>中引入
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> |
2、必须加入
<script> function multi(pagenum,tagid) { var taget_obj = document.getElementById(tagid); var taget_obj_page = document.getElementById("page_"+tagid); myajax = new DedeAjax(taget_obj,false,false,'','',''); myajax.SendGet2("/plus/arcmulti.php?mtype=0&pnum="+pagenum+'&tagid='+tagid); myajax = new DedeAjax(taget_obj_page,false,false,'','',''); myajax.SendGet2("/plus/arcmulti.php?mtype=1&pnum="+pagenum+'&tagid='+tagid); DedeXHTTP = null; } </script> |
3、在arclist标签中必须含有tagid与pagesize参数。 第一个是缓存名,第二个是单页条数。
{dede:arclist tagid='index' pagesize='5'} <li><b><a href="[field:arcurl/]" style="color: #FF6633">[field:title/]</a></b></li> <p class="my_tj_info">[field:info/]...</p> {/dede:arclist} |
4、必须存在arcpagelist标签,且必须声明缓存参数tagid且缓存参数与arclist中tagid保持一致
{dede:arcpagelist tagid='index'/} |
此方法的优缺点:
优点:可以很方便的在首页进行索引全站最新更新文档。
缺点:是ajax调用的,所以没有办法索引第二页后面的内容。
也就是你的分页超过2页,第三页就没办法索引,所以放弃了此方法。
第二种比较简单:交叉栏目ID 实现dedecms首页分页
1、首先你在后台新建一个"首页"的的栏目
2、设置首页栏目
3、模板就直接用列表模板就可以了,如果你技术好的话,可以设计成自己想要的模板。
4、主要注意几点:(1)交叉的id只能写最后一级的栏目id,就是你文章的隶属栏目id;(2)更新不能用首页更新要用 更新栏目HTML 首页链接地址还是不变。
5、可以实现了。
第三种方法:自由列表实现dedecms首页分页。
1、进入后台 核心---》频道模型--》自由列表管理---》添加列表。
2、就是定义自由列表:
(注:我们是为了首页分页所以列表HTML必须存放目录否则无法显示,所以只保留{cmspath})
下图为模板调用的标签:
用此方法实现首页分页,模板只能用首页模板。也就是说后台中的更新首页HTML功能就废了,以后一键生成网站以后要到自由列表中去生成一次。否则网站首页为空白。
dedecms自由列表功能有个令人蛋疼的现象,就每次生成之前都要更改一次<不使用默认首页>当然这里对于其他地方需要自由列表影响不大,但是我们要是用自由列表实现首页分页就蛋疼了。
解决方法如下:
打开Dede(默认后台管理目录)目录下的makehtml_freelist_action.php (创建自由列表)找到
$dsql->ExecuteNoneQuery("Update `dede_freelist` set nodefault='1' where aid='$startid';"); |
找到上面代码行,在前面加上// 注释掉就可以了。