2012-10-31 93 views
2

我'从这样的一个模板调用新闻列表(从标准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> 

我不能让它显示这个消息作为一个列表。它只显示细节模式中的第一个newsitem。

是什么在新闻列表功能下面的行吗?

我怎样才能使控制显示我的列表中的新闻不是第一次(最近)的项目?

我曾接触过一个更有经验的复合开发者,他不能做任何在列表中Composite.News.Newslist演出的消息。

更新: 我能SE的两仪网站不使用标准的新闻包。这是什么原因?

回答

0

两仪示范区具有基于全球数据类型“Omnicorp.Content.News”和XSLT的功能自己的新闻模块“Omnicorp.Content.News”

Composite.News包是不同的,根据在名为“Composite.News.NewsItem”和两个XSLT的功能页面数据的文件夹:“Composite.News.NewsList”和“Composite.News.NewsTeasers”。所以要使用这个包,你应该遵循这里描述的步骤 - http://docs.composite.net/Packages/CompositeNews:创建一个页面类型=“新闻页面”。将新闻项目添加到新闻页面数据文件夹(在页面下)。在内容选项卡上,有Composite.News.NewsList函数,它将呈现带有指向详细信息链接的新闻列表。

+0

好吧 - 但我怎么可以让NewList展现在一旁分页?我不能让所有的新闻被列在内容页面 – user1784131

+0

请注意,新闻项目被附加到特定的页面,功能NewsList应该被添加到这个页面的内容,只有在这个页面上你会看到列表它附加的新闻。你可以在你想要的地方使用函数NewsTeasers,它会呈现链接到resent新闻项目。 – Inna

+0

但是,我可以让NewsTeasers列出所有新闻并设置分页吗? – user1784131

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 &gt; 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 &lt; @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