コード例 #1
0
ファイル: WikiEngine.cs プロジェクト: sainabob/teamlab.v7.5
        private ITagValue[] GetCategoryNotifyTags(string objectId, string pageName)
        {
            var page = GetPage(pageName);

            if (page == null)
            {
                return(null);
            }

            var user        = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
            var defPageHref = VirtualPathUtility.ToAbsolute(WikiManager.ViewVirtualPath);

            var tags = new List <ITagValue>
            {
                new TagValue(Constants.TagPageName, page.PageName),
                new TagValue(Constants.TagURL, CommonLinkUtility.GetFullAbsolutePath(ActionHelper.GetViewPagePath(defPageHref, page.PageName))),
                new TagValue(Constants.TagUserName, user.DisplayUserName()),
                new TagValue(Constants.TagUserURL, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetUserProfile(user.ID))),
                new TagValue(Constants.TagDate, TenantUtil.DateTimeNow()),
                new TagValue(Constants.TagPostPreview, HtmlUtility.GetText(EditPage.ConvertWikiToHtml(page.PageName, page.Body, defPageHref, WikiSection.Section.ImageHangler.UrlFormat, CoreContext.TenantManager.GetCurrentTenant().TenantId), 120)),
                new TagValue(Constants.TagCatName, objectId),
                ReplyToTagProvider.Comment("wiki", pageName)
            };

            return(tags.ToArray());
        }
コード例 #2
0
        public override SearchResultItem[] Search(string text)
        {
            var list        = new List <SearchResultItem>();
            var defPageHref = VirtualPathUtility.ToAbsolute(WikiManager.ViewVirtualPath);

            foreach (var page in new WikiEngine().SearchPagesByContent(text))
            {
                var pageName = page.PageName;
                if (string.IsNullOrEmpty(pageName))
                {
                    pageName = WikiResource.MainWikiCaption;
                }

                list.Add(new SearchResultItem
                {
                    Name        = pageName,
                    Description = HtmlUtility.GetText(
                        EditPage.ConvertWikiToHtml(page.PageName, page.Body, defPageHref,
                                                   WikiSection.Section.ImageHangler.UrlFormat, TenantProvider.CurrentTenantID), 120),
                    URL  = ActionHelper.GetViewPagePath(defPageHref, page.PageName),
                    Date = page.Date
                });
            }
            return(list.ToArray());
        }
コード例 #3
0
        public override SearchResultItem[] Search(string text)
        {
            List <SearchResultItem> list = new List <SearchResultItem>();
            string rootPage    = HttpContext.Current.Request.PhysicalApplicationPath.TrimEnd('\\');
            string defPageHref = VirtualPathUtility.ToAbsolute(WikiManager.ViewVirtualPath);

            string pageName;


            foreach (Page page in new WikiEngine().SearchPagesByContent(text))
            {
                pageName = page.PageName;
                if (string.IsNullOrEmpty(pageName))
                {
                    pageName = WikiResource.MainWikiCaption;
                }

                list.Add(new SearchResultItem()
                {
                    Name        = pageName,
                    Description = HtmlUtility.GetText(
                        EditPage.ConvertWikiToHtml(page.PageName, page.Body, defPageHref,
                                                   WikiSection.Section.ImageHangler.UrlFormat, TenantId), 120),
                    URL  = ActionHelper.GetViewPagePath(defPageHref, page.PageName),
                    Date = page.Date
                });
            }
            return(list.ToArray());
        }
コード例 #4
0
 public override SearchResultItem[] Search(string text)
 {
     return(FeedStorageFactory.Create()
            .SearchFeeds(text)
            .ConvertAll <SearchResultItem>(f => new SearchResultItem()
     {
         Name = f.Caption,
         Description = HtmlUtility.GetText(f.Text, 120),
         URL = FeedUrls.GetFeedUrl(f.Id),
         Date = f.Date
     })
            .ToArray());
 }
