我已成功将博客应用程序添加到名为“博客”的新页面。现在我有一个不同的“关于我们”页面,我想要在其中显示最新五个博客帖子的列表。为此,我创建了一个类似于 Community.Blog.Renderer 的新 XSLT 函数,它可以根据我的要求显示博客。
接下来,我将博客应用程序添加到“AboutUs”页面。但这似乎是一个不同的应用程序。我想要实现的目标:
- “关于我们”页面上的一个小部件,显示“博客”页面上发布的最新 5 个博客的列表。
- 每个此类小部件中都有一个“阅读更多”按钮,单击该按钮将重定向到“博客”页面上相应的博客。
我是复合 C1 的新手,到目前为止我非常喜欢它。我希望,复合 C1 能够以某种方式满足我的要求,并且不会让我失望。 感谢您的关心。
最佳答案
为了保持该线程的干净,以下是 Inna 在 Codeplex 讨论论坛上发布的答案:
您可以通过创建一个简单的 XSLT 来实现此目的:
- 创建名为 Composite.Community.Blog.Latest 的 XSLT
在函数调用选项卡上添加两个函数“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。
在模板选项卡上,您将看到如下内容:
<?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>
然后在您想要显示 5 个最新博客条目列表的位置插入此 XSLT。 (注意:您不应该将博客应用程序添加到要显示最新条目列表的页面。)
关于blogs - 在 Composite C1 中,如何将相同的博客应用程序/模块应用到多个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9998417/