Обнаружил, что при создании записи в блоге можно поставить cut, но компоненты его не используют. В итоге в списке постов выводятся полные посты, а не обрезаются.
Игра с Component.Processor.EnableCut и Component.Processor.HideCut ни к чему не привела, а в документации блоги и вовсе не описаны. В результате подправил шаблон руками, и получилось следующее:
Игра с Component.Processor.EnableCut и Component.Processor.HideCut ни к чему не привела, а в документации блоги и вовсе не описаны. В результате подправил шаблон руками, и получилось следующее:
<%@ Reference VirtualPath="~/bitrix/components/bitrix/blog.post.list/component.ascx" %>
<%@ Control Language="C#" Inherits="Bitrix.Blog.Components.BlogPostListTemplate" EnableViewState="false" %>
<%@ Import Namespace="Bitrix.Blog" %>
<%@ Import Namespace="Bitrix.Blog.Components" %>
<%@ Import Namespace="System.Collections.Generic" %>
<% if (Component.FatalError != BlogPostListComponent.ErrorCode.None) { %>
<%= Component.GetErrorHtml(Component.FatalError) %>
<%
return;
}
else if (Component.Posts.Count < 1)
{
return;
}
%>
<div class="blog-list">
<div class="blog-list-pager">
<bx:IncludeComponent runat="server" ID="HeaderPager" ComponentName="bitrix:system.pager" Template="<%$ Parameters:PagingTemplate %>"/>
</div><br />
<%
BlogPostListComponent.PostInfo post = null;
int cutNum = 0;
Component.RenderHideCut += delegate(object sender, BXBlogCutTagEventArgs e)
{
cutNum++;
string title = !Bitrix.Services.Text.BXStringUtility.IsNullOrTrimEmpty(e.Option) ? e.Option.Trim() : "Подробнее...";
e.Writer.Write(String.Concat(@"<br /><a href=""", post.PostViewHref, "#cut", cutNum, @""">", Encode(title), "</a>"));
//вставляем метку, по которой будем замем обрезать html-содержимое
e.Writer.Write("=== cut ===");
};
for(int i = 0; i < Component.Posts.Count; i++)
{
cutNum = 0;
post = Component.Posts[i];
//если есть метка для обрезки, удаляем хвост
string htmlContent = post.GetContentHtml();
if (htmlContent.IndexOf("=== cut ===")>0)
htmlContent = htmlContent.Remove(htmlContent.IndexOf("=== cut ==="));
%>
<div class="blog-item">
<span class="blog-date-time"><%= post.Post.DatePublished.ToString("d") %></span>
<a href="<%= post.PostViewHref %>"><b><%= post.TitleHtml %></b></a><br />
<%= htmlContent %>
<br clear="all" />
</div>
<%
}
%>
<div class="blog-list-pager">
<bx:IncludeComponent runat="server" ID="FooterPager" ComponentName="bitrix:system.pager" Template="<%$ Parameters:PagingTemplate %>"/>
</div>
</div> |