コード例 #5
0
 public string GetNote()
 {
     if (TimeSpend.RelativeTask != 0)
     {
         var task = Global.EngineFactory.GetTaskEngine().GetByID(TimeSpend.RelativeTask);
         if (TimeSpend.Note != string.Empty)
         {
             return(string.Format("<a href=\"tasks.aspx?prjID={0}&id={1}\">{2}</a><br/>{3}",
                                  Project.ID, TimeSpend.RelativeTask, HtmlUtility.GetText(task.Title, 45), TimeSpend.Note.HtmlEncode()));
         }
         else
         {
             return(string.Format("<a href=\"tasks.aspx?prjID={0}&id={1}\">{2}</a>",
                                  Project.ID, TimeSpend.RelativeTask, HtmlUtility.GetText(task.Title, 45)));
         }
     }
     else
     {
         return(TimeSpend.Note.HtmlEncode());
     }
 }
コード例 #6
0
ファイル: WikiEngine.cs プロジェクト: sainabob/teamlab.v7.5
        private ITagValue[] GetNotifyTags(string pageName, string patternType, Comment comment)
        {
            var page = GetPage(pageName);

            if (page == null)
            {
                return(null);
            }

            var user    = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
            var defPage = VirtualPathUtility.ToAbsolute(WikiManager.ViewVirtualPath);

            var tags = new List <ITagValue>
            {
                new TagValue(Constants.TagPageName, String.IsNullOrEmpty(page.PageName) ? WikiResource.MainWikiCaption : page.PageName),
                new TagValue(Constants.TagURL, CommonLinkUtility.GetFullAbsolutePath(ActionHelper.GetViewPagePath(defPage, page.PageName))),
                new TagValue(Constants.TagUserName, user.DisplayUserName()),
                new TagValue(Constants.TagUserURL, CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetUserProfile(user.ID))),
                new TagValue(Constants.TagDate, TenantUtil.DateTimeNow()),
                new TagValue(Constants.TagPostPreview, HtmlUtility.GetText(EditPage.ConvertWikiToHtml(page.PageName, page.Body, defPage, WikiSection.Section.ImageHangler.UrlFormat, CoreContext.TenantManager.GetCurrentTenant().TenantId), 120)),
            };

            if (comment != null && !string.IsNullOrEmpty(pageName))
            {
                ReplyToTagProvider.Comment("wiki", pageName, comment.Id.ToString());
            }

            if (!string.IsNullOrEmpty(patternType))
            {
                tags.Add(new TagValue(Constants.TagChangePageType, patternType));
            }
            if (comment != null)
            {
                tags.Add(new TagValue(Constants.TagCommentBody, comment.Body));
            }

            return(tags.ToArray());
        }
コード例 #7
0
        public SearchResultItem[] SearchBookmarksBySearchString(string searchString)
        {
            var searchStringList = ConvertStringToArray(searchString);
            var bookmarks        = _service.SearchAllBookmarks(searchStringList);

            var searchResultItems = new List <SearchResultItem>();

            if (bookmarks == null)
            {
                return(searchResultItems.ToArray());
            }
            foreach (var b in bookmarks)
            {
                var url = VirtualPathUtility.ToAbsolute(BookmarkingRequestConstants.BookmarkingBasePath) + "/" + GenerateBookmarkInfoUrl(b.URL);
                searchResultItems.Add(new SearchResultItem()
                {
                    Name        = b.Name,
                    Description = HtmlUtility.GetText(b.Description, 120),
                    URL         = url,
                    Date        = b.Date
                });
            }
            return(searchResultItems.ToArray());
        }
コード例 #8
0
        protected string RenderLastUpdates()
        {
            if (Topic.RecentPostID == 0)
            {
                return("");
            }

            var recentPostURL = _settings.LinkProvider.RecentPost(Topic.RecentPostID, Topic.ID, Topic.PostCount);

            var sb = new StringBuilder();

            var fullText = HtmlUtility.GetText(Topic.RecentPostText);
            var text     = HtmlUtility.GetText(Topic.RecentPostText, 20);

            sb.Append("<div style='margin-bottom:5px;'><a title=\"" + fullText + "\" href=\"" + recentPostURL + "\">" + HttpUtility.HtmlEncode(text) + "</a></div>");

            sb.Append("<div style='width:180px;'>" + ASC.Core.Users.StudioUserInfoExtension.RenderProfileLink(CoreContext.UserManager.GetUsers(Topic.RecentPostAuthorID), _settings.ProductID) + "</div>");
            sb.Append("<div style='margin-top:5px;'>");
            sb.Append(DateTimeService.DateTime2StringTopicStyle(Topic.RecentPostCreateDate));
            sb.Append("<a href=\"" + recentPostURL + "\"><img hspace=\"5\" align=\"absmiddle\" alt=\"&raquo;\" title=\"&raquo;\" border=\"0\" src=\"" + WebImageSupplier.GetAbsoluteWebPath("goto.png", _settings.ImageItemID) + "\"/></a>");
            sb.Append("</div>");

            return(sb.ToString());
        }
