我从这样的模板中调用NewsList(来自标准的Composite.News包):
<f:function name="Composite.News.NewsList" xmlns:f="http://www.composite.net/ns/function/1.0">
<f:param name="ListOptions" value="Show date,Show teaser" />
<f:param name="PageSize" value="10" />
<f:param name="DateFormat" value="dddd, MMMM dd, yyyy" />
</f:function>
我无法将其作为列表显示。它只显示detailsmode中的第一个newsitem。
NewsList功能的下一行是做什么的?
如何让控件在列表中显示我的新闻,而不是第一个(最近的)项目?
我和一位经验丰富的复合材料开发人员谈过,他无法让Composite.News.Newslist在列表中显示新闻。
更新: 我可以看到OMNICORP网站没有使用标准的新闻包。这是什么原因?
答案 0 :(得分:0)
Omnicorp演示网站拥有自己的新闻模块,该模块基于全球数据类型&#34; Omnicorp.Content.News&#34;和XSLT功能&#34; Omnicorp.Content.News&#34;
Composite.News 包是不同的,并且基于名为&#34; Composite.News.NewsItem&#34;的页面数据文件夹。和两个XSLT函数:&#34; Composite.News.NewsList&#34;和&#34; Composite.News.NewsTeasers&#34;。因此,要使用此软件包,您应该按照此处描述的步骤进行操作 - http://docs.composite.net/Packages/CompositeNews:创建页面类型为&#34;新闻页面&#34;的页面。将新闻项添加到新闻页面数据文件夹(在页面下)。在“内容”选项卡上,使用Composite.News.NewsList函数,该函数将为新闻列表提供指向详细信息的链接。
答案 1 :(得分:0)
但是我可以让NewsTeasers列出所有新闻并设置分页吗?
是的,你可以。您可以修改现有的NewsTeaser功能或创建新功能。在“函数调用”选项卡上,修改“Composite.News.NewsItem.GetNewsItemXml”函数调用,并使用下一个值指定下一个参数“ PageNumber ”和“ IncludePagingInfo ”:
<f:param name="PageNumber">
<f:function name="Composite.Web.Request.QueryStringIntegerValue">
<f:param name="ParameterName" value="Page" />
<f:param name="FallbackValue" value="1" />
</f:function>
</f:param>
<f:param name="IncludePagingInfo" value="True" />
在功能模板标签上添加模板以显示PagingInfo:
<xsl:param name="pagingInfo" select="/in:inputs/in:result[@name='GetNewsItemXml']/PagingInfo" />
...
<xsl:if test="$pagingInfo/@TotalPageCount > 1">
<div class="Paging">
<xsl:apply-templates select="$pagingInfo" />
</div>
</xsl:if>
...
<xsl:template match="PagingInfo">
<xsl:param name="page" select="1" />
<xsl:if test="$page < @TotalPageCount + 1">
<xsl:if test="$page = @CurrentPageNumber">
<span><xsl:value-of select="$page" /></span>
</xsl:if>
<xsl:if test="not($page = @CurrentPageNumber)">
<a href="?Page={$page}"><xsl:value-of select="$page" /></a>
</xsl:if>
<xsl:apply-templates select=".">
<xsl:with-param name="page" select="$page+1" />
</xsl:apply-templates>
</xsl:if>
</xsl:template>
有关如何将分页添加到XSLT的更多信息,请阅读本文 - http://docs.composite.net/XSLT/SortingAndPaging