我已成功将博客应用程序添加到名为“Blog”的新页面。现在我有一个不同的“AboutUs”页面,我想要一个最新的五个博客帖子的列表。为此,我创建了一个类似于Community.Blog.Renderer的新XSLT函数,它可以根据我的要求显示博客。
接下来,我将博客应用程序添加到“AboutUs”页面。但似乎这是一个不同的应用程序。我想要实现的目标:
我是复合C1的新手,直到目前为止我非常喜欢它。我希望,复合C1能以某种方式处理我的要求并且不会让我失望。 感谢您的关注。
答案 0 :(得分:2)
为了保持这个线程的清洁,这是Inna在codeplex论坛上发布的答案:
您可以通过创建一个简单的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 ,日期和标题字段,您需要它们生成博客条目网址。
在模板标签上,您将看到以下内容:
<?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>
然后在此处插入 XSLT ,以显示5个最新博客条目的列表。 (注意:您不应将博客应用程序添加到要显示最新条目列表的页面。)