コード例 #9
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.AddAttribute(HtmlTextWriterAttribute.Class, "tableBase");
            writer.AddAttribute("cellspacing", "0");
            writer.AddAttribute("cellpadding", "8");
            writer.RenderBeginTag(HtmlTextWriterTag.Table);

            writer.RenderBeginTag(HtmlTextWriterTag.Tbody);

            foreach (var srGroup in Items.GetRange(0, (MaxCount < Items.Count) ? MaxCount : Items.Count))
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "search-result-item");
                writer.RenderBeginTag(HtmlTextWriterTag.Tr);

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "borderBase left-column gray-text");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                writer.AddAttribute(HtmlTextWriterAttribute.Title, srGroup.Additional["Hint"].ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.Write(srGroup.Additional["Hint"].ToString());
                writer.RenderEndTag();
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "borderBase center-column");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);

                writer.AddAttribute(HtmlTextWriterAttribute.Href, srGroup.URL);
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "link bold");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(HtmlUtility.SearchTextHighlight(Text, srGroup.Name.HtmlEncode(), false));
                writer.RenderEndTag();

                writer.WriteBreak();

                if ((EntityType)(Enum.Parse(typeof(EntityType), (srGroup.Additional["Type"]).ToString())) == EntityType.Project)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "describe-text");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(CheckEmptyValue(HtmlUtility.SearchTextHighlight("", HttpUtility.HtmlEncode(HtmlUtility.GetText(srGroup.Description, 100)))));
                    writer.RenderEndTag();
                }
                else
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "describe-text");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(Resources.ProjectsCommonResource.InProject);
                    writer.RenderEndTag();
                    writer.Write("&nbsp;");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(srGroup.Additional["ProjectName"].ToString().HtmlEncode());
                    writer.RenderEndTag();
                }

                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "borderBase right-column gray-text");
                writer.RenderBeginTag(HtmlTextWriterTag.Td);
                if (srGroup.Date.HasValue)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Title, srGroup.Date.Value.ToShortDateString());
                    writer.RenderBeginTag(HtmlTextWriterTag.Div);
                    writer.Write(srGroup.Date.Value.ToShortDateString());
                    writer.RenderEndTag();
                }
                writer.RenderEndTag();

                writer.RenderEndTag();
            }

            writer.RenderEndTag();
            writer.RenderEndTag();
        }
コード例 #10
0
        protected string RenderRecentUpdate(Thread thread)
        {
            if (thread.RecentPostID == 0)
            {
                return("");
            }

            var sb = new StringBuilder();

            sb.Append("<div><a title=\"" + HttpUtility.HtmlEncode(thread.RecentTopicTitle) + "\" href=\"" + _settings.LinkProvider.PostList(thread.RecentTopicID) + "\">" + HttpUtility.HtmlEncode(HtmlUtility.GetText(thread.RecentTopicTitle, 20)) + "</a></div>");

            sb.Append("<div style='margin-top:5px;overflow: hidden;width: 180px;'>" + ASC.Core.Users.StudioUserInfoExtension.RenderProfileLink(CoreContext.UserManager.GetUsers(thread.RecentPosterID), _settings.ProductID) + "</div>");
            sb.Append("<div style='margin-top:5px;'>");
            sb.Append("<span class='textSmallDescribe'>" + DateTimeExtension.AgoSentence(thread.RecentPostCreateDate) + "</span>");
            sb.Append("<a href=\"" + _settings.LinkProvider.RecentPost(thread.RecentPostID, thread.RecentTopicID, thread.RecentTopicPostCount) + "\"><img hspace=\"3\" align=\"absmiddle\" alt=\"&raquo;\" title=\"&raquo;\" border=\"0\" src=\"" + WebImageSupplier.GetAbsoluteWebPath("goto.png", _settings.ImageItemID) + "\"/></a>");
            sb.Append("</div>");

            return(sb.ToString());
        }
