/// <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);
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
        /// <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;
            }
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
    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));
    }
Exemplo n.º 8
0
 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;
 }
Exemplo n.º 9
0
    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);
    }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 13
0
        /// <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;
        }
Exemplo n.º 15
0
        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);
                }
            }
        }
Exemplo n.º 16
0
        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;
            }
        }
Exemplo n.º 17
0
        /// <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;
            }
        }
Exemplo n.º 18
0
        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()) + ")");
                        }
                    }
                }
            }
        }
Exemplo n.º 21
0
 public static string MediaUrl(this SitecoreHelper sitecoreHelper, ID fieldId, MediaUrlOptions options)
 {
     return(MediaUrl(sitecoreHelper, fieldId, sitecoreHelper.CurrentItem, options));
 }
Exemplo n.º 22
0
        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()));
 }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 26
0
 /// <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));
 }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 31
0
        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)));
        }
Exemplo n.º 32
0
        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));
        }
Exemplo n.º 33
0
 /// <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);
 }
Exemplo n.º 34
0
        /// <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;
        }
Exemplo n.º 35
0
 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);
        }
Exemplo n.º 38
0
        /// <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));
        }
Exemplo n.º 39
0
 public override string GetMediaUrl(MediaItem item, MediaUrlOptions options)
 {
   options.AllowStretch = true;
   return base.GetMediaUrl(item, options);
 }
Exemplo n.º 40
0
        /// <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();
 }
Exemplo n.º 42
0
        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>");
 }
Exemplo n.º 45
0
 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();
        }
Exemplo n.º 47
0
        /// <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);
        }
Exemplo n.º 48
0
        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));
            }
        }
Exemplo n.º 49
0
        public override string GetMediaUrl(MediaItem item, MediaUrlOptions options)
        {
            string mediaUrl = base.GetMediaUrl(item, options);

            return(GetMediaUrl(mediaUrl, item));
        }
Exemplo n.º 50
0
 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);
 }
Exemplo n.º 51
0
        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));
        }