在传统的CMS软件中,分页列表最多只能够修改样式,而分页列表中每一页的地址,分页的数量等都属于系统固定数据,由系统自动生成,且不可更改。
在SiteFactory中进行传统方式的内容手动分页格式如下图
选择手动分页后,系统会自动生成分页列表:
大家可以看到,分页列表1,2,3,4页已经就位,而且每一页的地址是由系统生成出来固定的,生成的分页源码如下。
<span id="pe100_page_contentpage" class="pagecss">共4页 您在第1页
<a href="1.aspx">首页</a>
<a href="1.aspx"></a>
<b><a href="1.aspx">1</a></b>
<a href="1_2.aspx">2</a>
<a href="1_3.aspx">3</a>
<a href="1_4.aspx">4</a>
<a href="1_2.aspx">下一页</a>
<a href="1_4.aspx">尾页</a>
跳转到<select id='Jumppage' onchange="if(this.options[this.selectedIndex].value!=''){location = this.options[this.selectedIndex].value;}">
<option value='1.aspx' selected>1</option>
<option value='1_2.aspx'>2</option>
<option value='1_3.aspx'>3</option>
<option value='1_4.aspx'>4</option>
</select>页
本页共有67个字符</span>
在3系列的SiteFactory系统中,针对内容分页,我增加了一个新功能,可以极大的提高分页的灵活性,这就是分页辅助声明,由于之前一直很忙,也没有时间通过文档的方式公布,很多人还不了解有这个辅助声明的存在,现在我离开了开发岗位,终于可以抽时间把这个功能介绍给大家,希望能够帮助大家把网站运营的更好。
首先,我们要知道什么是分页辅助声明,它实际上是一个类似XML结构的代码段,通过在内容页中插入这个代码段,可以指定内容页生成分页后,每一页的名称和连接地址,甚至可以“伪造”出并不存在的页面,声明的基本结构如下:
[pageset]
[item]
[title]第一页标题[/title]
[url]第一页地址[/url]
[/item]
[item]
[title]第二页标题[/title]
[url]第二页地址[/url]
[/item]
...
...
[item]
[title]第N页标题[/title]
[url]第N页地址[/url]
[/item]
[/pageset]
其中每一页为一个ITEM节点,它包含子节点TITLE,URL。这两个子节点可以为空,系统会自动用默认数据补充。比如上面那个分页的例子,会生成4个内容页面,但我们可以通过分页辅助声明,让它多出一个页面来,这个页面可以指向任何一个我们定义的地址,格式如下。
[pageset]
[item][/item]
[item][/item]
[item][/item]
[item][/item]
[item][title]转到搜狐[/title]http://www.sohu.com[/item]
[/pageset]
在这个例子里,前面四个没有内容的ITEM节点是用来占位的,它告诉系统,前四个分页依旧按系统默认连接输出,第五个并不存在的连接则是被“伪造”出来的,它连接到搜狐的网站。
使用时,首先该内容页应设置为“手动分页”,虽然自动分页也可以,但不容易控制输出结果。然后把把上面这段声明放在内容页的任何一个位置,放置时唯一要注意的是中间不要换行,因为编辑器会打乱正常的XML格式(注:这里本来是应该在编辑器里开发一个按钮自动实现的,可惜一直没时间弄)。
保存文章后,我们来看看新的分页结果。
再看看生成的源码,可以看到第5页是指向了搜狐的。
<span id="pe100_page_contentpage" class="pagecss">共4页 您在第1页
<a href="1.aspx">首页</a>
<a href="1.aspx"></a>
<b><a href="1.aspx">1</a></b>
<a href="1_2.aspx">2</a>
<a href="1_3.aspx">3</a>
<a href="1_4.aspx">4</a>
<a href="http://www.sohu.com">5</a>
<a href="1_2.aspx">下一页</a>
<a href="http://www.sohu.com">尾页</a>
跳转到<select id='Jumppage' onchange="if(this.options[this.selectedIndex].value!=''){location = this.options[this.selectedIndex].value;}">
<option value='1.aspx' selected>1</option>
<option value='1_2.aspx'>2</option>
<option value='1_3.aspx'>3</option>
<option value='1_4.aspx'>4</option>
<option value='http://www.sohu.com'>5</option></select>页
本页共有67个字符</span>
我们还可以进一步修改每个分页的名称,用以突出某个重点分页,比如我假设第三页为重点页,构造分页辅助声明如下:
[pageset]
[item][/item]
[item][/item]
[item]
[title]重点页[/title]
[/item]
[item][/item]
[item][title]转到搜狐[/title]http://www.sohu.com[/item]
[/pageset]
同时修改内容分页标签,把原来的
{$loop range="5"}<a href="{$pageurl/}">{$pageid/}</a> $$$<b><a href="{$pageurl/}">{$pageid/}</a></b> {$/loop}
修改为
{$loop range="5"}<a href="{$pageurl/}">{$pagetitle/}</a> $$$<b><a href="{$pageurl/}">{$pagetitle/}</a></b> {$/loop}
查看效果:
分页辅助声明是个小众型的功能,这个功能使用起来比较复杂,但适合大型站点使用。据此,大家可以自行发挥它的用途,比如介绍商品的站,商品评测页的最后一页可以指向该商品的网站购买连接。或者连接网站内不同部分的内容到同一篇文章的内容里。
备注:这个功能,与原先系统具备的分页标题功能可同时工作,互不影响。