コード例 #11
0
        protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
        {
            ForumLastUpdatesWidgetSettings widgetSettings = SettingsManager.Instance.LoadSettingsFor <ForumLastUpdatesWidgetSettings>(SecurityContext.CurrentAccount.ID);

            var           topicList = ForumDataProvider.GetLastUpdateTopics(TenantProvider.CurrentTenantID, widgetSettings.MaxTopicCount);
            StringBuilder sb        = new StringBuilder();

            foreach (Topic topic in topicList)
            {
                if (topic.RecentPostID != 0)
                {
                    sb.Append("<div class='clearFix' style='margin-bottom:20px;'>");
                    sb.Append("<table cellspacing='0' cellpadding='0' border='0'><tr valign='top'>");

                    //date
                    sb.Append("<td style='width:30px; text-align:left;'>");
                    sb.Append(DateTimeService.DateTime2StringWidgetStyle(topic.RecentPostCreateDate));
                    sb.Append("</td>");

                    //message
                    sb.Append("<td style='padding-left:10px;'>");
                    string recentPostURL = VirtualPathUtility.ToAbsolute(ForumManager.BaseVirtualPath + "/posts.aspx") + "?t=" + topic.ID;
                    int    pageNum       = Convert.ToInt32(Math.Ceiling(topic.PostCount / (ForumManager.Settings.PostCountOnPage * 1.0)));
                    if (pageNum <= 0)
                    {
                        pageNum = 1;
                    }

                    if (topic.RecentPostID != 0)
                    {
                        recentPostURL = VirtualPathUtility.ToAbsolute(ForumManager.BaseVirtualPath + "/posts.aspx") + "?t=" + topic.ID.ToString() + "&p=" + pageNum.ToString() + "#" + topic.RecentPostID.ToString();
                    }

                    string message = topic.RecentPostText;
                    if (topic.RecentPostFormatter == PostTextFormatter.BBCode)
                    {
                        message = new ASC.Web.Controls.BBCodeParser.Parser(CommonControlsConfigurer.TextConfig).Parse(topic.RecentPostText);
                    }

                    if (widgetSettings.IsCutLongMessage)
                    {
                        message = HtmlUtility.GetText(message, 120, true);
                    }
                    else
                    {
                        message = HtmlUtility.GetText(message, true);
                    }

                    //topic
                    sb.Append("<div>");
                    sb.Append("<a href='" + recentPostURL + "'>" + HttpUtility.HtmlEncode(topic.Title) + "</a>");
                    if (topic.IsNew())
                    {
                        sb.Append("<span style='margin-left:7px;' class='errorText'>(" + topic.PostCount + ")</span>");
                    }
                    else
                    {
                        sb.Append("<span style='margin-left:7px;' class='describeText'>(" + topic.PostCount + ")</span>");
                    }
                    sb.Append("</div>");

                    //thread

                    //post
                    sb.Append("<div style='margin-top:5px;'>");
                    sb.Append(message);
                    sb.Append("</div>");

                    //who
                    sb.Append("<div style='margin-top:5px;'>");
                    sb.Append("<span class='textBigDescribe' style='margin-right:5px;'>" + Resources.ForumResource.PostedBy + ":</span>");
                    sb.Append(topic.RecentPostAuthor.RenderProfileLink(CommunityProduct.ID));

                    sb.Append("</div>");

                    sb.Append("</td>");
                    sb.Append("</tr></table>");
                    sb.Append("</div>");
                }
            }


            if (topicList.Count > 0)
            {
                sb.Append("<div style='margin-top:10px;'>");
                sb.Append("<a href=\"" + VirtualPathUtility.ToAbsolute(ForumManager.BaseVirtualPath + "/default.aspx") + "\">" + Resources.ForumResource.ForumsBreadCrumbs + "</a>");
                sb.Append("</div>");
            }
            else
            {
                sb.Append("<div class=\"empty-widget\" style='text-align:center; padding:40px 0px;'>");

                if (ForumManager.Instance.ValidateAccessSecurityAction(ForumAction.GetAccessForumEditor, null))
                {
                    sb.AppendFormat(
                        Resources.ForumResource.ForumNotCreatedWidgetMessageForAdmin,
                        string.Format("<div style=\"padding-top:3px;\"><a href=\"{0}\">", VirtualPathUtility.ToAbsolute(ForumManager.BaseVirtualPath + "/managementcenter.aspx")),
                        "</a></div>");
                }
                else
                {
                    sb.Append(Resources.ForumResource.ForumNotCreatedWidgetMessage);
                }
                sb.Append("</div>");
            }

            writer.Write(sb.ToString());
        }
