2012-04-03 47 views
2

我已成功將博客應用程序添加到名爲「Blog」的新頁面。現在我有一個不同的「AboutUs」頁面,我想在其中列出最新的五篇博客文章。爲此,我創建了一個類似於Community.Blog.Renderer的新XSLT函數,它可以根據我的要求顯示博客。在Composite C1中,如何將相同的博客應用程序/模塊應用於多個頁面

接下來,我將博客應用程序添加到「AboutUs」頁面。但它似乎是一個不同的應用程序。我想實現的:

  1. 「AboutUs」頁面上的一個小部件,顯示在「Blog」頁面上發佈的最新5個博客的列表。
  2. 每個此類小部件中的「閱讀更多」按鈕,點擊後該按鈕將重定向到「博客」頁面上的相應博客。

我是新來的複合材料C1,直到這麼遠,我非常喜歡它。我希望,複合材料C1能夠以某種方式處理我的要求,並且不會讓我失望。 感謝您的關注。

回答

2

爲了保持這個線程乾淨,這裏是發表娜在CodePlex上論壇了答案:

您可以通過創建一個簡單的XSLT實現這一目標:

  1. 創建例如名爲複合XSLT。 Community.Blog.Latest
  2. 函數調用選項卡中添加2個功能「Composite.Community.Blog.Entries。GetEntriesXml「和」Composite.Community.Blog。 XsltExtensions」,源代碼這樣

    <f:functions xmlns:f="http://www.composite.net/ns/function/1.0"> 
    <f:function name="Composite.Community.Blog.Entries.GetEntriesXml" localname="GetEntriesXml"> 
        <f:param name="PropertyNames"> 
         <f:paramelement value="Date" /> 
         <f:paramelement value="Teaser" /> 
         <f:paramelement value="PageId" /> 
         <f:paramelement value="Id" /> 
         <f:paramelement value="Title" /> 
        </f:param> 
        <f:param name="OrderByField" value="Date" /> 
        <f:param name="OrderAscending" value="False" /> 
        <f:param name="PageSize" value="5" /> 
    </f:function> 
    <f:function name="Composite.Community.Blog.XsltExtensions" localname="XsltExtensions" /> 
    </f:functions> 
    

    確保GetEntriesXml的選定字段包含的PageId日期標題領域,你需要它們來生成博客條目URL。

  3. 模板選項卡你會有這樣的事情:

    <?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:in="http://www.composite.net/ns/transformation/input/1.0" xmlns:lang="http://www.composite.net/ns/localization/1.0" xmlns:f="http://www.composite.net/ns/function/1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:be="#BlogXsltExtensionsFunction" exclude-result-prefixes="xsl in lang f be"> 
        <xsl:template match="/"> 
        <html> 
         <head></head> 
         <body> 
          <ul> 
           <xsl:for-each select="/in:inputs/in:result[@name='GetEntriesXml']/Entries"> 
            <li> 
             <h3> 
              <xsl:value-of select="@Title" /> 
             </h3> 
             <p> 
              <xsl:value-of select="@Teaser" /> 
             </p> 
             <a href="~/page({@PageId}){be:GetBlogUrl(@Date, @Title)}">Read more...</a> 
            </li> 
           </xsl:for-each> 
          </ul> 
         </body> 
        </html> 
        </xsl:template> 
    </xsl:stylesheet> 
    
  4. 要展示最新的博客文章列表然後插入該XSLT。 (note:您不應該將博客應用程序添加到您要顯示最新條目列表的頁面中。)

相關問題