2

次のようなテンプレートから (標準の Composite.News パッケージから) NewsList を呼び出しています。

<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>   

ニュースをリストとして表示することができません。詳細モードでは、最初のニュースサイトのみが表示されます。

NewsList 関数の以下の行は何をしますか?

コントロールのニュースを最初の (最新の) 項目ではなくリストに表示するにはどうすればよいですか?

もっと経験豊富な Composite 開発者と話をしたところ、彼は Composite.News.Newslist でニュースをリストに表示することもできませんでした。

更新: OMNICORP サイトは標準のニュース パッケージを使用していないことがわかります。その理由は何ですか?

4

2 に答える 2

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 の記事を参照してください。

于 2012-11-02T07:47:55.533 に答える
0

Omnicorp デモ サイトには、グローバル データ型「Omnicorp.Content.News」と XSLT 関数「Omnicorp.Content.News」に基づく独自のニュースモジュールがあります。

Composite.Newsパッケージは異なり、「Composite.News.NewsItem」という名前のページ データ フォルダーと、「Composite.News.NewsList」と「Composite.News.NewsTeasers」の 2 つの XSLT 関数に基づいています。したがって、このパッケージを使用するには、ここで説明されている手順に従う必要があります - http://docs.composite.net/Packages/CompositeNews : page type = "News page" でページを作成します。ニュース項目をニュース ページ データ フォルダ (ページの下) に追加します。[コンテンツ] タブで、Composite.News.NewsList 関数を使用します。これは、詳細へのリンクを含むニュース リストをレンダリングします。

于 2012-11-01T07:29:58.530 に答える