コード例 #12
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.Write("<link href=" + PathProvider.GetFileStaticRelativePath("common.css") + " type=\"text/css\" rel=\"stylesheet\" />");

            writer.Write("<script type=\"text/javascript\" language=\"javascript\" src=" + PathProvider.GetFileStaticRelativePath("common.js") + "></script>");

            foreach (var srGroup in Items.GetRange(0, (MaxCount < Items.Count) ? MaxCount : Items.Count))
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, String.Format("document {0} clearFix", srGroup.Additional.ContainsKey("IsFolder") ? GetFolderCssClass(srGroup.Additional["IsFolder"]) : String.Empty));
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "icon");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "body");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.AddAttribute(HtmlTextWriterAttribute.Href, srGroup.URL);

                writer.AddAttribute(HtmlTextWriterAttribute.Title, srGroup.Name);
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "linkHeaderMedium");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(HtmlUtility.SearchTextHighlight(Text, srGroup.Name.HtmlEncode(), false));
                writer.RenderEndTag();

                writer.WriteBreak();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "textSmallDescribe");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                if (srGroup.Additional.ContainsKey("Author"))
                {
                    writer.Write("{0} {1}", Resources.FilesCommonResource.Author, srGroup.Additional["Author"]);
                }
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "separator");
                writer.RenderBeginTag(HtmlTextWriterTag.Span);
                writer.Write("|");
                writer.RenderEndTag();

                writer.Write("{0} {1}", Resources.FilesCommonResource.TitleUploaded, srGroup.Date);

                if (srGroup.Additional.ContainsKey("Size"))
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "separator");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write("|");
                    writer.RenderEndTag();
                    writer.Write("{0} {1}", Resources.FilesCommonResource.Size, srGroup.Additional["Size"]);
                }
                writer.RenderEndTag();

                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "adv");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.Write(HtmlUtility.GetText(Search.FolderPathBuilder((List <Folder>)srGroup.Additional["Container"]), 80));
                writer.RenderEndTag();

                writer.RenderEndTag();
            }

            var str = @"
<script type='text/javascript'>
    jq(function() {
        jq('div.searchResults div.document').each(function() {
            var ftClass;
            if (jq(this).hasClass('thumb-folder')) {
                ftClass = ASC.Files.Utility.getFolderCssClass();
            } else {
                var title = jq(this).find('a.linkHeaderMedium').text().trim();
                ftClass = ASC.Files.Utility.getCssClassByFileTitle(title);
            }
            jq(this).find('div.icon').addClass(ftClass);
        });
    });
</script>";

            writer.Write(str);
        }
