/// <summary> /// Gets a media URL. /// </summary> /// <param name="item">The media item.</param> /// <param name="options">The query string.</param> /// <returns> /// The media URL. /// </returns> public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNull(options, "options"); var flag = options.Thumbnail || HasMediaContent(item); if (!flag && item.InnerItem["path"].Length > 0) { if (!options.LowercaseUrls) return item.InnerItem["path"]; return item.InnerItem["path"].ToLowerInvariant(); } if (options.UseDefaultIcon && !flag) { return !options.LowercaseUrls ? Themes.MapTheme(Settings.DefaultIcon) : Themes.MapTheme(Settings.DefaultIcon).ToLowerInvariant(); } Assert.IsTrue(Config.MediaPrefixes[0].Length > 0, "media prefixes are not configured properly."); var str1 = MediaLinkPrefix; if (options.AbsolutePath) str1 = options.VirtualFolder + str1; else if (str1.StartsWith("/", StringComparison.InvariantCulture)) str1 = StringUtil.Mid(str1, 1); var part2 = MainUtil.EncodePath(str1, '/'); if (options.AlwaysIncludeServerUrl) part2 = FileUtil.MakePath(string.IsNullOrEmpty(options.MediaLinkServerUrl) ? WebUtil.GetServerUrl() : options.MediaLinkServerUrl, part2, '/'); var str2 = StringUtil.EnsurePrefix('.', StringUtil.GetString(options.RequestExtension, item.Extension, "ashx")); var str3 = options.ToString(); if (str3.Length > 0) str2 = str2 + "?" + str3; const string str4 = "/sitecore/media library/"; var path = item.InnerItem.Paths.Path; var str5 = MainUtil.EncodePath(!options.UseItemPath || !path.StartsWith(str4, StringComparison.OrdinalIgnoreCase) ? item.ID.ToShortID().ToString() : StringUtil.Mid(path, str4.Length), '/'); var str6 = part2 + str5 + (options.IncludeExtension ? str2 : string.Empty); return !options.LowercaseUrls ? str6 : str6.ToLowerInvariant(); }
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { string mediaUrl = base.GetMediaUrl(item, options); if (string.IsNullOrEmpty(mediaUrl)) return mediaUrl; int versionNumber = item.InnerItem.Version.Number; string langIsoCode = item.InnerItem.Language.CultureInfo.TwoLetterISOLanguageName; string updatedDate = item.InnerItem.Statistics.Updated.ToString("s"); NameValueCollection parameters = new NameValueCollection { {"v", versionNumber.ToString()}, {"lang", langIsoCode}, {"modified", updatedDate} }; if (options.AlwaysIncludeServerUrl) { UriBuilder uriBuilder = new UriBuilder(mediaUrl); NameValueCollection queryString = HttpUtility.ParseQueryString(uriBuilder.Query); queryString.Add(parameters); uriBuilder.Query = ToQueryString(queryString); return uriBuilder.ToString(); } StringBuilder sb = new StringBuilder(mediaUrl); string seperator = "?"; if (mediaUrl.Contains(seperator)) seperator = "&"; foreach (string key in parameters.Keys) { sb.AppendFormat("{0}{1}={2}", seperator, key, parameters[key]); seperator = "&"; } return sb.ToString(); }
/// <summary> /// Gets the media URL. /// </summary> /// <param name="item">The item.</param> /// <param name="mediaUrlOptions">The media URL options.</param> /// <returns></returns> public override string GetMediaUrl(MediaItem item, MediaUrlOptions mediaUrlOptions) { Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNull(mediaUrlOptions, "mediaUrlOptions"); //Return the standard image if any of the following conditions are met if (!IsImage(item) || Context.Database == null || Context.Site.Name == "shell" || !Context.PageMode.IsNormal || !((Item)item).HasChildren) return base.GetMediaUrl(item, mediaUrlOptions); double pixelDensity = GetCookiePixelDensity(); if (pixelDensity <= 1) return base.GetMediaUrl(item, mediaUrlOptions); //Get the first child of the media item (It should be the retina version of the image) Item retinaItem = ((Item)item).Children.FirstOrDefault(); //Return the standard image if width and height are not set on the retina media items if (retinaItem == null || String.IsNullOrEmpty(retinaItem["Width"]) || String.IsNullOrEmpty(retinaItem["Height"])) return base.GetMediaUrl(item, mediaUrlOptions); int retinaWidth = System.Convert.ToInt32(retinaItem["Width"]); int retinaHeight = System.Convert.ToInt32(retinaItem["Height"]); if (mediaUrlOptions.Width > 0 && mediaUrlOptions.Height > 0 && retinaWidth >= (mediaUrlOptions.Width * pixelDensity) && retinaHeight >= (mediaUrlOptions.Height * pixelDensity)) { mediaUrlOptions.Width = System.Convert.ToInt32(mediaUrlOptions.Width * pixelDensity); mediaUrlOptions.Height = System.Convert.ToInt32(mediaUrlOptions.Height * pixelDensity); //Return the retina version with width and height parameters adjusted accordingly return base.GetMediaUrl(retinaItem, mediaUrlOptions); } //Return the retina version return base.GetMediaUrl(retinaItem, mediaUrlOptions); }
public static string ImageUrl(this ImageField imageField, MediaUrlOptions options = null) { if (imageField?.MediaItem == null) { throw new ArgumentNullException(nameof(imageField)); } if (options != null) { return HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageField.MediaItem, options)); } options = MediaUrlOptions.Empty; int width, height; if (int.TryParse(imageField.Width, out width)) { options.Width = width; } if (int.TryParse(imageField.Height, out height)) { options.Height = height; } return HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageField.MediaItem, options)); }
/// <summary> /// If CDN is enabled for this request, replace the outgoing media url with the cdn version /// </summary> /// <param name="item"></param> /// <param name="options"></param> /// <returns></returns> public override string GetMediaUrl(Sitecore.Data.Items.MediaItem item, MediaUrlOptions options) { string hostname = CDNManager.GetCDNHostName(); string url = base.GetMediaUrl(item, options); bool shouldReplace = !string.IsNullOrEmpty(hostname) && // cdnHostname exists for site Sitecore.Context.PageMode.IsNormal; // PageMode is normal bool dontReplace = !CDNManager.IsMediaPubliclyAccessible(item) || // media is publicly accessible CDNManager.IsMediaAnalyticsTracked(item); // media is analytics tracked CDNUrlState contextState = CDNUrlSwitcher.CurrentValue; if (contextState == CDNUrlState.Enabled) { shouldReplace = true; } else if (contextState == CDNUrlState.Disabled) { UrlString url2 = new UrlString(url); url2[CDNManager.StopToken] = "1"; url = url2.ToString(); shouldReplace = false; } if (shouldReplace && !dontReplace) // media not DMS tracked { return CDNManager.ReplaceMediaUrl(url, hostname); } else { return url; } }
public static string ImageUrl(this ImageField imageField, MediaUrlOptions options) { if (imageField?.MediaItem == null) { throw new ArgumentNullException(nameof(imageField)); } return options == null ? imageField.ImageUrl() : HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageField.MediaItem, options)); }
public static string GetImageUrlParameter(this Rendering rendering, string parameterName, MediaUrlOptions options = null) { if (rendering == null) { throw new ArgumentNullException(nameof(rendering)); } // Check if this rendering parameter exists // Also crude check to guess if this is actually XML. var parameters = rendering.Parameters[parameterName]; if (string.IsNullOrEmpty(parameters) || !parameters.StartsWith("<")) { return string.Empty; } // Try and parse the parameters into XML var xml = XmlUtil.LoadXml(parameters); if (xml == null) { return string.Empty; } // Check if xml contains mediaid attribute var imageId = XmlUtil.GetAttribute("mediaid", xml); if (string.IsNullOrEmpty(imageId)) { return string.Empty; } // Check if mediaid exists in database var imageItem = Context.Database.GetItem(imageId); if (imageItem == null) { return string.Empty; } // If no explicit options supplied, work out width and height from xml parameters if (options == null) { options = MediaUrlOptions.Empty; int width, height; if (int.TryParse(XmlUtil.GetAttribute("width", xml), out width)) { options.Width = width; } if (int.TryParse(XmlUtil.GetAttribute("height", xml), out height)) { options.Height = height; } } // Return hash protected URL. return HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageItem, options)); }
public MediaUrlOptions GetMediaUrlOptions(MediaUrlOptions baseMediaUrlOptions = null) { MediaUrlOptions mediaUrlOptions = baseMediaUrlOptions ?? new MediaUrlOptions(); mediaUrlOptions.Width = this.Width; if (this.Height.HasValue) { mediaUrlOptions.Height = this.Height.Value; } return mediaUrlOptions; }
public static string MediaUrl(this Item item, ID mediaFieldId, MediaUrlOptions options = null) { if (item == null) { throw new ArgumentNullException(nameof(item)); } var imageField = (LinkField)item.Fields[mediaFieldId]; return imageField.TargetItem == null ? String.Empty : (MediaManager.GetMediaUrl(imageField.TargetItem) ?? string.Empty); }
public static string ImageUrl(this Item item, ID imageFieldId, MediaUrlOptions options = null) { if (item == null) { throw new ArgumentNullException(nameof(item)); } var imageField = (ImageField)item.Fields[imageFieldId]; return imageField?.MediaItem == null ? string.Empty : imageField.ImageUrl(options); }
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { var originalUrl = base.GetMediaUrl(item, options); if (Context.Request == null || !Context.Request.HasHttpContext()) { // Happens in events or jobs running outside of HttpContext return originalUrl; } if (Context.Request.IsSitecoreShellRequest()) { return originalUrl; } return Helper.TransformUrl(originalUrl, item); }
public static string GetImageUrl(this MediaItem mediaItem, int? width = null, int? height = null, int? maxWidth = null, int? maxHeight = null) { string imageUrl = string.Empty; if (mediaItem != null) { var options = new MediaUrlOptions(); if (width.HasValue) options.Width = width.Value; if (height.HasValue) options.Height = height.Value; if (maxWidth.HasValue) options.MaxWidth = maxWidth.Value; if (maxHeight.HasValue) options.MaxHeight = maxHeight.Value; imageUrl = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(mediaItem, options)); } return imageUrl; }
/// <summary> /// Sitecore Image item Url value. /// </summary> /// <param name="item">Sitecore Image item /// </param> /// <param name="imageFieldName">Image Item field name /// </param> /// <param name="options">Image options value /// </param> /// <returns> /// Image item Url. /// </returns> /// <exception cref="ArgumentNullException"> /// Throw item does not exist excpetion /// </exception> public static string ImageUrl(this Item item, string imageFieldName, MediaUrlOptions options = null) { if (item == null) { throw new ArgumentNullException("item"); } if (imageFieldName == null) { throw new ArgumentNullException("imageFieldName"); } var imageField = (ImageField)item.Fields[imageFieldName]; if (imageField == null || imageField.MediaItem == null) { return string.Empty; } return imageField.ImageUrl(options); }
public static string GetMediaUrlSafe(this Field field) { // check field if (field == null) { return string.Empty; } // check field, as a media/image type var imageField = (ImageField)field; if (imageField == null || imageField.MediaItem == null) { return string.Empty; } // generate image url var o = new MediaUrlOptions() { AlwaysIncludeServerUrl = true }; string url = imageField.MediaItem.GetMediaUrlFull().CleanAdminPath(); return url; }
protected void Page_Load(object sender, EventArgs e) { BlogSettings settingsItem = XBlogHelper.General.DataManager.GetBlogSettingsItem(DataSourceItem != null ? DataSourceItem : Sitecore.Context.Item); BlogPost blogPost = Sitecore.Context.Item.CreateAs<BlogPost>(); UrlOptions options = new UrlOptions(); options.AlwaysIncludeServerUrl = true; ogURL = LinkManager.GetItemUrl(blogPost.InnerItem, options); ogTitle = blogPost.Title; ogDescription = ""; if (!String.IsNullOrEmpty(blogPost.Summary)) { ogDescription = Regex.Replace(blogPost.Summary, "<.*?>", String.Empty); } else { ogDescription = Regex.Replace(XBlogHelper.Helpers.Helper.SafeSubstring(blogPost.Summary, settingsItem.DisplaySummaryLength), "<.*?>", String.Empty); } ogAuthorImage = ""; if (blogPost.Authors.Any()) { List<Sitecore.Data.ID> authorIds = new List<Sitecore.Data.ID>(); foreach (Author a in blogPost.Authors) { authorIds.Add(a.ItemId); } List<Author> authors = AuthorManager.GetAuthorsForBlogPost(authorIds); if (authors[0].ProfileImage != null && authors[0].ProfileImage.MediaItem != null && settingsItem.DisplayAuthorImage) { MediaUrlOptions mediaOptions = new MediaUrlOptions(); mediaOptions.AlwaysIncludeServerUrl = true; ogAuthorImage = MediaManager.GetMediaUrl(authors[0].ProfileImage.MediaItem, mediaOptions); } } }
public FieldSuiteImage(FieldSuiteImageArgs args) : base(args) { if (args.InnerItem.IsNull() || args.Node == null || args.Node.Attributes["imageField"] == null) { return; } string titleField = null; string imageField = args.Node.Attributes["imageField"].Value; if (args.Node.Attributes["titleField"] != null) { titleField = args.Node.Attributes["titleField"].Value; } //get title, fall back to display name Title = args.InnerItem.DisplayName; if (!string.IsNullOrEmpty(titleField)) { Title = args.InnerItem[titleField]; } //image field source ImageField imageFieldObject = args.InnerItem.Fields[imageField]; if (imageFieldObject == null || imageFieldObject.MediaItem == null) { return; } MediaUrlOptions options = new MediaUrlOptions(); options.AbsolutePath = true; options.UseItemPath = true; ImageUrl = MediaManager.GetMediaUrl(imageFieldObject.MediaItem, options); if (string.IsNullOrEmpty(ImageUrl)) { return; } }
/// <summary> /// If CDN is enabled for this request, replace the outgoing media url with the cdn version /// </summary> /// <param name="item"></param> /// <param name="options"></param> /// <returns></returns> public override string GetMediaUrl(Sitecore.Data.Items.MediaItem item, MediaUrlOptions options) { string hostname = CDNManager.GetCDNHostName(); string url = base.GetMediaUrl(item, options); bool shouldReplace = !string.IsNullOrEmpty(hostname) && // cdnHostname exists for site Sitecore.Context.PageMode.IsNormal; // PageMode is normal bool dontReplace = !CDNManager.IsMediaPubliclyAccessible(item) || // media is publicly accessible CDNManager.IsMediaAnalyticsTracked(item); // media is analytics tracked CDNUrlState contextState = CDNUrlSwitcher.CurrentValue; if (contextState == CDNUrlState.Enabled) { shouldReplace = true; } else if (contextState == CDNUrlState.Disabled) { UrlString url2 = new UrlString(url); url2[CDNManager.StopToken] = "1"; url = url2.ToString(); shouldReplace = false; } // NOTE: DOREL CHANGE: Do not process PDF. It will be processed in CDNProvider.ReplaceMediaUrls(HtmlDocument). http://targetprocess.colours.nl/entity/24810 if (item.Extension == "pdf") { shouldReplace = false; } if (shouldReplace && !dontReplace) // media not DMS tracked { return CDNManager.ReplaceMediaUrl(url, hostname); } else { return url; } }
public MediaImage(FieldSuiteImageArgs args) : base(args) { if (args == null || args.InnerItem.IsNull()) { return; } if(!args.InnerItem.Paths.IsMediaItem) { return; } MediaItem mediaItem = args.InnerItem; MediaUrlOptions options = new MediaUrlOptions(); options.AbsolutePath = true; options.UseItemPath = true; Title = mediaItem.DisplayName; ImageUrl = MediaManager.GetMediaUrl(mediaItem, options); }
public static string GetImageUrl(this CustomImageField customImageField, int? width = null, int? height = null, int? maxWidth = null, int? maxHeight = null) { string imageUrl = ""; Sitecore.Data.Fields.ImageField imageField = customImageField.Field; if (imageField != null && imageField.MediaItem != null) { var image = new MediaItem(imageField.MediaItem); var options = new MediaUrlOptions { Width = width.HasValue ? width.Value : Int32.Parse(imageField.Width), Height = height.HasValue ? height.Value : Int32.Parse(imageField.Height) }; if (maxWidth.HasValue) options.MaxWidth = maxWidth.Value; if (maxHeight.HasValue) options.MaxHeight = maxHeight.Value; imageUrl = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(image, options)); } return imageUrl; }
/// <summary> /// Handles a click on the OK button. /// /// </summary> /// <param name="sender">The sender.</param><param name="args">The arguments.</param> /// <remarks> /// When the user clicks OK, the dialog is closed by calling /// the <see cref="M:Sitecore.Web.UI.Sheer.ClientResponse.CloseWindow">CloseWindow</see> method. /// /// </remarks> protected override void OnOK(object sender, EventArgs args) { Assert.ArgumentNotNull(sender, "sender"); Assert.ArgumentNotNull(args, "args"); string str = Filename.Value; if (str.Length == 0) { SheerResponse.Alert("Select a media item."); } else { Item root = DataContext.GetRoot(); Item rootItem = root?.Database.GetRootItem(); if (rootItem != null && root.ID != rootItem.ID) { str = FileUtil.MakePath(root.Paths.Path, str, '/'); } MediaItem mediaItem = DataContext.GetItem(str, ContentLanguage, Sitecore.Data.Version.Latest); if (mediaItem == null) { SheerResponse.Alert("The media item could not be found."); } else if (!(MediaManager.GetMedia(MediaUri.Parse(mediaItem)) is ImageMedia || mediaItem.MimeType == "image/svg+xml")) { SheerResponse.Alert("The selected item is not an image. Select an image to continue."); } else { MediaUrlOptions shellOptions = MediaUrlOptions.GetShellOptions(); shellOptions.Language = ContentLanguage; string text = !string.IsNullOrEmpty(HttpContext.Current.Request.Form["AlternateText"]) ? HttpContext.Current.Request.Form["AlternateText"] : mediaItem.Alt; if (mediaItem.MimeType == "image/svg+xml") { string svgImage = GetSVGImage(mediaItem, shellOptions); if (Mode == "webedit") { SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(svgImage)); base.OnOK(sender, args); } else { SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(svgImage) + ")"); } } else { Tag image = new Tag("img"); SetDimensions(mediaItem, shellOptions, image); image.Add("Src", MediaManager.GetMediaUrl(mediaItem, shellOptions)); image.Add("Alt", StringUtil.EscapeQuote(text)); image.Add("_languageInserted", "true"); if (Mode == "webedit") { SheerResponse.SetDialogValue(StringUtil.EscapeJavascriptString(image.ToString())); base.OnOK(sender, args); } else { SheerResponse.Eval("scClose(" + StringUtil.EscapeJavascriptString(image.ToString()) + ")"); } } } } }
public static string MediaUrl(this SitecoreHelper sitecoreHelper, ID fieldId, MediaUrlOptions options) { return(MediaUrl(sitecoreHelper, fieldId, sitecoreHelper.CurrentItem, options)); }
protected void Page_Load(object sender, EventArgs e) { //CREATE NEW USER SESSION //Check if we are loading home page for the first time User objUser = new User(); //Check Session if (Session["sess_User"] == null) { newSession = true; } else { objUser = (User)Session["sess_User"]; } //READ/SET COOKIE OPTIONS if (newSession) { //New Session //Check gallery preference if (!string.IsNullOrEmpty(CookieHelper.GetCookieValue(CookieKeyNames.ShowGallery))) { //Store to session objUser.ShowGallery = CookieHelper.GetCookieValue(CookieKeyNames.ShowGallery) == "Y" ? true : false; } //Check if cookie preferences session cookie exists if (!string.IsNullOrEmpty(CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies))) { Preferences preferences = new Preferences(); preferences.MarketingCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MarketingCookies) == "Y" ? true : false; preferences.MetricsCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.MetricsCookies) == "Y" ? true : false; preferences.PersonalisedCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.PersonalisedCookies) == "Y" ? true : false; preferences.SocialCookies = CookieHelper.GetOptInCookieValue(CookieKeyNames.SocialCookies) == "Y" ? true : false; //Store to session objUser.Preferences = preferences; } else { //Interorgate the request 'Do Not Track' settings. HttpContext objContext = HttpContext.Current; bool headerDoNotTrack = false; if (!string.IsNullOrEmpty(objContext.Request.Headers["DNT"])) { headerDoNotTrack = objContext.Request.Headers["DNT"] == "1" ? true : false; } if (headerDoNotTrack) { //Set Preferences in User Session -default to N Preferences preferences = new Preferences(); preferences.MarketingCookies = false; preferences.MetricsCookies = false; preferences.PersonalisedCookies = false; preferences.SocialCookies = false; objUser.Preferences = preferences; //Set Cookie Preferences Cookie CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "N"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "N"); //Delete Existing Personalisation Cookie CookieHelper.DeleteCookie(); } } } //DEFAULT PREFERENCES if (objUser.Preferences == null) { //Set preferences in User Session -default to Y Preferences preferences = new Preferences(); preferences.MarketingCookies = true; preferences.MetricsCookies = true; preferences.PersonalisedCookies = true; preferences.SocialCookies = true; //Store to session objUser.Preferences = preferences; //Set Cookie Preferences Cookie -default to permission allowed CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MarketingCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.MetricsCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.PersonalisedCookies, "Y"); CookieHelper.AddUpdateOptInCookie(CookieKeyNames.SocialCookies, "Y"); } //SET PAGE META DATA PageSummaryItem item = new PageSummaryItem(currentItem); string canonicalTag = item.GetCanonicalTag(); string metaDescription = item.GetMetaDescription(); //Add page title //todo: add club name string title = Translate.Text("Virgin Active"); string browserPageTitle = item.GetPageTitle(); if (!String.IsNullOrEmpty(browserPageTitle)) { title = String.Format("{0} | {1}", browserPageTitle, title); } Page.Title = title; //Add canonical Page.Header.Controls.Add(new Literal() { Text = canonicalTag }); //Add meta description Page.Header.Controls.Add(new Literal() { Text = metaDescription }); //Load OpenTag container for all pages (Google needs it) HtmlHead head = (HtmlHead)Page.Header; head.Controls.Add(new LiteralControl(OpenTagHelper.OpenTagVirginActiveUK)); //Add open graph tags (controls info facebook needs) string openGraphDescription = ""; string openGraphImage = ""; string openGraphTitle = title; string startPath = Sitecore.Context.Site.StartPath.ToString(); var homeItem = Sitecore.Context.Database.GetItem(startPath); var options = new UrlOptions { AlwaysIncludeServerUrl = true, AddAspxExtension = false, LanguageEmbedding = LanguageEmbedding.Never }; var homeUrl = LinkManager.GetItemUrl(homeItem, options); var mediaOptions = new MediaUrlOptions { AbsolutePath = true }; //Set return to main site link HomeMainSiteUrl = homeUrl + "?sc_device=default&persisted=true"; openGraphDescription = SitecoreHelper.GetSiteSetting("Facebook description"); openGraphImage = SitecoreHelper.GetSiteSetting("Facebook image url"); //Overwrite if we are inheriting from Social Open Graph SocialOpenGraphItem openGraphDetails; var itemTemplate = TemplateManager.GetTemplate(currentItem); if (itemTemplate.InheritsFrom("Social Open Graph")) { openGraphDetails = (SocialOpenGraphItem)currentItem; openGraphTitle = openGraphDetails.Title.Raw != "" ? openGraphDetails.Title.Raw : openGraphTitle; openGraphDescription = openGraphDetails.Description.Raw != "" ? openGraphDetails.Description.Raw : openGraphDescription; openGraphImage = openGraphDetails.ImageUrl.Raw != "" ? openGraphDetails.ImageUrl.Raw : openGraphImage; } Literal openGraphMeta = new Literal(); openGraphMeta.Text = String.Format(metaProperty, "og:title", openGraphTitle); openGraphMeta.Text = openGraphMeta.Text + String.Format(metaProperty, "og:description", openGraphDescription); openGraphMeta.Text = openGraphMeta.Text + String.Format(metaProperty, "og:image", openGraphImage); Page.Header.Controls.Add(openGraphMeta); //SET PAGE LINKS youTubeUrl = Settings.YouTubeLinkUrl; twitterUrl = Settings.TwitterLinkUrl; facebookUrl = Settings.FacebookLinkUrl; privacyUrl = SitecoreHelper.GetQualifiedUrlFromItemPath(ItemPaths.PrivacyPolicy); termsAndConditionsUrl = SitecoreHelper.GetQualifiedUrlFromItemPath(ItemPaths.TermsAndConditions); cookiesUrl = SitecoreHelper.GetQualifiedUrlFromItemPath(ItemPaths.CookiesForm); //Set featured promo link and home page link Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions(); urlOptions.AlwaysIncludeServerUrl = true; urlOptions.AddAspxExtension = true; urlOptions.LanguageEmbedding = LanguageEmbedding.Never; //Set home page link (set as club home if home club set) homeOrClubPageUrl = Sitecore.Links.LinkManager.GetItemUrl(homeItem, urlOptions); //<h1><a href="/" class="logo"><strong>VIRGIN ACTIVE</strong> HEALTH CLUBS</a></h1> System.Text.StringBuilder markupBuilder = new System.Text.StringBuilder(); if (Sitecore.Context.Item.ID == homeItem.ID) { //Page is home page markupBuilder.Append(@"<h1><a class=""logo"" href="""); markupBuilder.Append(HomeOrClubPageUrl + @"""><strong class=""home"">"); markupBuilder.Append(Translate.Text("VIRGIN ACTIVE") + "</strong> "); markupBuilder.Append(Translate.Text("HEALTH CLUBS") + "</a></h1>"); } else { markupBuilder.Append(@"<a class=""logo"" href="""); markupBuilder.Append(HomeOrClubPageUrl + @"""><strong>"); markupBuilder.Append(Translate.Text("VIRGIN ACTIVE") + "</strong> "); markupBuilder.Append(Translate.Text("HEALTH CLUBS") + "</a>"); } ltrHeaderText.Text = markupBuilder.ToString(); }
/// <summary>Gets the media URL.</summary> /// <param name="item">The item.</param> /// <returns>The media URL.</returns> /// <contract> /// <requires name="item" condition="not null" /> /// <ensures condition="not null" /> /// </contract> private string GetMediaUrl(Item item) { Assert.ArgumentNotNull((object)item, ExtensionMethods.nameof(() => item)); return(MediaManager.GetMediaUrl((MediaItem)item, MediaUrlOptions.GetShellOptions())); }
public XmlRpcStruct newMediaObject(string blogid, string username, string password, XmlRpcStruct rpcstruct) { // Check user validation Authenticate(username, password); var name = rpcstruct["name"].ToString(); var type = rpcstruct["type"].ToString(); var media = (byte[])rpcstruct["bits"]; var blogName = string.Empty; var currentBlog = ContentHelper.GetContentDatabase().GetItem(blogid); blogName = currentBlog.Name; // Get filename var fileName = Path.GetFileName(name); var imageName = ItemUtil.ProposeValidItemName(Path.GetFileNameWithoutExtension(fileName)); // Create strem from byte array var memStream = new MemoryStream(media); var md = new MediaCreatorOptions(); md.Destination = string.Join("/", new string[]{Constants.Paths.WeBlogMedia, blogName, imageName}); md.Database = ContentHelper.GetContentDatabase(); md.AlternateText = imageName; // Create mediaitem var mediaItem = MediaManager.Creator.CreateFromStream(memStream, fileName, md); // Publish mediaitem to web database ContentHelper.PublishItemAndRequiredAncestors(mediaItem.ID); // Close stream memStream.Close(); memStream.Dispose(); // Get the mediaitem url and return it var rstruct = new XmlRpcStruct(); var options = new MediaUrlOptions() { AbsolutePath = false, UseItemPath = false }; rstruct.Add("url", MediaManager.GetMediaUrl(mediaItem, options)); return rstruct; }
/// <summary> /// Gets the media URL. /// </summary> /// <param name="item">The item.</param> /// <param name="mediaUrlOptions">The media URL options.</param> /// <returns></returns> public override string GetMediaUrl(MediaItem item, MediaUrlOptions mediaUrlOptions) { Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNull(mediaUrlOptions, "mediaUrlOptions"); //If media item is not an image or the page context is not normal, then return if (!IsImage(item) || !Context.PageMode.IsNormal || Context.Database == null || Context.Database.Name != _database) return base.GetMediaUrl(item, mediaUrlOptions); //If resolution cookie is not set if (!IsResolutionCookieSet()) { //If mobileFirst is set to FALSE or user agent is identifying as a desktop, return with largest break-point resolution if (!_mobileFirst || IsDesktopBrowser()) { mediaUrlOptions.MaxWidth = GetLargestBreakpoint(); return base.GetMediaUrl(item, mediaUrlOptions); } //Return with mobile-first breakpoint (Smallest) mediaUrlOptions.MaxWidth = GetMobileFirstBreakpoint(); return base.GetMediaUrl(item, mediaUrlOptions); } // If Max-width is not set or Max-width is greater than the selected break-point, then set the Max-width to the break-point if (mediaUrlOptions.MaxWidth == 0 || mediaUrlOptions.MaxWidth > GetScreenResolution()) mediaUrlOptions.MaxWidth = GetScreenResolution(); // If Max-width is not set and the 'maxWidth' setting is not empty, then set the Max-width property to the maxWidth if (mediaUrlOptions.MaxWidth == 0 && !string.IsNullOrEmpty(_maxWidth)) { int maxWidth = 0; if (int.TryParse(_maxWidth, out maxWidth)) { // If pixel ratio is normal if (GetCookiePixelDensity() == 1) mediaUrlOptions.MaxWidth = maxWidth; else mediaUrlOptions.MaxWidth = maxWidth * GetCookiePixelDensity(); } } return base.GetMediaUrl(item, mediaUrlOptions); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="fieldName"></param> /// <param name="options"></param> /// <returns></returns> public static string GetUrl(Item item, string fieldName, MediaUrlOptions options) { return(GetUrl(item, fieldName, null, options)); }
public static string ImageUrl(this Item item, ID imageFieldId, MediaUrlOptions options) { var imageField = (ImageField)item?.Fields?[imageFieldId]; return(imageField?.MediaItem == null ? string.Empty : imageField.ImageUrl(options)); }
string RenderItem(Item originalItem, bool includeTop) { Item item = originalItem; string fieldName = Parameters["image"]; if (!string.IsNullOrEmpty(fieldName)) { ImageField field = originalItem.Fields[fieldName]; Assert.IsNotNull(field, "The item {0} does not have an image field '{1}'. Check visual list field source.".FormatWith(originalItem.Paths.ContentPath, fieldName)); if (field.MediaItem != null) { item = field.MediaItem; } } var output = new HtmlTextWriter(new StringWriter()); string url; if (item.Paths.IsMediaItem) { MediaItem media = item; // Look for image width (w) & height (h) parameters int iWidth = 96; int iHeight = 96; if (!String.IsNullOrEmpty(Parameters["w"])) { iWidth = int.Parse(Parameters["w"]); } if (!String.IsNullOrEmpty(Parameters["h"])) { iHeight = int.Parse(Parameters["h"]); } var options = new MediaUrlOptions(iWidth, iHeight, true); url = "/sitecore/shell/" + MediaManager.GetMediaUrl(media, options); } else { url = Images.GetThemedImageSource(item.Appearance.Icon, ImageDimension.id48x48); } TagBuilder li = null; if (includeTop) { li = new TagBuilder("li") { ID = originalItem.ID.ToString() }.Start(output); } var container = new TagBuilder("div") { Class = "image-container" }; if (!item.Paths.IsMediaItem) { container.Class += " small"; } container.Start(output); new TagBuilder("img").Add("src", url).Add("align", "middle").ToString(output); container.End(output); new TagBuilder("span") { Class = "text", InnerHtml = GetText(originalItem) }.ToString(output); output.Write("<div class=\"delete\"></div>"); if (includeTop) { li.End(output); } return(output.InnerWriter.ToString()); }
/// <summary>Renders the item.</summary> /// <param name="output">The output.</param> /// <param name="item">The item to render.</param> /// <contract> /// <requires name="output" condition="not null" /> /// <requires name="item" condition="not null" /> /// </contract> protected override void RenderItem(HtmlTextWriter output, Item item) { Assert.ArgumentNotNull((object)output, "output"); Assert.ArgumentNotNull((object)item, "item"); string str1 = string.Empty; string str2 = string.Empty; string str3 = string.Empty; if (UploadedItems.Include(item)) { UploadedItems.RenewExpiration(); } string str4; int num1; if (item.TemplateID == TemplateIDs.MediaFolder || item.TemplateID == TemplateIDs.Folder || item.TemplateID == TemplateIDs.Node) { str4 = Themes.MapTheme("Applications/48x48/folder.png"); num1 = 48; int num2 = UserOptions.View.ShowHiddenItems ? item.Children.Count : this.GetVisibleChildCount(item); str1 = num2.ToString() + " " + Translate.Text(num2 == 1 ? "item" : "items"); } else { MediaItem mediaItem = (MediaItem)item; MediaUrlOptions thumbnailOptions = MediaUrlOptions.GetThumbnailOptions((MediaItem)item); num1 = MediaManager.HasMediaContent((Item)mediaItem) ? 72 : 48; thumbnailOptions.Width = num1; thumbnailOptions.Height = num1; thumbnailOptions.UseDefaultIcon = true; str4 = MediaManager.GetMediaUrl(mediaItem, thumbnailOptions); MediaMetaDataFormatter metaDataFormatter = MediaManager.Config.GetMetaDataFormatter(mediaItem.Extension); if (metaDataFormatter != null) { MediaMetaDataCollection metaData1 = mediaItem.GetMetaData(); MediaMetaDataCollection metaData2 = new MediaMetaDataCollection(); foreach (string key in metaData1.Keys) { metaData2[key] = HttpUtility.HtmlEncode(metaData1[key]); } if (str1 != null) { str1 = metaDataFormatter.Format(metaData2, MediaMetaDataFormatterOutput.HtmlNoKeys); } } str2 = new MediaValidatorFormatter().Format(mediaItem.ValidateMedia(), MediaValidatorFormatterOutput.HtmlPopup); ItemLink[] referrers = Globals.LinkDatabase.GetReferrers(item); if (referrers.Length > 0) { str3 = referrers.Length.ToString() + " " + Translate.Text(referrers.Length == 1 ? "usage" : "usages"); } } Tag tag = new Tag("a"); tag.Add("id", "I" + (object)item.ID.ToShortID()); tag.Add("href", "#"); tag.Add("onclick", "javascript:scForm.getParentForm().invoke('item:load(id=" + (object)item.ID + ")');return false"); if (UploadedItems.Include(item)) { tag.Add("class", "highlight"); } tag.Start(output); ImageBuilder imageBuilder1 = new ImageBuilder(); imageBuilder1.Src = str4; imageBuilder1.Class = "scMediaIcon"; imageBuilder1.Width = num1; imageBuilder1.Height = num1; ImageBuilder imageBuilder2 = imageBuilder1; string str5 = string.Empty; if (num1 < 72) { str5 = string.Format("padding:{0}px {0}px {0}px {0}px", (object)((72 - num1) / 2)); } if (!string.IsNullOrEmpty(str5)) { str5 = " style=\"" + str5 + "\""; } output.Write("<div class=\"scMediaBorder\"" + str5 + ">"); output.Write(imageBuilder2.ToString()); output.Write("</div>"); output.Write("<div class=\"scMediaTitle\">" + item.DisplayName + "</div>"); if (!string.IsNullOrEmpty(str1)) { output.Write("<div class=\"scMediaDetails\">" + str1 + "</div>"); } if (!string.IsNullOrEmpty(str2)) { output.Write("<div class=\"scMediaValidation\">" + str2 + "</div>"); } if (!string.IsNullOrEmpty(str3)) { output.Write("<div class=\"scMediaUsages\">" + str3 + "</div>"); } tag.End(output); }
void RenderItem(HtmlTextWriter output, Item originalItem) { var item = originalItem; var fieldName = Parameters["image"]; if (!string.IsNullOrEmpty(fieldName)) { ImageField field = originalItem.Fields[fieldName]; Assert.IsNotNull(field, "The item {0} does not have an image field '{1}'. Check carousel field source.".FormatWith(originalItem.Paths.ContentPath, fieldName)); if (field.MediaItem != null) { item = field.MediaItem; } } string url; if (item.Paths.IsMediaItem) { MediaItem media = item; var options = new MediaUrlOptions(96, 96, true); url = "/sitecore/shell/" + MediaManager.GetMediaUrl(media, options); } else { url = Images.GetThemedImageSource(item.Appearance.Icon, ImageDimension.id48x48); } var li = new TagBuilder("li") { ID = originalItem.ID.ToString() }; if (originalItem.ID.ToString() == WebUtil.GetQueryString("v")) { li.Class = "selected"; } li.Start(output); var container = new TagBuilder("div") { Class = "image-container" }; if (!item.Paths.IsMediaItem) { container.Class += " small"; } container.Start(output); new TagBuilder("img").Add("src", url).ToString(output); container.End(output); new TagBuilder("span") { Class = "text", InnerHtml = GetText(originalItem) }.ToString(output); li.End(output); }
public static string GetImageUrlParameter(this Rendering rendering, string parameterName, MediaUrlOptions options = null) { if (rendering == null) { throw new ArgumentNullException(nameof(rendering)); } // Check if this rendering parameter exists // Also crude check to guess if this is actually XML. var parameters = rendering.Parameters[parameterName]; if (string.IsNullOrEmpty(parameters) || !parameters.StartsWith("<")) { return(string.Empty); } // Try and parse the parameters into XML var xml = XmlUtil.LoadXml(parameters); if (xml == null) { return(string.Empty); } // Check if xml contains mediaid attribute var imageId = XmlUtil.GetAttribute("mediaid", xml); if (string.IsNullOrEmpty(imageId)) { return(string.Empty); } // Check if mediaid exists in database var imageItem = Context.Database.GetItem(imageId); if (imageItem == null) { return(string.Empty); } // If no explicit options supplied, work out width and height from xml parameters if (options == null) { options = MediaUrlOptions.Empty; int width, height; if (int.TryParse(XmlUtil.GetAttribute("width", xml), out width)) { options.Width = width; } if (int.TryParse(XmlUtil.GetAttribute("height", xml), out height)) { options.Height = height; } } // Return hash protected URL. return(HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageItem, options))); }
public static string MediaUrl(this SitecoreHelper sitecoreHelper, ID fieldId, Item item, MediaUrlOptions options) { ImageField imageField = item?.Fields[fieldId]; if (imageField == null || imageField.MediaItem == null) { return(string.Empty); } var url = options != null?MediaManager.GetMediaUrl(imageField.MediaItem, options) : MediaManager.GetMediaUrl(imageField.MediaItem); return(HashingUtils.ProtectAssetUrl(url)); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="fieldName"></param> /// <param name="options"></param> /// <returns></returns> public static string GetUrl(Item item, string fieldName, MediaUrlOptions options) { return GetUrl(item, fieldName, null, options); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="fieldName"></param> /// <returns></returns> public static string GetUrl(Item item, string fieldName, UrlOptions urlOptions, MediaUrlOptions mediaUrlOptions) { string url = String.Empty; LinkField linkField = item.Fields[fieldName]; if (linkField != null) { if (linkField.IsMediaLink) { MediaItem media = new MediaItem(linkField.TargetItem); url = Sitecore.StringUtil.EnsurePrefix('/', null != mediaUrlOptions ? MediaManager.GetMediaUrl(media, mediaUrlOptions) : MediaManager.GetMediaUrl(media)); } else if (linkField.IsInternal) { Item targetItem = linkField.TargetItem; if (targetItem != null) { url = null != urlOptions ? Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem, urlOptions) : Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem); } else { url = linkField.Url; } } } return url; }
public static string GetMediaUrl(MediaItem media, MediaUrlOptions mediaUrlOptions) { return(MediaManager.Value.GetMediaUrl(media, mediaUrlOptions)); }
/// <summary> /// Gets a media URL. /// </summary> /// <param name="item">The media item.</param> /// <returns> /// The media URL. /// </returns> public override string GetMediaUrl(MediaItem item) { Assert.ArgumentNotNull(item, "item"); //If media item is not an image or the page context is not normal, then return if (!IsImage(item) || !Sitecore.Context.PageMode.IsNormal) return base.GetMediaUrl(item); MediaUrlOptions mediaUrlOptions = new MediaUrlOptions(); return GetMediaUrl(item, mediaUrlOptions); }
protected override MediaOptions GetOptions() { var queryString = this.InnerRequest.QueryString; if (queryString != null && !string.IsNullOrEmpty(queryString.Get("cx"))) { options = new MediaOptions(); ProcessCustomParameters(options); if (!options.CustomOptions.ContainsKey("cx") && !string.IsNullOrEmpty(queryString.Get("cx"))) { options.CustomOptions.Add("cx", queryString.Get("cx")); } if (!options.CustomOptions.ContainsKey("cy") && !string.IsNullOrEmpty(queryString.Get("cy"))) { options.CustomOptions.Add("cy", queryString.Get("cy")); } if (!options.CustomOptions.ContainsKey("cw") && !string.IsNullOrEmpty(queryString.Get("cw"))) { options.CustomOptions.Add("cw", queryString.Get("cw")); } if (!options.CustomOptions.ContainsKey("ch") && !string.IsNullOrEmpty(queryString.Get("ch"))) { options.CustomOptions.Add("ch", queryString.Get("ch")); } } else { MediaUrlOptions mediaQueryString = GetMediaQueryString(); options = new MediaOptions { AllowStretch = mediaQueryString.AllowStretch, BackgroundColor = mediaQueryString.BackgroundColor, IgnoreAspectRatio = mediaQueryString.IgnoreAspectRatio, Scale = mediaQueryString.Scale, Width = mediaQueryString.Width, Height = mediaQueryString.Height, MaxWidth = mediaQueryString.MaxWidth, MaxHeight = mediaQueryString.MaxHeight, Thumbnail = mediaQueryString.Thumbnail }; if (mediaQueryString.DisableMediaCache) { options.UseMediaCache = false; } string[] strArray = queryString.AllKeys; for (int i = 0; i < strArray.Length; i = (int)(i + 1)) { string str = strArray[i]; if ((str != null) && (queryString.Get(str) != null)) { options.CustomOptions[str] = queryString.Get(str); } } } if (!IsRawUrlSafe) { if (Settings.Media.RequestProtection.LoggingEnabled) { string urlReferrer = this.GetUrlReferrer(); Log.SingleError(string.Format("MediaRequestProtection: An invalid or missing hash value has been encountered. The expected hash value is {0}, Media URL: {1}, Referring URL: {2}", HashingUtils.GetAssetUrlHash(this.InnerRequest.Path), this.InnerRequest.Path, string.IsNullOrEmpty(urlReferrer) ? ((object)"(empty)") : ((object)urlReferrer)), this); } options = new MediaOptions(); } return(options); }
/// <summary> /// Gets the media URL. /// </summary> /// <param name="item">The item.</param> /// <param name="mediaUrlOptions">The media URL options.</param> /// <returns></returns> public override string GetMediaUrl(MediaItem item, MediaUrlOptions mediaUrlOptions) { Assert.ArgumentNotNull(item, "item"); Assert.ArgumentNotNull(mediaUrlOptions, "mediaUrlOptions"); string mediaUrl = string.Empty; //If media item is not an image or the page context is not normal, then return if (!IsImage(item) || !Context.PageMode.IsNormal || Context.Database == null) { mediaUrl = base.GetMediaUrl(item, mediaUrlOptions); } else { //If resolution cookie is not set if (!IsResolutionCookieSet()) { //If mobileFirst is set to FALSE or user agent is identifying as a desktop, return with largest break-point resolution if (!_mobileFirst || IsDesktopBrowser()) { mediaUrlOptions.MaxWidth = GetLargestBreakpoint(); mediaUrl = base.GetMediaUrl(item, mediaUrlOptions); } else { //Return with mobile-first breakpoint (Smallest) mediaUrlOptions.MaxWidth = GetMobileFirstBreakpoint(); mediaUrl = base.GetMediaUrl(item, mediaUrlOptions); } } else { // If Max-width is not set or Max-width is greater than the selected break-point, then set the Max-width to the break-point if (mediaUrlOptions.MaxWidth == 0 || mediaUrlOptions.MaxWidth > GetScreenResolution()) { mediaUrlOptions.MaxWidth = GetScreenResolution(); } // If Max-width is not set and the 'maxWidth' setting is not empty, then set the Max-width property to the maxWidth if (mediaUrlOptions.MaxWidth == 0 && !string.IsNullOrEmpty(_maxWidth)) { int maxWidth = 0; if (int.TryParse(_maxWidth, out maxWidth)) { // If pixel ratio is normal if (GetCookiePixelDensity() == 1) { mediaUrlOptions.MaxWidth = maxWidth; } else { mediaUrlOptions.MaxWidth = maxWidth * GetCookiePixelDensity(); } } } mediaUrl = base.GetMediaUrl(item, mediaUrlOptions); } } return(HashingUtils.ProtectAssetUrl(mediaUrl)); }
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { options.AllowStretch = true; return base.GetMediaUrl(item, options); }
/// <summary> /// Returns specified Item image source /// </summary> /// <param name="item">Sitecore Item</param> /// <param name="key">Key name</param> /// <param name="replaceSpaces">Replace spaces with %20?</param> /// <param name="width">Image width</param> /// <param name="height">Image height</param> /// <returns>Specified ImageField image url if exists</returns> public static String GetImageFieldUrl(Item item, String key, bool replaceSpaces = false, Int32 width = Int32.MinValue, Int32 height = Int32.MinValue) { String imageSrc = String.Empty; if (HasField(item, key)) { var mediaItem = ((ImageField)item.Fields[key]).MediaItem; if (mediaItem != null) { if (width != Int32.MinValue && height != Int32.MinValue) { var options = new MediaUrlOptions { Height = height, Width = width }; imageSrc = MediaManager.GetMediaUrl(mediaItem, options); } else { imageSrc = MediaManager.GetMediaUrl(mediaItem); } if (replaceSpaces) { imageSrc = imageSrc.Replace(" ", "%20"); } } } return imageSrc; }
public static string GetMediaUrlFull(this Item mediaItem) { var o = new MediaUrlOptions() { AlwaysIncludeServerUrl = true }; return MediaManager.GetMediaUrl(mediaItem, o).CleanAdminPath(); }
protected virtual string GetSource() { var options = new MediaUrlOptions(); Language result1; if (!string.IsNullOrEmpty(language) && Language.TryParse(language, out result1)) { options.Language = result1; } if (!string.IsNullOrEmpty(database)) { options.Database = Factory.GetDatabase(database); } Version result2; if (Version.TryParse(version, out result2)) { options.Version = result2; } options.Width = width; options.Height = height; if (maxHeightSet) { options.MaxHeight = maxHeight; } if (maxWidthSet) { options.MaxWidth = maxWidth; } if (thumbnailSet) { options.Thumbnail = thumbnail; } if (scaleSet) { options.Scale = scale; } if (asSet) { options.AllowStretch = allowStretch; } if (!string.IsNullOrEmpty(backgroundColor)) { options.BackgroundColor = MainUtil.StringToColor(backgroundColor); } options.IgnoreAspectRatio = ignoreAspectRatio; if (disableMediaCacheSet) { options.DisableMediaCache = disableMediaCache; } var urlString = imageField.MediaItem == null ? new UrlString(source) : new UrlString(MediaManager.GetMediaUrl(imageField.MediaItem, options)); var parameters = new UrlString(options.ToString()).Parameters; foreach (var key in parameters.AllKeys) { urlString.Append(key, parameters[key]); } return(urlString.GetUrl(xhtml && Settings.Rendering.ImagesAsXhtml)); }
// GET: Carousel public ActionResult Index() { //get the master database to use to get items from //var database = RenderingContext.Current.ContextItem.Database; var database = Sitecore.Context.Database; //create the default model var model = new SiteCarouselModel(); //get the current context var contextItem = RenderingContext.Current.ContextItem; //get the site settings id from the config, to use to get the carousel items var siteSettingsPageId = _standardHelpers.GetItemIdFromConfig("SiteSettingsPageID", contextItem); if (siteSettingsPageId != ID.Null) { var siteSettingsPage = database.GetItem(siteSettingsPageId); if (siteSettingsPage != null) { //get the site settings template id from the config var siteSettingsTemplateId = _standardHelpers.GetTemplateIdFromConfig("SiteSettingsTemplateID", contextItem); //check if the site settings page uses that template var isSiteSettingsTemplate = siteSettingsPage.TemplateID == siteSettingsTemplateId; if (isSiteSettingsTemplate) { //get the tree list of carousel images MultilistField carouselImagesList = siteSettingsPage.Fields["Carousel"]; if (carouselImagesList != null) { //get the carousel images from the tree list var carouselImages = carouselImagesList.GetItems(); //create the carousel models if we have any images if (carouselImages.Any()) { foreach (var image in carouselImages) { var carouselImageModel = new CarouselImageModel() { CarouselHeading = image.Fields["Title"].ToString(), CarouselIntro = image.Fields["Description"].ToString() }; //get the carousel image MediaItem carouselMedia = image; if (carouselMedia != null) { var options = new MediaUrlOptions { Height = 1920, Width = 660 }; carouselImageModel.CarouselImage = MediaManager.GetMediaUrl(carouselMedia, options); } //get the content link var contentLinkField = image.Fields["ContentLink"].ToString(); if (!string.IsNullOrWhiteSpace(contentLinkField)) { var contentLink = database.GetItem(contentLinkField); if (contentLink != null) { carouselImageModel.CarouselLink = LinkManager.GetItemUrl(contentLink); } } //add it to the model items model.CarouselItems.Add(carouselImageModel); } } } } } } return(View(model)); }
private static void RenderPreview(HtmlTextWriter output, Item item) { Assert.ArgumentNotNull(output, "output"); Assert.ArgumentNotNull(item, "item"); MediaItem item2 = item; MediaUrlOptions options2 = new MediaUrlOptions { UseDefaultIcon = true, Width = 0xc0, Height = 0xc0, Language = item.Language, AllowStretch = false, BackgroundColor = Color.White }; MediaUrlOptions options = options2; string mediaUrl = MediaManager.GetMediaUrl(item2, options); output.Write("<table width=\"100%\" height=\"100%\" border=\"0\"><tr><td align=\"center\">"); output.Write("<div class=\"scPreview\">"); output.Write("<img src=\"" + mediaUrl + "\" class=\"scPreviewImage\" border=\"0\" alt=\"\" />"); output.Write("</div>"); output.Write("<div class=\"scPreviewHeader\">"); output.Write(item.DisplayName); output.Write("</div>"); output.Write("</td></tr></table>"); }
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { return(this.IsLocalProviderSet() ? this.localProvider.Value.GetMediaUrl(item, options) : null); }
string RenderItem(Item originalItem, bool includeTop) { Item item = originalItem; string fieldName = Parameters["image"]; if (!string.IsNullOrEmpty(fieldName)) { ImageField field = originalItem.Fields[fieldName]; Assert.IsNotNull(field, "The item {0} does not have an image field '{1}'. Check visual list field source.".FormatWith(originalItem.Paths.ContentPath, fieldName)); if (field.MediaItem != null) { item = field.MediaItem; } } var output = new HtmlTextWriter(new StringWriter()); string url; if (item.Paths.IsMediaItem) { MediaItem media = item; // Look for image width (w) & height (h) parameters int iWidth = 96; int iHeight = 96; if (!String.IsNullOrEmpty(Parameters["w"])) iWidth = int.Parse(Parameters["w"]); if (!String.IsNullOrEmpty(Parameters["h"])) iHeight = int.Parse(Parameters["h"]); var options = new MediaUrlOptions(iWidth, iHeight, true); url = "/sitecore/shell/" + MediaManager.GetMediaUrl(media, options); } else { url = Images.GetThemedImageSource(item.Appearance.Icon, ImageDimension.id48x48); } TagBuilder li = null; if (includeTop) { li = new TagBuilder("li") { ID = originalItem.ID.ToString() }.Start(output); } var container = new TagBuilder("div") { Class = "image-container" }; if (!item.Paths.IsMediaItem) { container.Class += " small"; } container.Start(output); new TagBuilder("img").Add("src", url).Add("align", "middle").ToString(output); container.End(output); new TagBuilder("span") { Class = "text", InnerHtml = GetText(originalItem) }.ToString(output); output.Write("<div class=\"delete\"></div>"); if (includeTop) { li.End(output); } return output.InnerWriter.ToString(); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="fieldName"></param> /// <returns></returns> public static string GetUrl(Item item, string fieldName, UrlOptions urlOptions, MediaUrlOptions mediaUrlOptions) { string url = String.Empty; LinkField linkField = item.Fields[fieldName]; if (linkField != null) { if (linkField.IsMediaLink) { MediaItem media = new MediaItem(linkField.TargetItem); url = Sitecore.StringUtil.EnsurePrefix('/', null != mediaUrlOptions ? MediaManager.GetMediaUrl(media, mediaUrlOptions) : MediaManager.GetMediaUrl(media)); } else if (linkField.IsInternal) { Item targetItem = linkField.TargetItem; if (targetItem != null) { url = null != urlOptions?Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem, urlOptions) : Sitecore.Links.LinkManager.GetItemUrl(linkField.TargetItem); } else { url = linkField.Url; } } } return(url); }
public void ProcessRequest(HttpContext context) { try { ItemDetails itemDetails; //Parse the JSON using (var sr = new StreamReader(context.Request.InputStream)) { itemDetails = JsonConvert.DeserializeObject <ItemDetails>(sr.ReadToEnd()); } var editingLanguage = !string.IsNullOrEmpty(itemDetails.Language) ? LanguageManager.GetLanguage(itemDetails.Language) : LanguageManager.DefaultLanguage; var itemVersion = !string.IsNullOrEmpty(itemDetails.Version) ? Sitecore.Data.Version.Parse(itemDetails.Version) : Sitecore.Data.Version.Parse(1); //Load the item var currentItem = Context.ContentDatabase.GetItem(new ID(itemDetails.ItemId), editingLanguage, itemVersion); using (new EditContext(currentItem, false, false)) { currentItem["__Updated"] = DateUtil.IsoNow; currentItem.Fields["__Updated by"].SetValue(Context.User.Name, true); foreach (var clientFieldValue in itemDetails.Fields) { var field = currentItem.Fields[new ID(clientFieldValue.FieldId)]; if (!string.IsNullOrEmpty(clientFieldValue.Value)) { switch (field.Type) { case "Date": case "Datetime": field.Value = DateUtil.ToIsoDate(DateUtil.ParseDateTime(clientFieldValue.Value, System.DateTime.MinValue)); break; case "Droptree": //The value for the tree is: [Source ID]|[Path to the item] var values = clientFieldValue.Value.Split(new [] { "|" }, StringSplitOptions.RemoveEmptyEntries); var sourceItem = currentItem.Database.GetItem(new ID(values[0])); if (sourceItem != null) { if (values.Length == 1) { field.Reset(); } else { var selectedItemName = values[1].Split('/').LastOrDefault(); //Get Source Path then add the Path to the item var itemPath = sourceItem.Parent.Parent.Paths.Path + "/" + values[1]; //Remove the display name from the item path itemPath = itemPath.Replace(selectedItemName, ""); //Get The Parent Tree Item var dropTreeSelectedItemParent = sourceItem.Database.GetItem(itemPath); var childItem = (from i in dropTreeSelectedItemParent.Children where i.DisplayName == selectedItemName select i).FirstOrDefault(); if (childItem != null) { field.Value = childItem.ID.ToString(); } } } break; case "File": case "Image": var mediaPath = "/sitecore/Media Library" + clientFieldValue.Value; MediaItem mediaItem = currentItem.Database.GetItem(mediaPath); var xmlValue = new XmlValue("", field.Type.ToLower()); if (mediaItem != null) { var shellOptions = MediaUrlOptions.GetShellOptions(); var mediaUrl = MediaManager.GetMediaUrl(mediaItem, shellOptions); xmlValue.SetAttribute("mediaid", mediaItem.ID.ToString()); xmlValue.SetAttribute("mediapath", mediaItem.MediaPath); xmlValue.SetAttribute("src", mediaUrl); } else { xmlValue.SetAttribute("mediaid", string.Empty); xmlValue.SetAttribute("mediapath", string.Empty); xmlValue.SetAttribute("src", string.Empty); } field.Value = xmlValue.ToString(); break; default: field.Value = clientFieldValue.Value; break; } } else { field.Reset(); } } if (!string.IsNullOrEmpty(itemDetails.NameFormatString)) { var displayName = BuildName(itemDetails.NameFormatString, currentItem).Trim(); var name = ItemUtil.ProposeValidItemName(displayName, "Unnamed item"); string uniqueName = ItemUtil.GetUniqueName(currentItem.Parent, name); if (!string.IsNullOrEmpty(name)) { currentItem["__Display name"] = displayName; currentItem.Name = uniqueName; } } } context.Response.Write(JsonConvert.SerializeObject(new { displayName = string.IsNullOrEmpty(currentItem["__Display name"]) ? currentItem.Name : currentItem["__Display name"] })); } catch (Exception ex) { Sitecore.Diagnostics.Log.Fatal("Error saving sub-item", ex, this); context.Response.StatusCode = 500; context.Response.Write(string.Format("Exception {0}({1}):\n{2}", ex.Message, ex.GetType().Name, ex.StackTrace)); } }
public override string GetMediaUrl(MediaItem item, MediaUrlOptions options) { string mediaUrl = base.GetMediaUrl(item, options); return(GetMediaUrl(mediaUrl, item)); }
public static string MediaUrl(this Item item, ID mediaFieldId, MediaUrlOptions options = null) { var targetItem = item.TargetItem(mediaFieldId); return targetItem == null ? String.Empty : (MediaManager.GetMediaUrl(targetItem) ?? string.Empty); }
public static string MediaUrl(this Item item, ID mediaFieldId, MediaUrlOptions options = null) { var targetItem = item.TargetItem(mediaFieldId); return(targetItem == null ? string.Empty : (MediaManager.GetMediaUrl(targetItem) ?? string.Empty)); }