18
2013
09

dedecms的arclist分页

第一步

在</head>前加上这段JS代码,分页是用ajax分页

<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script> 
<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> 


第二步

在arclist标签中必须含有tagid与pagesize参数。 第一个是缓存名,第二个是调用数量,第三个是单页条数;例如:
{dede:arclist tagid='index' row='100' 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}


第三步

必须存在arcpagelist标签,且必须声明缓存参数tagid且缓存参数与arclist中tagid保持一致。例如:

{dede:arcpagelist tagid='index'/}


第四步(这个最重要)

通常,DEDE除列表页,首页跟文章内容页是没有分页功能的。为了让首页看起来跟博客一样,有大配图,文章小描述,首页需要调用最新文章,而且都有一个配图以及描述,使用arcpagelist来进行AJAX分页,在这里遇到一个非常大的问题,就是无法法索引第二页后面的内容

对代码进行跟踪,最终才确定,这个分页的样式不是自已定义的,而是根据代码调用arcpagelist的标签名自动获取的。比如定义的是{dede:arcpagelist tagid='index'/},那么,dede_arcmulti表中会自动生成一个index的分页数据,格式就是{dede:arclist tagid='index' row='100' titlelen='60'  typeid='2,3,4' pagesize='10'}标签中的内容,因为字义了tagid='index',所以它就生成一个以index为命名的分页数据。

其实到这里,我还是不明白,为什么这个表的数据是自动生成的,而我的分布样式怎么会不正确呢?就是打开页面的时候,样式正常,点第二页,变形,第三页,变形,点回第一页,同样变形。

最后,我检查了一下这个数据表中的innertext字段内容,里面保存的是不完整的一段HTML代码,不完整?原因是因为此字段长度不够,是仅有255字符的char类型字段,马上改成text类型,重新生成首页,问题解决,公页样式正常了。

« 上一篇 下一篇 »