在不同的Sitecore项目类型上显示不同。
|
让我们用我的具体例子来解释:
我有3种新闻(模板):新新闻,外部新闻,产品发布;
我想以不同的方式在主页上显示它们。
现在,我在xsl中做一个简单的事情:
<xsl:variable name=\"upcoming\" select=\"./item[sc:formatdate(sc:fld(\'End Date\',.),\'yyyyMMdd\') >= sc:formatdate($now,\'yyyyMMdd\')\" />
<xsl:for-each select=\"$upcoming\">
<div>
<h2>
<sc:text field=\"Name\" />
</h2>
<p>
<sc:text field=\"Description\" />
</p>
</div>
</xsl:for-each>
拳头解决方案将是这样的(显然我不知道真正的语法):
<xsl:choose>
<xsl:when test=\"template = \'external news\'\">
<!-- something -->
</xsl:when>
</xsl:choose>
但更好的办法是采用一种更加面向对象的方法,并具有一个make_body()函数绑定到我可以从主页渲染中调用的项目。
还是Sitecore可以渲染可以显示在任何页面中的项目?由项目本身处理的渲染图?
你怎么看 ?
更新资料
我想我还不够清楚:
我要在主页上显示最后一个新闻框:
<div class=\"last_news\">
<h2>Last News</h2>
<!-- Loop Goes here -->
</div>
当我的不同新闻类型(新的,外部新闻,产品发布)显示在该框中时,它们的外观会有所不同:
新:
<div class=\"news\">
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href=\"##news url##\">read more</a>
</div>
外部新闻:
<div class=\"news external\">
<img src=\"##website logo##\">
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href=\"##external url##\">read more on www.<!-- site name --></a>
</div>
产品发布:
<div class=\"news product_release\">
<div class=\"float_left\">
<img src=\"##product logo##\">
<a href=\"##product url##\">Download now</a>
<a href=\"##product download url##\">Download now</a>
</div>
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href=\"##news url##\">read more</a>
</div>
每种新闻类型都有自己的模板,其中包含不同的字段
新增:标题,删节文本,全文
外部新闻:标题,删节文本,外部URL,网站选择框
产品发布:标题,删节文本,全文,产品选择框
我可以为每种类型制作一个子布局(.ascx)或渲染(.xslt),但是现在我想知道如何在循环中显示这些布局。
我可以在循环中放入一个占位符,Sitecore会知道当前项目必须使用占位符吗?
没有找到相关结果
已邀请:
2 个回复
骇毖煽洁铂
功能。我认为您会这样写:
然后,您只需为每个模板制作一个。警告我不是100%确定@template = \'x \'是正确的语法。 我希望这有帮助。
疏腔傻小雹