public static string GetPostMarkup(string markupStr, string commentSectionStr, PostInfo postInfo, string contextPath, string hiddenCommentsMarkup, string commentsMarkup, int commentCount, LikeInfo likeInfo, bool drawBoundary) { if (markupStr == null) { return(null); } if (commentSectionStr == null) { return(null); } markupStr = ReplaceResources(markupStr); markupStr = markupStr.Replace("{{commentsection}}", commentSectionStr); markupStr = markupStr.Replace("{{postid}}", postInfo.ClientId.ToString()); markupStr = markupStr.Replace("{{avatar}}", UITools.GetAvatarUrl(postInfo.CreatedBy)); markupStr = markupStr.Replace("{{username}}", postInfo.CreatedBy.FullName); markupStr = markupStr.Replace("{{userlink}}", Actions.ActionUrl(Content.Create(postInfo.CreatedBy), "Profile")); var text = postInfo.Text; if (text != null) { text = text.Replace("{{path}}", postInfo.LastPath ?? string.Empty); } var haspermission = WallHelper.HasWallPermission(contextPath); markupStr = markupStr.Replace("{{text}}", text); markupStr = markupStr.Replace("{{date}}", postInfo.CreationDate.ToString()); markupStr = markupStr.Replace("{{friendlydate}}", UITools.GetFriendlyDate(postInfo.CreationDate)); markupStr = markupStr.Replace("{{hiddencomments}}", hiddenCommentsMarkup); markupStr = markupStr.Replace("{{comments}}", commentsMarkup); markupStr = markupStr.Replace("{{commentboxdisplay}}", (commentCount > 0) && haspermission ? "block" : "none"); markupStr = markupStr.Replace("{{hiddencommentboxdisplay}}", commentCount > 2 ? "block" : "none"); markupStr = markupStr.Replace("{{commentcount}}", commentCount.ToString()); markupStr = markupStr.Replace("{{likeboxdisplay}}", likeInfo.Count > 0 ? "block" : "none"); markupStr = markupStr.Replace("{{likes}}", likeInfo.GetLongMarkup()); markupStr = markupStr.Replace("{{ilikedisplay}}", !likeInfo.iLike ? "inline" : "none"); markupStr = markupStr.Replace("{{iunlikedisplay}}", likeInfo.iLike ? "inline" : "none"); // content card - only manualposts count here, journals don't have this markup if (postInfo.Type == PostType.BigPost && postInfo.SharedContent != null) { markupStr = markupStr.Replace("{{contentcard}}", WallHelper.GetContentCardMarkup(postInfo.SharedContent, contextPath)); } else { markupStr = markupStr.Replace("{{contentcard}}", string.Empty); } // small post icon var smallposticon = "/Root/Global/images/icons/16/add.png"; if (postInfo.Type == PostType.JournalModified) { smallposticon = "/Root/Global/images/icons/16/edit.png"; } if (postInfo.Type == PostType.JournalDeletedPhysically) { smallposticon = "/Root/Global/images/icons/16/delete.png"; } if (postInfo.Type == PostType.JournalMoved) { smallposticon = "/Root/Global/images/icons/16/move.png"; } if (postInfo.Type == PostType.JournalCopied) { smallposticon = "/Root/Global/images/icons/16/copy.png"; } markupStr = markupStr.Replace("{{smallposticon}}", smallposticon); markupStr = markupStr.Replace("{{postboundaryclass}}", drawBoundary ? "sn-post-boundary" : string.Empty); markupStr = markupStr.Replace("{{action}}", postInfo.Action); // small post details markupStr = markupStr.Replace("{{detailsdisplay}}", string.IsNullOrEmpty(postInfo.Details) ? "none" : "inline"); markupStr = markupStr.Replace("{{detailssection}}", ReplaceResources(postInfo.Details)); // user interaction allowed markupStr = markupStr.Replace("{{interactdisplay}}", haspermission ? "inline" : "none"); return(markupStr); }