您的位置:首页> 日志> 动易系统 正文
DTOP

节点型子站首页特殊栏目调用

RockSoar | 2013年12月31日 |

>>收藏本文 已有 0条评论

    有些项目的要求是,在一套系统中,实现多个子站,于是就有了“节点型子站”这个方式出现了。这种项目多是只定制了一套子站的模板,输出制作也只是做一套模板。后期有很多子站的话,就客户自己完成。

    关于子站模板有两种制作思路:一、内容调用写的是具体的节点ID,后续不同的子站,需要客户复制一份模板,在改节点ID。二、内容的调用是自动的,但要求子站节点结构、网页布局符合一定的规律,不能变化差异很大。这里说下第二种思路,第一种操作比较麻烦,工作量也比较大,并且需要一定的网页制作基础。

    拿一个项目的效果图作说明,大部分节点型子站的首页布局倾向于文章首页,如下图A、B、C三个区,A和C都是一个不固定的栏目,B则是子站的一级栏目。这里B就用循环子栏目即可,只需注意一点就是A和C的也是子站的子栏目,肯定很多客户是不希望看到栏目一样的栏目在同一页面出现两次,所以这里要提示客户,可以用系统的功能,设置"对应节点 - 前台样式" 下的 "是否在父栏目的分类列表处显示",就可以调节这里的栏目显示符合要求。

    重点是A和C栏目的调用问题,要怎么处理这里的标签才能使客户操作起来方便。在这项目上我实施的思路是:A和C分别调用子站下节点排行第X的节点栏目,客户想在不同子站A和C处的栏目不同,可以通过后台调节节点排序就可以实现想要的效果。确定了思路就可以开始写标签了,主要解决的是怎么调用到想要的那个节点ID,也是写了下面这个标签。

    {PE.Label id="显示指定子栏目-序号" ph="1" parentid="0" /}

    参数说明:ph - 节点排序的序号,parentid - 子站节点ID(因为是首页可以是自动传入值)

    标签查询子站下的子节点,根据节点OrderID排序,再做判断如果ph传入的值等于position就显示结果。下面是主要代码:

<xsl:if test="position() = $ph">
<xsl:value-of select="NodeID"/>
</xsl:if>

    很简单的一个标签,但是对这样要求的子站,能给客户提供一个比较灵活的设定不同栏目显示的方法,也不需要去改模板。标签下载