コード例 #13
0
        protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
        {
            BookmarkingServiceHelper  serviceHelper  = BookmarkingServiceHelper.GetCurrentInstanse();
            BookmarkingWidgetSettings widgetSettings = SettingsManager.Instance.LoadSettingsFor <BookmarkingWidgetSettings>(serviceHelper.GetCurrentUserID());
            var           bookmarksCount             = widgetSettings.MaxCountBookmarks;
            var           bookmarks = serviceHelper.GetMostRecentBookmarksForWidget(bookmarksCount);
            StringBuilder sb        = new StringBuilder();

            foreach (var b in bookmarks)
            {
                sb.Append("<div class='clearFix' style='margin-bottom:20px;'>");
                sb.Append(@"
<table cellspacing='0' cellpadding='0' border='0' style='width: 100%;'><tr valign='top'>");

                sb.Append(@"
	<td style='width:30px; text-align:left;'>"    );
                sb.AppendFormat("<span class='textMediumDescribe'>{0} {1}</span>", b.Date.ToShortDayMonth(), b.Date.ToShortTimeString());
                sb.Append(@"
	</td>"    );


                //title
                sb.Append(@"
	<td style='padding-left:10px;'>
		<div style='margin-bottom:5px; word-wrap: break-word;'>"        );

                sb.Append(@"
			<a href='"             + VirtualPathUtility.ToAbsolute("~/Products/Community/Modules/Bookmarking/") + BookmarkingServiceHelper.GenerateBookmarkInfoUrl(b.URL) + "'>" + HttpUtility.HtmlEncode(HtmlUtility.GetText(b.Name, SymbolsCount)) + "</a>");
                sb.Append(@"
		</div>"        );

                //description
                sb.Append(@"
		<div style='margin-bottom:5px; word-wrap: break-word;'>"        );
                sb.Append(HttpUtility.HtmlEncode(HtmlUtility.GetText(b.Description, 120, true)));
                sb.Append(@"
		</div>"        );


                //added by
                sb.Append(@"
		<div class='clearFix' style='margin-top:5px;'>"        );
                sb.AppendFormat(@"			
			<div style='float:left'>
				<img src='{0}' alt=''/>
			</div>
			<div style='float:left; margin-right: 10px;' class='textMediumDescribe'>
				{1}
			</div>"            , WebImageSupplier.GetAbsoluteWebPath(BookmarkingRequestConstants.UserRaitingOne, BookmarkingConst.BookmarkingId), serviceHelper.GetUserBookmarksCount(b));
                sb.Append(BookmarkingServiceHelper.RenderUserProfile(b.UserCreatorID));

                sb.Append(@"
		</div>
	</td>
</tr>
</table>");
                sb.Append(@"
</div>");
            }

            if (bookmarks.Count > 0 || !BookmarkingPermissionsCheck.PermissionCheckCreateBookmark())
            {
                sb.Append("<div style='margin-top:10px;'>");
                sb.Append("<a href=\"" + VirtualPathUtility.ToAbsolute(BookmarkingRequestConstants.BookmarkingBasePath + "/" + BookmarkingRequestConstants.BookmarkingPageName) + "\">" + BookmarkingResource.AllBookmarks + "</a>");
                sb.Append("</div>");
            }
            else
            {
                sb.Append("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">" +
                          string.Format(Resources.BookmarkingResource.NoBookmarksWidgetMessage,
                                        string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"{0}\">", VirtualPathUtility.ToAbsolute("~/products/community/modules/bookmarking/" + BookmarkingServiceHelper.GetCreateBookmarkPageUrl())),
                                        "</a></div>") + "</div>");
            }

            writer.Write(sb.ToString());
        }
コード例 #14
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            foreach (var srGroup in Items.GetRange(0, (MaxCount < Items.Count) ? MaxCount : Items.Count))
            {
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "clearFix projItem");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "img");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);

                writer.AddAttribute(HtmlTextWriterAttribute.Src, srGroup.Additional["imageRef"].ToString());
                writer.AddAttribute(HtmlTextWriterAttribute.Title, srGroup.Additional["Hint"].ToString());
                writer.AddAttribute(HtmlTextWriterAttribute.Alt, srGroup.Additional["Hint"].ToString());
                writer.RenderBeginTag(HtmlTextWriterTag.Img);
                writer.RenderEndTag();

                writer.RenderEndTag();

                writer.AddAttribute(HtmlTextWriterAttribute.Class, "body");
                writer.RenderBeginTag(HtmlTextWriterTag.Div);
                writer.AddAttribute(HtmlTextWriterAttribute.Href, srGroup.URL);
                writer.AddAttribute(HtmlTextWriterAttribute.Class, "linkHeaderMedium");
                writer.RenderBeginTag(HtmlTextWriterTag.A);
                writer.Write(HtmlUtility.SearchTextHighlight(Text, srGroup.Name.HtmlEncode(), false));
                writer.RenderEndTag();

                writer.WriteBreak();



                if ((EntityType)(Enum.Parse(typeof(EntityType), (srGroup.Additional["Type"]).ToString())) == EntityType.Project)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "textBigDescribe");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(CheckEmptyValue(HtmlUtility.SearchTextHighlight("", HttpUtility.HtmlEncode(HtmlUtility.GetText(srGroup.Description, 100)))));
                    writer.RenderEndTag();
                }
                else
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "textBigDescribe");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(Resources.ProjectsCommonResource.InProject);
                    writer.RenderEndTag();
                    writer.Write("&nbsp;");
                    writer.RenderBeginTag(HtmlTextWriterTag.Span);
                    writer.Write(srGroup.Additional["ProjectName"].ToString());
                    writer.RenderEndTag();
                }
                writer.RenderEndTag();

                if (srGroup.Date.HasValue)
                {
                    writer.AddAttribute(HtmlTextWriterAttribute.Class, "date");
                    writer.RenderBeginTag(HtmlTextWriterTag.Div);
                    writer.Write(srGroup.Date.Value.ToShortDateString());
                    writer.RenderEndTag();
                }
                writer.RenderEndTag();
            }
        }
コード例 #15
0
        private string RenderLastUpdateContent()
        {
            BlogsWidgetSettings widgetSettings = SettingsManager.Instance.LoadSettingsFor <BlogsWidgetSettings>(SecurityContext.CurrentAccount.ID);

            var engine = BasePage.GetEngine();

            var posts = engine.SelectPosts(
                new PostsQuery()
                .SetCount(widgetSettings.MaxCountPosts)
                .NoTags()
                );

            var posts_with_stat = engine.GetPostsCommentsCountAndNew(posts, SecurityContext.CurrentAccount.ID);

            StringBuilder sb = new StringBuilder();

            //posts
            foreach (var entry in posts_with_stat)
            {
                Post post          = entry.Value1;
                int  commentsCount = entry.Value2;
                bool isNewComments = entry.Value3 > 0;

                sb.Append("<table cellpadding='0' cellspacing='0' border='0'>");
                sb.Append("<tr valign='top'>");

                sb.Append("<td width='30'>");
                sb.Append("<span class='textMediumDescribe'>" + post.Datetime.ToShortDayMonth() + " " + post.Datetime.ToShortTimeString() + "</span>");
                sb.Append("</td>");

                sb.Append("<td>");
                sb.Append("<div style='padding-left:10px;'>");

                sb.Append("<div style='margin-bottom:5px;'>");
                sb.Append("<a href='" + VirtualPathUtility.ToAbsolute("~/products/community/modules/blogs/viewblog.aspx") + "?blogid=" + post.ID + "'>" + post.Title.HtmlEncode() + "</a>");

                if (commentsCount > 0)
                {
                    if (isNewComments)
                    {
                        sb.AppendFormat("<span style='margin-left:7px;' class='errorText'>({0})</span>", commentsCount);
                    }
                    else
                    {
                        sb.AppendFormat("<span style='margin-left:7px;' class='describeText'>({0})</span>", commentsCount);
                    }
                }
                sb.Append("</div>");

                sb.Append("<div style='margin-bottom:5px;'>");
                sb.Append(HtmlUtility.GetText(post.Content, 120));
                sb.Append("</div>");

                sb.Append("<div style='margin-bottom:17px;'>");
                sb.Append("<span class='textBigDescribe'>" + ASC.Blogs.Core.Resources.BlogsResource.PostedTitle + ":</span>&nbsp;&nbsp;" + CoreContext.UserManager.GetUsers(post.UserID).RenderProfileLink(ASC.Web.Community.Product.CommunityProduct.ID));
                sb.Append("</div>");

                sb.Append("</div>");
                sb.Append("</td>");

                sb.Append("</tr>");


                sb.Append("</table>");
            }

            if (posts_with_stat.Count > 0)
            {
                sb.AppendFormat("<div style='margin-top: 10px;'><a href='{0}'>{1}</a></div>",
                                ASC.Blogs.Core.Constants.DefaultPageUrl,
                                ASC.Blogs.Core.Resources.BlogsResource.AllBlogs
                                );
            }
            else
            {
                if (CommunitySecurity.CheckPermissions(new PersonalBlogSecObject(CoreContext.UserManager.GetUsers(
                                                                                     SecurityContext.CurrentAccount.ID)), ASC.Blogs.Core.Constants.Action_AddPost))
                {
                    sb.Append("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">"
                              + String.Format(ASC.Blogs.Core.Resources.BlogsResource.NoBlogsWidgetTitle,
                                              string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"{0}\">", VirtualPathUtility.ToAbsolute(ASC.Blogs.Core.Constants.BaseVirtualPath + "addblog.aspx")),
                                              "</a></div>") + "</div>");
                }
                else
                {
                    sb.Append("<div class==\"empty-widget\" style=\"padding:40px; text-align: center;\">" + ASC.Blogs.Core.Resources.BlogsResource.NoBlogsWidgetMessage + "</div>");
                }
            }


            return(sb.ToString());
        }