2012-04-03 61 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:您不应该将博客应用程序添加到您要显示最新条目列表的页面中。)

相关问题