protected void LanguageToggleLinks_ItemDataBound(object sender, ListViewItemEventArgs e) { if (e.Item.DataItem == null) { return; } var language = (FrameworkLibrary.Language)e.Item.DataItem; var languageLink = (HyperLink)e.Item.FindControl("LanguageLink"); languageLink.Text = language.Name; if (BasePage.CurrentMediaDetail.Language.CultureCode == language.CultureCode) { languageLink.CssClass = "current"; } var item = MediaDetailsMapper.GetByMedia(BasePage.CurrentMedia, language); if (item == null) { e.Item.Visible = false; return; } languageLink.NavigateUrl = URIHelper.ConvertToAbsUrl(item.AutoCalculatedVirtualPath); }
public void ProcessRequest(HttpContext context) { this.context = context; var templateBaseUrl = URIHelper.ConvertToAbsUrl(context.Request.QueryString["templateBaseUrl"]); var method = "loadfile"; var path = context.Request.QueryString["path"]; if (!string.IsNullOrEmpty(context.Request["method"])) { method = context.Request["method"].ToLower(); } if (string.IsNullOrEmpty(path)) { path = context.Request.FilePath; } switch (method) { case "loadfile": LoadFile(path, templateBaseUrl); break; /*case "loadjsincludes": * LoadJsIncludes(context.Request.QueryString["pageId"], templateBaseUrl); * break; * * case "loadcssincludes": * LoadCssIncludes(context.Request.QueryString["pageId"], templateBaseUrl); * break;*/ } }
public void SetItem(IMediaDetail mediaDetail) { if (mediaDetail == null) { return; } Link.NavigateUrl = URIHelper.ConvertToAbsUrl(mediaDetail.AutoCalculatedVirtualPath); var title = mediaDetail.SectionTitle; var shortDescription = mediaDetail.ShortDescription; var maxCharsTitle = 40; var maxCharsShortDescription = 116; if (title.Length > maxCharsTitle) { title = title.Substring(0, maxCharsTitle); } if (shortDescription.Length > maxCharsShortDescription) { shortDescription = shortDescription.Substring(0, maxCharsShortDescription) + " ..."; } Link.Attributes["title"] = "<span class='toolTipTitle'>" + title + "</span><br />" + shortDescription; }
public void UpdateFieldsFromObject() { IMediaDetail item = (IMediaDetail)SelectedItem; if ((item.ID == 0) && (item.LinkTitle == null || item.LinkTitle == "")) { var mediaType = MediaTypesMapper.GetByID(item.MediaTypeID); var createdItems = mediaType.MediaDetails.Where(i => !i.IsHistory && i.Media.ParentMediaID == item.Media.ParentMediaID && i.LanguageID == AdminBasePage.CurrentLanguage.ID).Select(i => i); var newIndex = createdItems.Count() + 1; item.LinkTitle = AdminBasePage.CurrentLanguage.DisplayName + " - " + mediaType.Name + " " + newIndex; } LinkTitle.Text = item.LinkTitle; var virtualPath = item.AutoCalculatedVirtualPath; /*if (LanguagesMapper.GetAllActive().Count() > 1) * virtualPath = URIHelper.ConvertAbsUrlToTilda(URIHelper.ConvertToAbsUrl(virtualPath).Replace(URIHelper.BaseUrl, URIHelper.BaseUrlWithLanguage));*/ VirtualPath.Text = virtualPath; VirtualPath.NavigateUrl = URIHelper.ConvertToAbsUrl(virtualPath) + "?version=" + item.HistoryVersionNumber; UpdateTags(); UpdateTabsFieldsFromObject(); UpdateMediaFieldsFromObject(); //SEOSettingsTab.UpdateFieldsFromObject(); //PublishSettingsTab.UpdateFieldsFromObject(); }
private void Application_BeginRequest(Object source, EventArgs e) { var installerPath = "~/Installer/"; var absInstallerUrl = URIHelper.ConvertToAbsUrl(installerPath); var absInstallerPath = URIHelper.ConvertToAbsPath(installerPath); if (Request.CurrentExecutionFilePathExtension == "" && !Request.Url.AbsoluteUri.StartsWith(absInstallerUrl)) { if (Directory.Exists(absInstallerPath) && AppSettings.EnableInstaller) { Response.Redirect(installerPath); } } if (AppSettings.IsRunningOnProd && AppSettings.ForceWWWRedirect) { var isSubDomain = (Request.Url.AbsoluteUri.Split('.').Length > 2); var isLocalHost = Request.Url.Host.StartsWith("localhost"); if (!Request.Url.Host.StartsWith("www.") && !isLocalHost && !isSubDomain) { Response.RedirectPermanent(Request.Url.AbsoluteUri.Replace("://", "://www.")); } } BaseService.AddResponseHeaders(); var virtualPathRequest = HttpContext.Current.Request.Path.EndsWith("/"); if (virtualPathRequest) { Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache); Response.Cache.SetNoStore(); } if (isFirstApplicationRequest) { ContextHelper.ClearAllMemoryCache(); FrameworkBaseMedia.InitConnectionSettings(AppSettings.GetConnectionSettings()); isFirstApplicationRequest = false; } if (Request.Url.AbsolutePath.Contains("robots.txt")) { var absPath = URIHelper.ConvertToAbsPath(Request.Url.AbsolutePath); if (File.Exists(absPath)) { var fileContent = File.ReadAllText(absPath); var parsedContent = ParserHelper.ParseData(fileContent, BasePage.GetDefaultTemplateVars("")); BaseService.WriteText(parsedContent); } } }
public static void RenderRss(IEnumerable <RssItem> rssItems = null, string rssTitle = "", string rssDescription = "", string rssLink = "") { if (rssItems == null) { rssItems = MediaDetailsMapper.GetRssItems(MediaDetailsMapper.GetAllChildMediaDetails(FrameworkSettings.Current.CurrentMedia.ID, FrameworkSettings.Current.CurrentLanguage.ID).Where(i => i.CanRender && i.MediaType.ShowInSiteTree).OrderByDescending(i => i.PublishDate)); } if (rssLink == "") { if (FrameworkSettings.Current.CurrentMediaDetail != null) { rssLink = URIHelper.ConvertToAbsUrl(FrameworkSettings.Current.CurrentMediaDetail.VirtualPath); } else { rssLink = URIHelper.ConvertToAbsUrl(URIHelper.GetCurrentVirtualPath()); } } if (rssTitle == "") { rssTitle = FrameworkSettings.Current.CurrentMediaDetail.Title; } if (rssDescription == "") { rssDescription = FrameworkSettings.Current.CurrentMediaDetail.GetMetaDescription(); } Rss rss = new Rss(rssTitle, rssLink, rssDescription); rss.Items = rssItems; var Response = HttpContext.Current.Response; Response.ContentEncoding = System.Text.Encoding.UTF8; Response.ContentType = "text/xml"; RssHelper.WriteRss(rss, Response.OutputStream); Response.Flush(); Response.End(); }
public override void SetValue(object value) { if (value != null) { var valAsString = value.ToString(); if (!string.IsNullOrEmpty(valAsString) && valAsString.Contains(URIHelper.BaseUrl)) { valAsString = URIHelper.ConvertToAbsUrl(valAsString); value = valAsString; } SelectedFile.Text = value.ToString(); if (!string.IsNullOrEmpty(SelectedFile.Text)) { try { SelectedFile.Text = ParserHelper.ParseData(SelectedFile.Text, BasePage.GetDefaultTemplateVars("")); DirPath = SelectedFile.Text; } catch (Exception ex) { } } if (CanSetSelectedImage(SelectedFile.Text)) { SelectedImage.ImageUrl = SelectedFile.Text; } else { return; } } }
public void LoadByVirtualPath(string virtualPath) { if ((!virtualPath.StartsWith("http")) && System.IO.File.Exists(HttpContext.Current.Server.MapPath(virtualPath))) { return; } currentVirtualPath = virtualPath; if (currentLanguage == null) { throw new Exception("Error loading default language"); } if ((currentVirtualPath == "~/") || currentVirtualPath == URIHelper.ConvertAbsUrlToTilda(URIHelper.ConvertToAbsUrl(currentLanguage.UriSegment))) { long version = 0; long.TryParse(HttpContext.Current.Request["version"], out version); currentMediaDetail = WebsitesMapper.GetWebsite(version); } else { currentMediaDetail = MediaDetailsMapper.GetByVirtualPath(currentVirtualPath); } if (currentMediaDetail == null) { return; } currentLanguage = currentMediaDetail.Language; FrameworkSettings.SetCurrentLanguage(currentMediaDetail.Language); //rootMedia = FrameworkSettings.RootMedia; //rootMediaDetail = FrameworkSettings.RootMediaDetail; currentMedia = currentMediaDetail.Media; }
private void UpdateTreeNode(JsTreeNode node, IMediaDetail detail) { if (detail == null) { return; } node.id = detail.MediaID.ToString(); node.parent = (detail.Media.ParentMediaID == null) ? "#" : detail.Media.ParentMediaID.ToString(); node.text = detail.SectionTitle; //node.children =( MediaDetailsMapper.GetAtleastOneChildByMedia(detail.Media, AdminBasePage.CurrentLanguage).Where(i => i.MediaType.ShowInSiteTree).Count() > 0); node.children = (BaseMapper.GetDataModel().MediaDetails.Count(i => i.MediaType.ShowInSiteTree && i.HistoryVersionNumber == 0 && i.Media.ParentMediaID == detail.MediaID) > 0); node.text = detail.SectionTitle.ToString(); //node.Attributes.Add("FrontEndUrl", detail.AbsoluteUrl); var nodeText = ""; if (detail.LanguageID != AdminBasePage.CurrentLanguage.ID) { nodeText = $"{detail.LinkTitle} - {LanguagesMapper.GetByID(detail.Language.ID).Name} ({node.id})"; node.li_attr._class = "doesNotExistInLanguage"; } else { nodeText = $"{detail.LinkTitle} <small>({detail.MediaID})</small>"; } if (detail.IsDeleted) { node.li_attr._class += " isDeleted"; } if (detail.WillPublish) { node.li_attr._class += " willPublish"; var autoPublishCode = $"<i class='fa fa-clock-o' aria-hidden='true' title='This page is set to auto-publish at: {detail.PublishDate}'></i> "; nodeText += $"<small class='willPublishWrapper'>{autoPublishCode}Will Publish</small>"; } if (detail.IsPublished && detail.WillExpire) { node.li_attr._class += " willExpire"; var autoPublishCode = $"<i class='fa fa-clock-o' aria-hidden='true' title='This page is set to auto-expire at: {detail.ExpiryDate}'></i> "; nodeText += $"<small class='willExpireWrapper'>{autoPublishCode}Will Expire</small>"; } if ((!detail.ShowInMenu) && (!detail.RenderInFooter)) { node.li_attr._class += " isHidden"; } if (detail.HasExpired) { node.li_attr._class += " hasExpired"; nodeText += $"<small class='hasExpiredWrapper'>Has Expired</small>"; } else { if (!detail.IsPublished && !detail.WillPublish) { node.li_attr._class += " unPublished"; nodeText += $"<small class='unPublishedWrapper'>UnPublished</small>"; } } if (AdminBasePage.SelectedMediaDetail != null && AdminBasePage.SelectedMediaDetail.ID == detail.ID) { node.li_attr._class += " selected"; } var draft = detail.GetLatestDraft(); if (detail.HasDraft && draft != null) { node.li_attr._class += " hasDraft"; var autoPublishCode = ""; if (draft.DateLastModified > detail.DateLastModified) { node.li_attr._class += " draftIsNewer"; } if ((draft.PublishDate - detail.PublishDate) > TimeSpan.FromSeconds(10)) { autoPublishCode = $"<i class='fa fa-clock-o' aria-hidden='true' title='This draft is set to auto-publish at: {draft.PublishDate}'></i> "; } nodeText += $"<small class='hasDraftWrapper'>{autoPublishCode}Has Draft</small>"; } var pendingComments = detail.Media.Comments.Count(i => i.Status == StatusEnum.Pending.ToString() && i.LanguageID == detail.LanguageID); if (pendingComments > 0) { node.li_attr._class += " hasPendingComments"; nodeText += $"<small class='hasPendingCommentsWrapper'>Pending Comments</small>"; } if (detail.MediaType.GetRoles().Count > 0 || detail.Media.RolesMedias.Count > 0) { var fontAwsomeClasses = "fa"; node.li_attr._class += " restricted"; if (MediaDetailsMapper.CanAccessMediaDetail(detail, FrameworkSettings.CurrentUser).IsError) { fontAwsomeClasses += " fa-lock"; } else { fontAwsomeClasses += " fa-unlock"; } nodeText += $"<small class='restrictedWrapper'><i class='fa {fontAwsomeClasses}' aria-hidden='true'></i></small>"; } node.text = nodeText; //node.LinkAttributes.Add("data-frontendurl", detail.Media.PermaLink); node.a_attr.frontendurl = detail.AbsoluteUrl; node.li_attr.mediaDetailId = detail.ID.ToString(); node.a_attr.href = URIHelper.ConvertToAbsUrl(WebApplication.BasePage.GetAdminUrl(detail.MediaTypeID, detail.MediaID)); if (detail?.MediaType?.Name == "Website" || detail?.MediaType?.Name == "RootPage") { node.state.opened = true; } IEnumerable <Media> parentItems = new List <Media>(); if (AdminBasePage.SelectedMedia != null) { parentItems = MediaDetailsMapper.GetAllParentMedias(AdminBasePage.SelectedMedia); if (parentItems.Any(i => i.ID == detail.MediaID)) { node.state.opened = true; } } if (detail.MediaID == AdminBasePage.SelectedMedia?.ID) { node.state.opened = true; node.state.selected = true; } }
public IHttpHandler GetHttpHandler(RequestContext requestContext) { RedisCacheHelper.SetRedisCacheConnectionString(AppSettings.RedisCacheConnectionString); FileCacheHelper.SetFileSystemCacheDirPath(AppSettings.FileSystemCacheDirPath); virtualPath = URIHelper.GetCurrentVirtualPath().ToLower(); var queryString = HttpContext.Current.Request.QueryString.ToString(); queryString = System.Web.HttpUtility.UrlDecode(queryString); if (!Request.Path.EndsWith("/") || ((virtualPath != "~/") && (!virtualPath.EndsWith("/")))) { var path = Request.Path + "/"; if (!string.IsNullOrEmpty(queryString)) { path = path + "?" + queryString; } HttpContext.Current.Response.RedirectPermanent(path); } Settings cmsSettings = null; bool isAttemptingAdminLogin = false; if ((virtualPath != "~/login/") && (virtualPath != "~/admin/") && string.IsNullOrEmpty(Request.QueryString["format"])) { cmsSettings = SettingsMapper.GetSettings(); if (cmsSettings != null) { var isSiteOnline = cmsSettings.IsSiteOnline(); if (isSiteOnline) { if (virtualPath.Contains(cmsSettings.SiteOfflineUrl)) { Response.Redirect("~/"); } AttemptToLoadFromCache(); } else { if (!virtualPath.Contains(cmsSettings.SiteOfflineUrl)) { Response.Redirect(cmsSettings.SiteOfflineUrl); } } } else { AttemptToLoadFromCache(); } } else { isAttemptingAdminLogin = true; } var languageSegment = FrameworkSettings.GetCurrentLanguage().UriSegment; if (LanguagesMapper.GetAllActive().Count() > 1 && !Request.Url.PathAndQuery.Contains($"/{languageSegment}/")) { var url = URIHelper.ConvertToAbsUrl("/" + languageSegment + Request.Url.PathAndQuery); Response.RedirectPermanent(url, true); } var segments = URIHelper.GetUriSegments(virtualPath).ToList(); string firstSegment = ""; if (segments.Count > 0) { firstSegment = segments[0]; var language = LanguagesMapper.GetAllActive().SingleOrDefault(i => i.UriSegment == firstSegment); if (language != null) { FrameworkSettings.SetCurrentLanguage(language); } } if (!isAttemptingAdminLogin && AppSettings.EnableUrlRedirectRules) { var path = virtualPath; if (!string.IsNullOrEmpty(queryString)) { path = path + "?" + queryString; } var redirectRule = UrlRedirectRulesMapper.GetRuleForUrl(path); if (redirectRule != null) { var newUrl = redirectRule.RedirectToUrl; if (newUrl.Contains("{")) { newUrl = MediaDetailsMapper.ParseSpecialTags(redirectRule, newUrl); } newUrl = URIHelper.ConvertToAbsUrl(newUrl); var possibleLoopRules = UrlRedirectRulesMapper.GetRulesFromUrl(URIHelper.ConvertAbsUrlToTilda(newUrl)); var foundActiveVirtualPath = MediaDetailsMapper.GetByVirtualPath(path); if (possibleLoopRules.Any()) { foreach (var rule in possibleLoopRules) { var returnObj = MediaDetailsMapper.DeletePermanently(rule); } } if (foundActiveVirtualPath != null) { var returnObj = MediaDetailsMapper.DeletePermanently(redirectRule); } if (Request.QueryString.Count > 0) { newUrl += "?" + Request.QueryString; } if (redirectRule.Is301Redirect) { Response.RedirectPermanent(newUrl); } else { Response.Redirect(newUrl); } } } if (!File.Exists(HttpContext.Current.Server.MapPath(virtualPath)) && !virtualPath.Contains(ParserHelper.OpenToken) && !virtualPath.Contains(ParserHelper.CloseToken)) { string viewPath = ""; long mediaDetailId = 0; long.TryParse(requestContext.HttpContext.Request["MediaDetailID"], out mediaDetailId); long mediaId = 0; long.TryParse(requestContext.HttpContext.Request["MediaID"], out mediaId); MediaDetail detail = null; if (mediaDetailId == 0 && mediaId == 0) { FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByVirtualPath(virtualPath, true); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } else if (mediaDetailId != 0) { var mediaDetail = MediaDetailsMapper.GetByID(mediaDetailId); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMediaDetail(mediaDetail); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } else if (mediaId != 0) { var media = MediasMapper.GetByID(mediaId); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMedia(media); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } /*if (detail != null && !detail.CanUserAccessSection(FrameworkSettings.CurrentUser)) * { * FormsAuthentication.RedirectToLoginPage(); * }*/ /*if (detail != null) * { * var absUrlBase = URIHelper.ConvertAbsUrlToTilda(detail.AbsoluteUrl).Replace("~", ""); * var absPathBase = URIHelper.ConvertAbsUrlToTilda(Request.Url.AbsolutePath).Replace("~", ""); * * if (absUrlBase != absPathBase) * { * Response.Redirect(detail.AbsoluteUrl + Request.Url.Query); * } * }*/ if (detail != null) { if (detail.ForceSSL || AppSettings.ForceSSL) { URIHelper.ForceSSL(); } } else { var currentLanguageId = FrameworkSettings.GetCurrentLanguage().ID; var historyVersion = BaseMapper.GetDataModel().MediaDetails.FirstOrDefault(i => i.LanguageID == currentLanguageId && i.CachedVirtualPath == virtualPath && i.MediaType.ShowInSiteTree && i.HistoryVersionNumber != 0 && i.HistoryForMediaDetail != null); if (historyVersion != null && historyVersion.VirtualPath != historyVersion.HistoryForMediaDetail.VirtualPath) { var foundRedirectUrl = UrlRedirectRulesMapper.GetRuleForUrl(virtualPath); if (foundRedirectUrl == null) { var urlRedirectRule = UrlRedirectRulesMapper.CreateUrlRedirect(virtualPath, historyVersion.HistoryForMediaDetail.Media); if (urlRedirectRule != null) { var returnObj = UrlRedirectRulesMapper.Insert(urlRedirectRule); HttpContext.Current.Response.RedirectPermanent(historyVersion.HistoryForMediaDetail.CachedVirtualPath); } else { HttpContext.Current.Response.RedirectPermanent("/"); } } } else { HttpContext.Current.Response.RedirectPermanent("/"); } } if ((detail == null) || (!IsValidRequest(detail))) { detail = null; if (cmsSettings != null) { if (!string.IsNullOrEmpty(cmsSettings.PageNotFoundUrl)) { ErrorHelper.LogException(new Exception($"Page Not Found: {virtualPath}")); Response.Redirect(cmsSettings.PageNotFoundUrl); /*FrameworkSettings.CurrentFrameworkBaseMedia = null; * * FrameworkSettings.CurrentFrameworkBaseMedia = FrameworkBaseMedia.GetInstanceByVirtualPath(cmsSettings.PageNotFoundUrl, true); * detail = (MediaDetail)FrameworkSettings.CurrentFrameworkBaseMedia.CurrentMediaDetail; * * ErrorHelper.LogException(new Exception($"Page Not Found: {virtualPath}"));*/ //Response.StatusCode = 301; } } } if (detail != null) { var draft = detail.GetLatestDraft(); if (draft != null && (draft.PublishDate - detail.PublishDate) > TimeSpan.FromSeconds(10) && draft.CanRender) { var returnObj = draft.PublishLive(); if (!returnObj.IsError) { detail.RemoveFromCache(); draft.RemoveFromCache(); FrameworkSettings.Current = FrameworkBaseMedia.GetInstanceByMediaDetail(draft); detail = (MediaDetail)FrameworkSettings.Current.CurrentMediaDetail; } } if (detail.RedirectToFirstChild) { var child = detail.ChildMediaDetails.FirstOrDefault(); if (child != null) { var redirectPath = child.AutoCalculatedVirtualPath; if (!string.IsNullOrEmpty(queryString)) { redirectPath = redirectPath + "?" + queryString; } HttpContext.Current.Response.Redirect(redirectPath); } } viewPath = FrameworkSettings.Current.CurrentMediaDetail.Handler; if ((viewPath == null) || (viewPath.Trim() == "")) { viewPath = MediaTypesMapper.GetByID(FrameworkSettings.Current.CurrentMediaDetail.MediaTypeID).MediaTypeHandler; } viewPath = URIHelper.ConvertAbsUrlToTilda(viewPath); if (!string.IsNullOrEmpty(Request.QueryString["format"])) { FrontEndBasePage.HandleFormatQueryString(detail, Request.QueryString["format"], Request.QueryString["depth"]); } return(CreateInstanceFromVirtualPath(viewPath, typeof(BasePage))); } } return(new DefaultHttpHandler()); }
protected void ItemsList_OnItemDataBound(object sender, ListViewItemEventArgs e) { if (e.Item.ItemType == ListViewItemType.DataItem) { HyperLink Link = (HyperLink)e.Item.FindControl("Link"); ListView ChildList = (ListView)e.Item.FindControl("ChildList"); IMediaDetail detail = (IMediaDetail)e.Item.DataItem; if (!displayProtectedSections && detail.IsProtected) { if (BasePage.CurrentUser == null) { e.Item.Visible = false; } } Link.Text = detail.LinkTitle; string virtualPath = detail.AutoCalculatedVirtualPath; if (detail.UseDirectLink) { virtualPath = detail.DirectLink; } if (currentDepth == 1) { if (Link.CssClass == "") { Link.CssClass = TopLevelAnchorClasses; } else { Link.CssClass = Link.CssClass + " " + TopLevelAnchorClasses; } } else { if (Link.CssClass == "") { Link.CssClass = SubAnchorClasses; } else { Link.CssClass = Link.CssClass + " " + SubAnchorClasses; } } if (detail.OpenInNewWindow) { Link.Target = "_blank"; } if (!virtualPath.StartsWith("{") && !virtualPath.EndsWith("/")) { if (!virtualPath.Contains(".")) { virtualPath += "/"; } } var path = virtualPath; if (!virtualPath.StartsWith("{")) { path = URIHelper.ConvertToAbsUrl(virtualPath); if (path.Contains("#") && path.EndsWith("/")) { path = path.Remove(path.Length - 1); } } if (detail.RedirectToFirstChild) { path = detail.ChildMediaDetails.Where(i => i.ShowInMenu).ElementAt(0).AbsoluteUrl; } Link.NavigateUrl = path; if (IsBreadCrumbMenu) { if (URIHelper.GetCurrentVirtualPath() == virtualPath) { Link.NavigateUrl = "javascript:void(0);"; } } HtmlContainerControl li = (HtmlContainerControl)e.Item.FindControl("li"); if (li.Attributes["class"] == null) { li.Attributes.Add("class", "index-" + e.Item.DataItemIndex.ToString()); } if (virtualPath == currentVirtualPath || detail.VirtualPath == currentVirtualPath) { li.Attributes["class"] += " current"; } else if (currentVirtualPath.Contains(virtualPath) || currentVirtualPath.Contains(detail.VirtualPath)) { li.Attributes["class"] += " currentParent"; if ((rootMedia != null) && (detail.MediaID == rootMedia.ID)) { li.Attributes["class"] += " rootParent"; } } li.Attributes["class"] += $" MediaID-{detail.MediaID}"; if (li.Attributes["class"].EndsWith("-")) { li.Attributes["class"] = li.Attributes["class"].Substring(0, li.Attributes["class"].Length - 1); } if (!string.IsNullOrEmpty(detail.CssClasses)) { li.Attributes["class"] += " " + detail.CssClasses; } if (!string.IsNullOrEmpty(SubLIClasses)) { li.Attributes["class"] += " " + SubLIClasses; } li.Attributes["class"] = li.Attributes["class"].Trim(); IEnumerable <IMediaDetail> childItems = new List <IMediaDetail>(); if ((rootMedia != null) && (detail.MediaID != rootMedia.ID)) { //childItems = new List<IMediaDetail>(); //childItems = detail.ChildMediaDetails.Where(i=>i.ShowInMenu); //childItems = details.Media.ChildMedias.SelectMany(i => i.MediaDetails.Where(j => j.HistoryVersionNumber == 0 && !j.IsDeleted && j.PostPublishDate <= DateTime.Now && j.LanguageID == details.LanguageID)); //childItems = MediaDetailsMapper.FilterOutDeletedAndArchived(MediaDetailsMapper.GetAllChildMediaDetails(details.Media, details.Language)); if (!renderHiddenMediaTypes) { childItems = MediaDetailsMapper.GetDataModel().MediaDetails.Where(i => i.ShowInMenu && i.Media.ParentMediaID == detail.Media.ID && i.HistoryVersionNumber == 0 && i.LanguageID == detail.LanguageID && !i.IsDeleted && i.PublishDate <= DateTime.Now && (i.ExpiryDate == null || i.ExpiryDate > DateTime.Now)).OrderBy(i => i.Media.OrderIndex).ToList(); } else { childItems = MediaDetailsMapper.GetDataModel().MediaDetails.Where(i => i.Media.ParentMediaID == detail.Media.ID && i.HistoryVersionNumber == 0 && i.LanguageID == detail.LanguageID && !i.IsDeleted && i.PublishDate <= DateTime.Now && (i.ExpiryDate == null || i.ExpiryDate > DateTime.Now)).OrderBy(i => i.Media.OrderIndex).ToList(); } } if (!detail.CssClasses.Contains("NoChildren") && childItems.Any()) { if ((currentDepth < renderDepth) || (renderDepth == -1)) { //ChildList.LayoutTemplate = ItemsList.LayoutTemplate; ChildList.ItemTemplate = ItemsList.ItemTemplate; ChildList.ItemDataBound += new EventHandler <ListViewItemEventArgs>(ItemsList_OnItemDataBound); ChildList.LayoutCreated += new EventHandler(ItemsList_OnLayoutCreated); if ((childItems != null) && (IsFooterMenu)) { childItems = childItems.Where(i => i.RenderInFooter); } else if (childItems != null) { childItems = childItems.Where(i => i.ShowInMenu); } if (!displayProtectedSections) { var list = childItems.OrderBy(i => i.Media.OrderIndex).ToList(); if (list.Count > 0) { li.Attributes["class"] += " has-children"; } if ((currentDepth > 0) && (RenderParentItemInChildNav)) { /*var parentDetails = new List<IMediaDetail>(); * detail.CssClasses = "NoChildren"; * parentDetails.Add(detail);*/ list = list.ToList(); detail.CssClasses = "NoChildren"; ((List <IMediaDetail>)list).Insert(0, detail); //list = list.Concat(parentDetails); } ChildList.DataSource = list; ChildList.DataBind(); } currentDepth = currentDepth - 1; } } } }
protected void SlidesList_OnItemDataBound(object sender, ListViewItemEventArgs e) { if (e.Item.ItemType == ListViewItemType.DataItem) { HyperLink FlashAltLink = (HyperLink)e.Item.FindControl("Link"); HyperLink Link = (HyperLink)e.Item.FindControl("Link"); Image Image = (Image)e.Item.FindControl("Image"); Panel ImageSliderPanel = (Panel)e.Item.FindControl("ImageSliderPanel"); Panel ContentSliderPanel = (Panel)e.Item.FindControl("ContentSliderPanel"); Panel NonFlashPanel = (Panel)e.Item.FindControl("NonFlashPanel"); HtmlControl Slide = (HtmlControl)e.Item.FindControl("Slide"); Slide Item = (Slide)e.Item.DataItem; if ((this.gallery.PathToRenderControl != null && this.gallery.PathToRenderControl != "")) { ImageSliderPanel.Visible = false; ContentSliderPanel.Visible = true; Literal ItemRenderedLayout = new Literal(); ItemRenderedLayout.Text = LoaderHelper.RenderControl(this.gallery.PathToRenderControl, Item.MediaDetail); ContentSliderPanel.Controls.Add(ItemRenderedLayout); } else { ImageSliderPanel.Visible = true; ContentSliderPanel.Visible = false; if (Item.PathToFile.Trim() != "") { Link.NavigateUrl = FlashAltLink.NavigateUrl = Item.Link; } this.BasePage.AddToJSPreload(Item.PathToFile); if (!Item.PathToFile.Contains(".swf")) { Image.ImageUrl = Item.PathToFile; Image.Attributes["data-alt-image"] = URIHelper.ConvertToAbsUrl(Item.PathToAlternativeFile); Image.AlternateText = Item.Title; NonFlashPanel.CssClass = NonFlashPanel.CssClass + " InteriorBanner"; if (!string.IsNullOrEmpty(Item.BgColor)) { NonFlashPanel.Style["background-color"] = Item.BgColor; } } else { NonFlashPanel.Visible = false; } Link.ToolTip = Item.Title; if (Link.NavigateUrl != "") { Link.CssClass += " popup"; } } } }