Advertisements Section
I have just picked the "Full blog post item" template of Sitefinity's blog item and copy the code to my custom .ascx file as follows.
<%@ Control Language="C#" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI" Assembly="Telerik.Sitefinity" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.ContentUI" Assembly="Telerik.Sitefinity" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.PublicControls.BrowseAndEdit"
Assembly="Telerik.Sitefinity" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Comments.Web.UI.Frontend" TagPrefix="comments" %>
<%@ Import Namespace="Telerik.Sitefinity" %>
<%@ Import Namespace="Telerik.Sitefinity.Web.UI" %>
<%@ Import Namespace="Telerik.Sitefinity.Modules.Comments" %>
<sf:SitefinityLabel ID="title" runat="server" WrapperTagName="div" HideIfNoText="true" HideIfNoTextMode="Server" />
<telerik:RadListView ID="SingleItemContainer" ItemPlaceholderID="ItemContainer" AllowPaging="False"
runat="server" EnableEmbeddedSkins="false" EnableEmbeddedBaseStylesheet="false">
<LayoutTemplate>
<asp:PlaceHolder ID="ItemContainer" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<div class="sfpostDetails sfdetails" data-sf-provider='<%# Eval("Provider.Name")%>' data-sf-id='<%# Eval("Id")%>' data-sf-type="Telerik.Sitefinity.Blogs.Model.BlogPost">
<sf:FieldListView ID="PostTitle" runat="server"
Text="{0}" Properties="Title"
WrapperTagName="h1" WrapperTagCssClass="sfpostTitle sftitle" EditableFieldType="ShortText" />
<div class="sfpostAuthorAndDate sfmetainfo">
<asp:Literal ID="Literal2" Text="<%$ Resources:Labels, By %>" runat="server" />
<sf:PersonProfileView ID="PersonProfileView1" runat="server" />
<sf:FieldListView ID="PostDate" runat="server"
Format=" | {PublicationDate.ToLocal():MMM dd, yyyy}" />
<comments:CommentsCountControl ID="CommentsCountControl1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
AllowComments='<%# Eval("AllowComments") %>'
ThreadType='<%# Container.DataItem.GetType().FullName %>'
NavigateUrl="#commentsWidget"
DisplayMode="ShortText" />
<comments:CommentsAverageRatingControl ID="CommentsAverageRatingControl1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
ThreadType='<%# Container.DataItem.GetType().FullName %>'
NavigateUrl="#commentsWidget"
DisplayMode="FullText" />
</div>
<sf:FieldListView ID="PostContent" runat="server"
Text="{0}" Properties="Content"
WrapperTagName="div" WrapperTagCssClass="sfpostContent sfcontent" EditableFieldType="LongText" />
<asp:PlaceHolder ID="socialOptionsContainer" runat="server"></asp:PlaceHolder>
<comments:CommentsWidget ID="CommentsWidget1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
AllowComments='<%# Eval("AllowComments") %>' ThreadTitle='<%# Eval("Title") %>' ThreadType='<%# Container.DataItem.GetType().FullName %>'
GroupKey='<%# ControlUtilities.GetUniqueProviderKey("Telerik.Sitefinity.Modules.Blogs.BlogsManager", Eval("Provider.Name").ToString()) %>'
DataSource='<%# Eval("Provider.Name")%>' />
</div>
</ItemTemplate>
</telerik:RadListView>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI" Assembly="Telerik.Sitefinity" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.ContentUI" Assembly="Telerik.Sitefinity" %>
<%@ Register TagPrefix="sf" Namespace="Telerik.Sitefinity.Web.UI.PublicControls.BrowseAndEdit"
Assembly="Telerik.Sitefinity" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Comments.Web.UI.Frontend" TagPrefix="comments" %>
<%@ Import Namespace="Telerik.Sitefinity" %>
<%@ Import Namespace="Telerik.Sitefinity.Web.UI" %>
<%@ Import Namespace="Telerik.Sitefinity.Modules.Comments" %>
<sf:SitefinityLabel ID="title" runat="server" WrapperTagName="div" HideIfNoText="true" HideIfNoTextMode="Server" />
<telerik:RadListView ID="SingleItemContainer" ItemPlaceholderID="ItemContainer" AllowPaging="False"
runat="server" EnableEmbeddedSkins="false" EnableEmbeddedBaseStylesheet="false">
<LayoutTemplate>
<asp:PlaceHolder ID="ItemContainer" runat="server" />
</LayoutTemplate>
<ItemTemplate>
<div class="sfpostDetails sfdetails" data-sf-provider='<%# Eval("Provider.Name")%>' data-sf-id='<%# Eval("Id")%>' data-sf-type="Telerik.Sitefinity.Blogs.Model.BlogPost">
<sf:FieldListView ID="PostTitle" runat="server"
Text="{0}" Properties="Title"
WrapperTagName="h1" WrapperTagCssClass="sfpostTitle sftitle" EditableFieldType="ShortText" />
<div class="sfpostAuthorAndDate sfmetainfo">
<asp:Literal ID="Literal2" Text="<%$ Resources:Labels, By %>" runat="server" />
<sf:PersonProfileView ID="PersonProfileView1" runat="server" />
<sf:FieldListView ID="PostDate" runat="server"
Format=" | {PublicationDate.ToLocal():MMM dd, yyyy}" />
<comments:CommentsCountControl ID="CommentsCountControl1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
AllowComments='<%# Eval("AllowComments") %>'
ThreadType='<%# Container.DataItem.GetType().FullName %>'
NavigateUrl="#commentsWidget"
DisplayMode="ShortText" />
<comments:CommentsAverageRatingControl ID="CommentsAverageRatingControl1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
ThreadType='<%# Container.DataItem.GetType().FullName %>'
NavigateUrl="#commentsWidget"
DisplayMode="FullText" />
</div>
<sf:FieldListView ID="PostContent" runat="server"
Text="{0}" Properties="Content"
WrapperTagName="div" WrapperTagCssClass="sfpostContent sfcontent" EditableFieldType="LongText" />
<asp:PlaceHolder ID="socialOptionsContainer" runat="server"></asp:PlaceHolder>
<comments:CommentsWidget ID="CommentsWidget1" runat="server"
ThreadKey='<%# ControlUtilities.GetLocalizedKey(Eval("Id"), null, CommentsBehaviorUtilities.GetLocalizedKeySuffix(Container.DataItem.GetType().FullName)) %>'
AllowComments='<%# Eval("AllowComments") %>' ThreadTitle='<%# Eval("Title") %>' ThreadType='<%# Container.DataItem.GetType().FullName %>'
GroupKey='<%# ControlUtilities.GetUniqueProviderKey("Telerik.Sitefinity.Modules.Blogs.BlogsManager", Eval("Provider.Name").ToString()) %>'
DataSource='<%# Eval("Provider.Name")%>' />
</div>
</ItemTemplate>
</telerik:RadListView>
And set the template to default "Blog posts" widget of Sitefinity as shown.
-set its detail page
- And the goto the "Home > ControlDefinition > Views > DetailBlogPostsFrontend" and set the "TemplatePath"
-After Publishing the page I have added the following method in at the end of my .ascx file.
The method will take the "Telerik.Sitefinity.Blogs.Model.BlogPost" as an input parameter and return the formatted string with the author's information.
<script runat="server">
protected string getUserInfo(Telerik.Sitefinity.Blogs.Model.BlogPost currentBlogItem)
{
Telerik.Sitefinity.Security.UserManager manager =Telerik.Sitefinity.Security.UserManager.GetManager();
Telerik.Sitefinity.Security.UserProfileManager pManager = Telerik.Sitefinity.Security.UserProfileManager.GetManager();
Telerik.Sitefinity.Security.Model.User owner = manager.GetUser(currentBlogItem.Owner);
Telerik.Sitefinity.Security.Model.SitefinityProfile profile = pManager.GetUserProfiles(currentBlogItem.Owner).Where(p => p.GetType().FullName == typeof(Telerik.Sitefinity.Security.Model.SitefinityProfile).FullName).SingleOrDefault() as Telerik.Sitefinity.Security.Model.SitefinityProfile;
Telerik.Sitefinity.Modules.Libraries.LibrariesManager lmanager = Telerik.Sitefinity.Modules.Libraries.LibrariesManager.GetManager();
string avtarUrl = profile.Avatar != null ? lmanager.GetImage(profile.Avatar.ChildItemId).MediaUrl : "";// You can replace the empty string with some default image url
string MyProfileInfo = string.Format("<div><h1>Name:{0}</h1><p>About Author: {1}</p> ME:<img src='{2}'/></div>", profile.FirstName, profile.About, avtarUrl);
return MyProfileInfo;
}
</script>
And call the method inside my RadListView's "ItemTemplate" of my .ascx file. as shown.
<%# getUserInfo((Telerik.Sitefinity.Blogs.Model.BlogPost)Container.DataItem) %>
Hope this article will help you feel free to ask any question
superb, thanks.
ReplyDeletethis is really too useful and have more ideas from yours. keep sharing many techniques. eagerly waiting for your new blog and useful information. keep doing more.
ReplyDeleteBest CAT Coaching in Chennai
Very interesting post..
ReplyDeleteAbout - how to get the Author information with Sitefinity's blog post using default template
Sitefinity Development Company
Custom Sitefinity CMS Development Services
Learning how to get the Author information with Sitefinity's blog post using the default template is valuable for content personalization. To simplify customization and ensure smooth integration, Hire Sitefinity Developers who can implement efficient solutions for better content management.
ReplyDelete