Exemplo n.º 1
0
        public virtual IHtmlString RenderBeginField(object parameters, bool editing = true)
        {
            var renderFieldArgs = new RenderFieldArgs
            {
                Item           = Field.Item,
                FieldName      = Field.Name,
                DisableWebEdit = !editing
            };

            if (parameters != null)
            {
                TypeHelper.CopyProperties(parameters, renderFieldArgs);
                TypeHelper.CopyProperties(parameters, renderFieldArgs.Parameters);
            }

            if (renderFieldArgs.Item == null)
            {
                return(new HtmlString(string.Empty));
            }

            CorePipeline.Run("renderField", renderFieldArgs);
            var result = renderFieldArgs.Result;
            var str    = result.FirstPart ?? string.Empty;

            EndFieldStack.Push(result.LastPart ?? string.Empty);

            return(new HtmlString(str));
        }
Exemplo n.º 2
0
        public new void Process(RenderFieldArgs args)
        {
            if (args.FieldTypeKey != "image")
            {
                return;
            }

            var useSrcSet = args.Parameters.ContainsKey("usesrcset") && args.Parameters["usesrcset"] == "True";

            args.Parameters.Remove("usesrcset");
            var suppressSrcParameters = args.Parameters.ContainsKey("suppressSrcParameters")
                ? (args.Parameters["suppressSrcParameters"] ?? "").Split(",|".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                : new string[0];

            args.Parameters.Remove("suppressSrcParameters");

            base.Process(args);

            if (string.IsNullOrWhiteSpace(args.Result.FirstPart))
            {
                return;
            }

            args.Result.FirstPart = RemoveSuppressedSrcParameters(suppressSrcParameters, args.Result.FirstPart);

            if (!useSrcSet)
            {
                return;
            }

            args.Result.FirstPart = args.Result.FirstPart.Replace(" src=", " srcset=");
            args.Result.FirstPart = Regex.Replace(args.Result.FirstPart, @"(\swidth=""[\w\d]+"")|(\sheight=""[\w\d]+"")", "");
        }
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string fieldTypeKey = args.FieldTypeKey;
            if (fieldTypeKey != "youtubevideo") return;

            args.DisableWebEditContentEditing = true;
            YouTubeVideoField video = args.GetField();

            if (Context.PageMode.IsPageEditorEditing)
            {
                YouTubeVideoField.ThumbnailSize size;
                Enum.TryParse(args.Parameters["Size"], out size); // default is Small                

                args.Result.FirstPart = YouTubeVideoField.FormatValueForPageEditorDisplay(video.Value, size);
            }
            else
            {
                byte autoHide = GetByteOrDefault(args.Parameters["autohide"], 2);
                bool autoPlay = GetBoolOrDefault(args.Parameters["autoplay"]);
                byte controls = GetByteOrDefault(args.Parameters["controls"], 1);
                bool loop = GetBoolOrDefault(args.Parameters["loop"]);
                bool rel = GetBoolOrDefault(args.Parameters["rel"]);
                bool showinfo = GetBoolOrDefault(args.Parameters["showinfo"]);
                int start = GetIntOrDefault(args.Parameters["start"]);

                args.Result.FirstPart = video.FormatValueForNormalDisplay(video.Value, autoHide, autoPlay, controls, loop, rel, showinfo, start);
            }

        }
Exemplo n.º 4
0
        protected virtual string RunPipeline(Field field, GetOptionsSc options)
        {
            RenderFieldArgs renderFieldArgs = new RenderFieldArgs
            {
                Item           = field.Item,
                FieldName      = field.ID.ToString(),
                DisableWebEdit = true,
            };

            try
            {
                if (options.Site != null)
                {
                    using (new SiteContextSwitcher(options.Site))
                    {
                        CorePipeline.Run("renderField", renderFieldArgs);
                    }
                }
                else
                {
                    CorePipeline.Run("renderField", renderFieldArgs);
                }
            }
            catch (Exception ex)
            {
                throw new MapperException("Failed to render field {0} on item {1}".Formatted(field.ID, field.Item.ID), ex);
            }

            return(renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart);
        }
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string fieldTypeKey = args.FieldTypeKey;

            if (fieldTypeKey != "youtubevideo")
            {
                return;
            }

            args.DisableWebEditContentEditing = true;

            if (!Context.PageMode.IsPageEditorEditing)
            {
                return;
            }

            YouTubeVideoField video = args.GetField();

            YouTubeVideoField.ThumbnailSize size;
            Enum.TryParse(args.Parameters["Size"], out size); // default is Small

            args.Result.FirstPart = YouTubeVideoField.FormatValueForPageEditorDisplay(video.Value, size);
        }
Exemplo n.º 6
0
        public void Process(RenderFieldArgs args)
        {
            var item = GetItem(args);

            if (item == null)
            {
                return;
            }

            var oldText     = item[args.FieldName];
            var updatedText = args.Item[args.FieldName];

            if (String.CompareOrdinal(updatedText, oldText) == 0)
            {
                if (!IndicateUnchangedFields)
                {
                    return;
                }
            }

            if (RenderBeforeComparison)
            {
                oldText     = RenderWithoutDifferences(item, args);
                updatedText = RenderWithoutDifferences(args.Item, args);
            }

            if (RenderTextualDifferences && args.FieldTypeKey != "image")
            {
                var evaluator = new FieldDifferenceEvaluator();
                args.Result.FirstPart = evaluator.GetDifferences(oldText, updatedText);
            }
        }
Exemplo n.º 7
0
        public void Process(RenderFieldArgs args)
        {
            if (!CanProcess(args))
            {
                return;
            }

            string isTriggerCampaign = string.Empty;

            if (!string.IsNullOrEmpty(GetXmlAttributeValue(args.FieldValue, "triggercampaign")))
            {
                if (GetXmlAttributeValue(args.FieldValue, "triggercampaign") == "1")
                {
                    isTriggerCampaign = "true";
                }
                else
                {
                    isTriggerCampaign = "false";
                }
            }
            else
            {
                isTriggerCampaign = "false";
            }

            args.Result.FirstPart = AddCampaignAttributeValue(args.Result.FirstPart, CampaignAttributeName, GetXmlAttributeValue(args.FieldValue, CampaignXmlAttributeName));
            args.Result.FirstPart = AddCampaignAttributeValue(args.Result.FirstPart, "triggercampaign", isTriggerCampaign);
            args.Result.FirstPart = AddCampaignAttributeValue(args.Result.FirstPart, "onclick", "activateSelectedCampaign('" + GetXmlAttributeValue(args.FieldValue, CampaignXmlAttributeName) + "', '" + isTriggerCampaign + "');");
        }
Exemplo n.º 8
0
        /// <summary>Gets the field value.</summary>
        /// <param name="args">The arguments.</param>
        /// <contract>
        ///   <requires name="args" condition="none" />
        /// </contract>
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull((object)args, "args");
            if (!this.CanWebEdit(args) && !args.WebEditParameters.ContainsKey("sc-highlight-contentchange") || (args.Item == null || !this.CanEditItem(args.Item)))
            {
                return;
            }
            Field field = args.Item.Fields[args.FieldName];

            if (field == null || !this.CanEditField(field))
            {
                return;
            }
            Item           obj               = field.Item;
            string         str               = obj[FieldIDs.Revision].Replace("-", string.Empty);
            string         controlID         = "fld_" + (object)obj.ID.ToShortID() + "_" + (object)field.ID.ToShortID() + "_" + (object)obj.Language + "_" + (object)obj.Version + "_" + str + "_" + (object)MainUtil.GetSequencer();
            HtmlTextWriter output            = new HtmlTextWriter((TextWriter) new StringWriter());
            string         rawValueContainer = this.GetRawValueContainer(field, controlID);

            output.Write(rawValueContainer);
            if (args.DisableWebEditContentEditing && args.DisableWebEditFieldWrapping)
            {
                this.RenderWrapperlessField(output, args, field, controlID);
            }
            else
            {
                this.RenderWrappedField(output, args, field, controlID);
            }
        }
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            if (!string.IsNullOrEmpty(args.FieldValue))
            {
                args.Result.FirstPart = args.FieldValue;
            }
            else
            {
                args.Result.FirstPart = args.Item[args.FieldName];
            }

            if (args.FieldTypeKey == "rich text")
            {
                WordFieldValue wordFieldValue = WordFieldValue.Parse(args.Result.FirstPart);
                if (wordFieldValue.BlobId != ID.Null)
                {
                    args.Result.FirstPart = wordFieldValue.GetHtmlWithStyles();
                }
            }

            if (args.FieldTypeKey == "markdownfield")
            {
                var markdown = new Markdown();

                args.Result.FirstPart = markdown.Transform(args.FieldValue);
            }
        }
        public void Process(RenderFieldArgs args)
        {
            string fieldTypeKey = args.FieldTypeKey;

            // Execute this code only for our custom field type
            if (fieldTypeKey != "datetime with timezone")
            {
                return;
            }

            // Use existing DateRenderer to render our custom date field
            DateRenderer renderer = new DateRenderer();

            renderer.Item      = args.Item;
            renderer.FieldName = args.FieldName;

            // Use the DateTimeWithTimeZoneField class to get strongly typed value of date instead of raw value
            renderer.FieldValue = new DateTimeWithTimeZoneField(args.Item.Fields[args.FieldName]).ToString();
            renderer.Parameters = args.Parameters;

            // To allow passing format parameter to our field, same as DateTime field.
            if (!string.IsNullOrEmpty(args.Parameters["format"]))
            {
                args.WebEditParameters["format"] = args.Parameters["format"];
            }

            // Allow editing from Experience Editor as well
            args.DisableWebEditContentEditing = false;
            args.WebEditClick = "return Sitecore.WebEdit.editControl($JavascriptParameters,'webedit:editdate');";
            RenderFieldResult result = renderer.Render();

            args.Result.FirstPart = result.FirstPart;
            args.Result.LastPart  = result.LastPart;
        }
Exemplo n.º 11
0
        public IFieldRenderingResult Render(object parameters = null)
        {
            var renderFieldArgs = new RenderFieldArgs()
            {
                Item      = item,
                FieldName = fieldName
            };

            if (parameters != null)
            {
                renderFieldArgs.ApplyParameters(parameters);
            }

            CorePipeline.Run(renderFieldPipeline, renderFieldArgs);
            var result = renderFieldArgs.Result;

            var beginResult = result?.FirstPart;
            var endResult   = result?.LastPart;

            var renderingResult = new FieldRenderingResult(beginResult, endResult);

            RenderingResult = renderingResult.Some <IFieldRenderingResult>();

            return(renderingResult);
        }
Exemplo n.º 12
0
        public static HtmlString BeginField(ID fieldId, Item item, object parameters)
        {
            Assert.ArgumentNotNull(fieldId, "fieldName");
            var renderFieldArgs = new RenderFieldArgs
            {
                Item = item,
                FieldName = item.Fields[fieldId].Name
            };
            if (parameters != null)
            {
                CopyProperties(parameters, renderFieldArgs);
                CopyProperties(parameters, renderFieldArgs.Parameters);
            }
            renderFieldArgs.Item = renderFieldArgs.Item ?? CurrentItem;

            if (renderFieldArgs.Item == null)
            {
                EndFieldStack.Push(string.Empty);
                return new HtmlString(string.Empty);
            }
            CorePipeline.Run("renderField", renderFieldArgs);
            var result1 = renderFieldArgs.Result;
            var str = result1.ValueOrDefault(result => result.FirstPart).OrEmpty();
            EndFieldStack.Push(result1.ValueOrDefault(result => result.LastPart).OrEmpty());
            return new HtmlString(str);
        }
Exemplo n.º 13
0
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string fieldTypeKey = args.FieldTypeKey;

            if (fieldTypeKey != "youtubevideo")
            {
                return;
            }

            args.DisableWebEditContentEditing = true;
            YouTubeVideoField video = args.GetField();

            if (Context.PageMode.IsPageEditorEditing)
            {
                YouTubeVideoField.ThumbnailSize size;
                Enum.TryParse(args.Parameters["Size"], out size); // default is Small

                args.Result.FirstPart = YouTubeVideoField.FormatValueForPageEditorDisplay(video.Value, size);
            }
            else
            {
                byte autoHide = GetByteOrDefault(args.Parameters["autohide"], 2);
                bool autoPlay = GetBoolOrDefault(args.Parameters["autoplay"]);
                byte controls = GetByteOrDefault(args.Parameters["controls"], 1);
                bool loop     = GetBoolOrDefault(args.Parameters["loop"]);
                bool rel      = GetBoolOrDefault(args.Parameters["rel"]);
                bool showinfo = GetBoolOrDefault(args.Parameters["showinfo"]);
                int  start    = GetIntOrDefault(args.Parameters["start"]);

                args.Result.FirstPart = video.FormatValueForNormalDisplay(video.Value, autoHide, autoPlay, controls, loop, rel, showinfo, start);
            }
        }
        public static HtmlString BeginField(ID fieldId, Item item, object parameters)
        {
            Assert.ArgumentNotNull(fieldId, nameof(fieldId));
            var renderFieldArgs = new RenderFieldArgs
            {
                Item      = item,
                FieldName = item.Fields[fieldId].Name
            };

            if (parameters != null)
            {
                CopyProperties(parameters, renderFieldArgs);
                CopyProperties(parameters, renderFieldArgs.Parameters);
            }
            renderFieldArgs.Item = renderFieldArgs.Item ?? CurrentItem;

            if (renderFieldArgs.Item == null)
            {
                EndFieldStack.Push(string.Empty);
                return(new HtmlString(string.Empty));
            }
            CorePipeline.Run("renderField", renderFieldArgs);
            var result1 = renderFieldArgs.Result;
            var str     = result1.ValueOrDefault(result => result.FirstPart).OrEmpty();

            EndFieldStack.Push(result1.ValueOrDefault(result => result.LastPart).OrEmpty());
            return(new HtmlString(str));
        }
        /// <summary>
        /// Replaces the field value with the value with the token values injected
        /// </summary>
        /// <param name="args"></param>
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull((object)args, "args");
            string fieldValue = args.FieldValue;

            if (string.IsNullOrWhiteSpace(args.Result.FirstPart))
            {
                args.Result.FirstPart = string.IsNullOrEmpty(fieldValue) ? args.Item[args.FieldName] : fieldValue;
            }
            if (args.FieldTypeKey != "rich text")
            {
                return;
            }
            try
            {
                if (Context.PageMode.IsNormal || Context.PageMode.IsPreview)
                {
                    args.Result.FirstPart = TokenKeeper.CurrentKeeper.ReplaceRTETokens(args, args.Result.FirstPart);
                }
            }
            catch (MethodAccessException)
            {
                args.Result.FirstPart = TokenKeeper.CurrentKeeper.ReplaceRTETokens(args, args.Result.FirstPart);
            }
            WordFieldValue wordFieldValue = WordFieldValue.Parse(args.Result.FirstPart);

            if (wordFieldValue.BlobId == ID.Null)
            {
                return;
            }
            args.Result.FirstPart = wordFieldValue.GetHtmlWithStyles();
        }
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            if (!string.IsNullOrEmpty(args.FieldValue))
            {
                args.Result.FirstPart = args.FieldValue;
            }
            else
            {
                args.Result.FirstPart = args.Item[args.FieldName];
            }

            if (args.FieldTypeKey == "rich text")
            {
                WordFieldValue wordFieldValue = WordFieldValue.Parse(args.Result.FirstPart);
                if (wordFieldValue.BlobId != ID.Null)
                {
                    args.Result.FirstPart = wordFieldValue.GetHtmlWithStyles();
                }
            }

            if (args.FieldTypeKey == "markdownfield")
            {
                var markdown = new Markdown();

                args.Result.FirstPart = markdown.Transform(args.FieldValue);
            }
        }
Exemplo n.º 17
0
 public void Process(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (ShouldFieldBeProcessed(args))
     {
         ReplaceFormTags(args);
     }
 }
Exemplo n.º 18
0
 public void Process(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull(args, "args");
     if (args.Result.FirstPart == string.Empty && Sitecore.Context.Site.DisplayMode != Sitecore.Sites.DisplayMode.Edit)
     {
         args.Result.FirstPart = FallbackValue(args.Item, args.FieldName.ToLower(), "en");
     }
 }
 public void Process(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)args, "args");
     if (!args.Parameters.ContainsKey("disable-web-editing") && WebEditStateSwitcher.CurrentValue == WebEditState.Disabled)
     {
         args.Parameters.Add("disable-web-editing", "true");
     }
 }
Exemplo n.º 20
0
 /// <summary>
 /// Checks if the field should not be handled by the processor.
 /// </summary>
 /// <param name="args">The arguments.</param>
 /// <returns>true if the field should not be handled by the processor; otherwise false</returns>
 protected virtual bool SkipProcessor(RenderFieldArgs args)
 {
     if (args == null)
     {
         return(true);
     }
     return(args.FieldTypeKey != "ultra link");
 }
Exemplo n.º 21
0
        private static Dictionary <string, string> GetFieldHtmls(Item item, List <string> FieldNames)
        {
            Assert.ArgumentNotNull(item, "item");
            Assert.ArgumentNotNullOrEmpty(RenderFieldPipelineName, "renderField");
            Dictionary <string, string> argsResult = new Dictionary <string, string>();

            foreach (var fieldName in FieldNames)
            {
                if (item == null)
                {
                    return(argsResult);
                }
                RenderFieldArgs args = new RenderFieldArgs {
                    Item = item, FieldName = fieldName
                };
                CorePipeline.Run(RenderFieldPipelineName, args);

                if (!args.Result.IsEmpty)
                {
                    string contents       = args.Result.ToString();
                    string multilistItems = "";

                    // Image Field Type - Get only image path
                    if (args.FieldTypeKey == "image")
                    {
                        Sitecore.Data.Fields.ImageField          iFld = args.Item.Fields[fieldName];
                        Sitecore.Resources.Media.MediaUrlOptions opt  = new Sitecore.Resources.Media.MediaUrlOptions();
                        //opt.AlwaysIncludeServerUrl = true;
                        opt.AbsolutePath = true;
                        string mediaUrl = Sitecore.Resources.Media.MediaManager.GetMediaUrl(iFld.MediaItem, opt);
                        contents = mediaUrl;
                    }

                    // Multilist Field Type - Convert Item ID to Item Name
                    if (args.FieldTypeKey == "multilist")
                    {
                        List <string> itemId = args.Result.ToString().Split('|').ToList();
                        int           count  = 1;
                        foreach (string i in itemId)
                        {
                            Item theItem = item.Database.GetItem(Sitecore.Data.ID.Parse(i));
                            if (theItem != null)
                            {
                                multilistItems += theItem.Name;
                                if (count != itemId.Count)
                                {
                                    multilistItems += "|";
                                }
                            }
                            count++;
                        }
                        contents = multilistItems;
                    }
                    argsResult.Add(fieldName, contents);
                }
            }
            return(argsResult);
        }
        public void Process(RenderFieldArgs args)
        {
            if (args.FieldTypeKey != "rich text" ||
                (String.IsNullOrEmpty(args.Result.FirstPart) && String.IsNullOrEmpty(args.Result.LastPart)))
                return;

            args.Result.FirstPart = ReplaceImage(args.Result.FirstPart);
            args.Result.LastPart = ReplaceImage(args.Result.LastPart);
        }
Exemplo n.º 23
0
        public void Process(RenderFieldArgs args)
        {
            try
            {
                if (args == null)
                {
                    return;
                }

                // Trigger the code to transform the img tags only for rich text and image fields
                if (!(args.FieldTypeKey != "rich text" || args.FieldTypeKey != "image") || string.IsNullOrEmpty(args.FieldValue) ||
                    !Context.PageMode.IsNormal)
                {
                    return;
                }

                if (!string.IsNullOrWhiteSpace(args.Result?.FirstPart))
                {
                    HtmlDocument doc = new HtmlDocument {
                        OptionWriteEmptyNodes = true
                    };
                    doc.LoadHtml(args.Result.FirstPart);

                    if (doc.DocumentNode != null)
                    {
                        // Search for all img tags
                        HtmlNodeCollection imgTag = doc.DocumentNode.SelectNodes("//img");
                        if (imgTag == null || imgTag.Count == 0)
                        {
                            return;
                        }

                        foreach (HtmlNode node in imgTag)
                        {
                            if (node.Attributes["src"] != null && node.ParentNode != null)
                            {
                                string imgUrl = node.Attributes["src"].Value;
                                node.Attributes.Add("responsive-src", imgUrl);
                                node.Attributes["src"].Value = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
                                string currentClass = node.Attributes["class"] != null ? node.Attributes["class"].Value : "";
                                node.Attributes.Remove("class");
                                node.Attributes.Add("class", (string.IsNullOrWhiteSpace(currentClass) ? "" : currentClass + " ")
                                                    + Settings.GetSetting("ImageLazyLoadModule.Selector", "b-lazy"));
                                node.Attributes.Remove("width");
                                node.Attributes.Remove("height");
                            }
                        }

                        args.Result.FirstPart = doc.DocumentNode.OuterHtml;
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error("Error in ImageLazyLoadModule.ImageLazyLoad:" + ex.Message, ex);
            }
        }
Exemplo n.º 24
0
        private bool CanWebEdit(RenderFieldArgs args)
        {
            if (args.DisableWebEdit)
            {
                return(false);
            }
            var site = Context.Site;

            return(site != null && site.DisplayMode == DisplayMode.Edit && (WebUtil.GetQueryString("sc_duration") != "temporary" && Context.PageMode.IsExperienceEditorEditing));
        }
Exemplo n.º 25
0
        static public string GetRichTextRenderFieldPipeline(this Item item, ID fieldId)
        {
            RenderFieldArgs args = new RenderFieldArgs();

            args.Item = item;
            args.DisableWebEditFieldWrapping = true;
            args.FieldName = GetFieldName(item, fieldId);
            CorePipeline.Run("renderField", args);
            return(args.Result.ToString());
        }
Exemplo n.º 26
0
 protected virtual bool CanProcess(RenderFieldArgs args)
 {
     return(!string.IsNullOrWhiteSpace(this.AttributeName) &&
            !string.IsNullOrWhiteSpace(this.BeginningHtml) &&
            !string.IsNullOrWhiteSpace(this.XmlAttributeName) &&
            args != null &&
            args.Result != null &&
            this.HasXmlAttributeValue(args.FieldValue, this.AttributeName) &&
            !string.IsNullOrWhiteSpace(args.Result.FirstPart) &&
            args.Result.FirstPart.ToLower().StartsWith(this.BeginningHtml.ToLower()));
 }
        /// <summary>
        /// Processes the specified arguments,get the field value.
        /// </summary>
        /// <param name="args">The arguments.</param>
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull((object)args, "args");
            string fieldTypeKey = args.FieldTypeKey;
            if (fieldTypeKey != "video")
            {
                return;
            }

            args.Result.FirstPart = BuildVideoTag(args.Result.FirstPart);
        }
Exemplo n.º 28
0
 /// <summary>
 /// Sets the webedit parameters.
 /// </summary>
 /// <param name="args">The arguments.</param>
 /// <param name="parameterNames">The parameter names.</param>
 /// <contract>
 ///   <requires name="args" condition="not null" />
 ///   <requires name="parameterNames" condition="not null" />
 /// </contract>
 private static void SetWebEditParameters(RenderFieldArgs args, params string[] parameterNames)
 {
     Assert.ArgumentNotNull(args, "args");
     Assert.ArgumentNotNull(parameterNames, "parameterNames");
     foreach (string key in parameterNames)
     {
         if (!string.IsNullOrEmpty(args.Parameters[key]))
         {
             args.WebEditParameters[key] = args.Parameters[key];
         }
     }
 }
Exemplo n.º 29
0
    public virtual void Process(RenderFieldArgs args)
    {
        if (!ShouldRun())
        {
            return;
        }

        if (!Sitecore.Context.PageMode.IsPageEditorEditing)
        {
            args.Result.FirstPart = ExpandVelocityTokens(args.Result.FirstPart);
            args.Result.LastPart  = ExpandVelocityTokens(args.Result.LastPart);
        }
    }
Exemplo n.º 30
0
 public void Process(RenderFieldArgs args)
 {
     /*
      * if (Sitecore.Context.PageMode.IsPageEditorEditing)
      *  return;
      */
     if (args.FieldTypeKey.StartsWith("__"))
     {
         return;
     }
     args.Result.FirstPart = HashImageReferences(args.Result.FirstPart);
     args.Result.LastPart  = HashImageReferences(args.Result.LastPart);
 }
        protected virtual string RunPipeline(Field field)
        {
            RenderFieldArgs renderFieldArgs = new RenderFieldArgs
            {
                Item           = field.Item,
                FieldName      = field.Name,
                DisableWebEdit = true
            };

            CorePipeline.Run("renderField", renderFieldArgs);

            return(renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart);
        }
        public virtual string ReplaceRTETokens(RenderFieldArgs args, string text)
        {
            StringBuilder sb = new StringBuilder(text);

            var current = args.GetField().ID;

            if (!TrackTokens(args.Item, current, args.Item.Language, args.Item.Version.Number, text))
            {
                return(text);
            }
            foreach (
                var location in
                TokenLocations[args.Item.ID.ToString() + current + args.Item.Language.Name + args.Item.Version.Number].Item2)
            {
                if (location.Item1 + location.Item2 > text.Length && !args.WebEditParameters.ContainsKey("reseted"))
                {
                    ResetTokenLocations(args.Item.ID, current, args.Item.Language, args.Item.Version.Number);
                    args.WebEditParameters["reseted"] = "1";
                    return(ReplaceRTETokens(args, text));
                }
                try
                {
                    string token = sb.ToString(location.Item1, location.Item2);
                    if (Regex.IsMatch(token, TokenRegex))
                    {
                        try
                        {
                            var value = ParseTokenValueFromTokenIdentifier(token, args.Item);
                            sb.Replace(token, value, location.Item1, location.Item2);
                        }
                        catch
                        {
                            // error rendering token - still replace the raw value, but do it with an empty string
                            sb.Replace(token, string.Empty, location.Item1, location.Item2);
                            throw;
                        }
                    }
                    else if (!args.WebEditParameters.ContainsKey("reseted"))
                    {
                        ResetTokenLocations(args.Item.ID, current, args.Item.Language, args.Item.Version.Number);
                        args.WebEditParameters["reseted"] = "1";
                        return(ReplaceRTETokens(args, text));
                    }
                }
                catch (Exception e)
                {
                    Log.Error("unable to expand tokens for item " + args.Item.ID, e, this);
                }
            }
            return(sb.ToString());
        }
        public void Process(RenderFieldArgs args)
        {
            if (args.FieldTypeKey == "classification")
            {
                string            temp   = RenderToHtml(args);
                RenderFieldResult result = new RenderFieldResult(temp);

                args.Result.FirstPart = result.FirstPart;
                args.Result.LastPart  = result.LastPart;

                args.DisableWebEditContentEditing   = false;
                args.DisableWebEditContentSelecting = false;
            }
        }
Exemplo n.º 34
0
        public static string EditField(string fieldName, Item item)
        {
            using (new ContextItemSwitcher(item))
            {
                RenderFieldArgs renderFieldArgs = new RenderFieldArgs();
                renderFieldArgs.Item           = item;
                renderFieldArgs.FieldName      = fieldName;
                renderFieldArgs.DisableWebEdit = false;

                CorePipeline.Run("renderField", (PipelineArgs)renderFieldArgs);

                return(renderFieldArgs.Result.ToString());
            }
        }
Exemplo n.º 35
0
        public static void ApplyParameters(this RenderFieldArgs args, object parameters)
        {
            if (args == null)
            {
                throw new ArgumentNullException(nameof(args));
            }
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            CopyProperties(parameters, args);
            CopyProperties(parameters, args.Parameters);
        }
Exemplo n.º 36
0
 /// <summary>
 /// Processor main method.
 /// </summary>
 /// <param name="args">
 /// The arguments.
 /// </param>
 public void Process(RenderFieldArgs args)
 {
   if (args.FieldTypeKey == "classification")
   {
     using (new LanguageSwitcher(WebUtil.GetCookieValue("shell", "lang", Sitecore.Context.Language.Name)))
     {
       Database coreDb = Factory.GetDatabase("core");
       Item fieldTexts = coreDb.GetItem("/sitecore/content/Applications/WebEdit/WebEdit Texts/Classification Texts");
       if (fieldTexts != null)
       {
         args.RenderParameters["default-text"] = fieldTexts["Default Text"];
       }
     }
   }
 }
		/// <summary>
		/// Replaces the field value with the value with the token values injected
		/// </summary>
		/// <param name="args"></param>
		public void Process(RenderFieldArgs args)
		{
			Assert.ArgumentNotNull((object)args, "args");
			string fieldValue = args.FieldValue;
			if (string.IsNullOrWhiteSpace(args.Result.FirstPart))
				args.Result.FirstPart = string.IsNullOrEmpty(fieldValue) ? args.Item[args.FieldName] : fieldValue;
			if (args.FieldTypeKey != "rich text")
				return;
			if (!Context.PageMode.IsPageEditorEditing)
				args.Result.FirstPart = TokenKeeper.CurrentKeeper.ReplaceRTETokens(args, args.Result.FirstPart);
			WordFieldValue wordFieldValue = WordFieldValue.Parse(args.Result.FirstPart);
			if (wordFieldValue.BlobId == ID.Null)
				return;
			args.Result.FirstPart = wordFieldValue.GetHtmlWithStyles();
		}
      public void Process(RenderFieldArgs args)
      {
        if (args.FieldTypeKey == "classification")
        {

          string temp = RenderToHtml(args);
          RenderFieldResult result = new RenderFieldResult(temp);

          args.Result.FirstPart = result.FirstPart;
          args.Result.LastPart = result.LastPart;

          args.DisableWebEditContentEditing = false;
          args.DisableWebEditContentSelecting = false;

        }

      }
        public void Process(RenderFieldArgs args)
        {
            Assert.ArgumentNotNull(args, "args");

            string fieldTypeKey = args.FieldTypeKey;
            if (fieldTypeKey != "youtubevideo") return;

            args.DisableWebEditContentEditing = true;

            if (!Context.PageMode.IsPageEditorEditing) return;

            YouTubeVideoField video = args.GetField();

            YouTubeVideoField.ThumbnailSize size;
            Enum.TryParse(args.Parameters["Size"], out size); // default is Small

            args.Result.FirstPart = YouTubeVideoField.FormatValueForPageEditorDisplay(video.Value, size);
        }
        /// <summary>
        /// Gets the field value.
        /// 
        /// </summary>
        /// <param name="args">The arguments.</param><contract><requires name="args" condition="none"/></contract>
        public new void Process(RenderFieldArgs args)
        {
            if (args.FieldTypeKey != "image with cropping")
                return;
            ImageRenderer renderer = CreateRenderer();
            renderer.Item = args.Item;
            renderer.FieldName = args.FieldName;

            XmlValue xmlValue = new XmlValue(args.FieldValue, "image");
            string width = xmlValue.GetAttribute("width");
            string height = xmlValue.GetAttribute("height");
            if (string.IsNullOrWhiteSpace(width) || string.IsNullOrWhiteSpace(height))
            {
                string cropRegion = xmlValue.GetAttribute("cropregion");
                try
                {
                    var coordinates = CustomMediaManager.ConvertToIntArray(cropRegion);
                    if ((coordinates[2] - coordinates[0] + coordinates[3] + coordinates[1]) > 0)
                    {
                        xmlValue.SetAttribute("width", (coordinates[2] - coordinates[0]).ToString());
                        xmlValue.SetAttribute("height", (coordinates[3] - coordinates[1]).ToString());
                        renderer.FieldValue = xmlValue.ToString();
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex.Message, ex, this);
                }
            }
            if (renderer.FieldValue == null)
            {
                renderer.FieldValue = args.FieldValue;
            }
            
            renderer.Parameters = args.Parameters;

            args.WebEditParameters.AddRange(args.Parameters);
            RenderFieldResult renderFieldResult = renderer.Render();
            args.Result.FirstPart = renderFieldResult.FirstPart;
            args.Result.LastPart = renderFieldResult.LastPart;
            args.DisableWebEditContentEditing = true;
            args.DisableWebEditFieldWrapping = true;
            args.WebEditClick = "return Sitecore.WebEdit.editControl($JavascriptParameters, 'webedit:chooseimage')";
        }
Exemplo n.º 41
0
 /// <summary>Gets the field value.</summary>
 /// <param name="args">The arguments.</param>
 /// <contract>
 ///   <requires name="args" condition="none" />
 /// </contract>
 public void Process(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)args, "args");
     if (!this.CanWebEdit(args) && !args.WebEditParameters.ContainsKey("sc-highlight-contentchange") || (args.Item == null || !this.CanEditItem(args.Item)))
         return;
     Field field = args.Item.Fields[args.FieldName];
     if (field == null || !this.CanEditField(field))
         return;
     Item obj = field.Item;
     string str = obj[FieldIDs.Revision].Replace("-", string.Empty);
     string controlID = "fld_" + (object)obj.ID.ToShortID() + "_" + (object)field.ID.ToShortID() + "_" + (object)obj.Language + "_" + (object)obj.Version + "_" + str + "_" + (object)MainUtil.GetSequencer();
     HtmlTextWriter output = new HtmlTextWriter((TextWriter)new StringWriter());
     string rawValueContainer = this.GetRawValueContainer(field, controlID);
     output.Write(rawValueContainer);
     if (args.DisableWebEditContentEditing && args.DisableWebEditFieldWrapping)
         this.RenderWrapperlessField(output, args, field, controlID);
     else
         this.RenderWrappedField(output, args, field, controlID);
 }
        private string RenderToHtml(RenderFieldArgs args) 
        {

          Database db = Sitecore.Context.ContentDatabase ?? Sitecore.Context.Database;
          
          
          CategoryItem categoryItem; 
          
          string rowValue = string.Empty;
          string htmlValue = string.Empty;
          string tagId = string.Empty;
          string tagWeight = string.Empty;
          List<String> listId = new List<String>();
          if(!String.IsNullOrEmpty(args.FieldValue))
          {
            rowValue = args.FieldValue;
            args.RawParameters = rowValue;
            listId.AddRange(rowValue.Split("|".ToCharArray()));
            foreach (string tId in listId)
            {
              string span;
              tagId = StringUtil.GetPrefix(tId, ':');
              tagWeight = StringUtil.GetPostfix(tId, ':');
              if ((tagId != "Null") && (tagId != ID.Null.ToString()))
              {
                categoryItem = new CategoryItem(db.GetItem(new ID(tagId)));
                span = "<span class='tagSet' tagId='" + tagId + "' weightId='" + tagWeight + "' onclick='tag_select(event);' ondblclick='showAlert(\"" + tagId + "\")'>" + categoryItem.CategoryName + "<wbr /></span>;";
              }
              else
              {
                  span = "<span class='tagNotFound' tagId='" + tagId + "'>" + tagWeight + "<wbr /></span>;";
              }
              htmlValue += span; 
            }
             
          }
          return htmlValue;
        }
Exemplo n.º 43
0
        public IFieldRenderingResult Render(object parameters = null)
        {
            var renderFieldArgs = new RenderFieldArgs()
            {
                Item = item,
                FieldName = fieldName
            };

            if (parameters != null)
            {
                renderFieldArgs.ApplyParameters(parameters);
            }

            CorePipeline.Run(renderFieldPipeline, renderFieldArgs);
            var result = renderFieldArgs.Result;

            var beginResult = result?.FirstPart;
            var endResult = result?.LastPart;

            var renderingResult = new FieldRenderingResult(beginResult, endResult);
            RenderingResult = renderingResult.Some<IFieldRenderingResult>();

            return renderingResult;
        }
        /// <summary>
        /// Processes render field pipline.
        /// </summary>
        /// <param name="args">
        /// The render field argument list.
        /// </param>
        public new void Process(RenderFieldArgs args)
        {
            if (args.FieldTypeKey != "image")
              {
            return;
              }

              MediaObject mediaObject = new MediaObject
              {
            // Database = Context.Database.Name,
            // DataSource = args.Item.ID.ToString(),
            Item = args.Item,
            FieldName = args.FieldName,
            FieldValue = args.FieldValue,
            RenderParameters = args.Parameters
              };
              args.WebEditParameters.AddRange(args.Parameters);
              RenderFieldResult result = new RenderFieldResult(HtmlUtil.RenderControl(mediaObject));

              args.Result.FirstPart = result.FirstPart;
              args.Result.LastPart = result.LastPart;
              args.DisableWebEditContentEditing = true;
              args.WebEditClick = "return Sitecore.WebEdit.editControl($JavascriptParameters, 'webedit:chooseimage')";
        }
Exemplo n.º 45
0
 /// <summary>Gets the default image.</summary>
 /// <param name="args">The args.</param>
 /// <returns>The default image.</returns>
 private static string GetDefaultText(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)args, "args");
     string @string = StringUtil.GetString(new string[2]
     {
 args.RenderParameters["default-text"],
 string.Empty
     });
     using (new LanguageSwitcher(WebUtil.GetCookieValue("shell", "lang", Sitecore.Context.Language.Name)))
     {
         if (@string.IsNullOrEmpty())
         {
             Database database = Factory.GetDatabase("core");
             Assert.IsNotNull((object)database, "core");
             Item obj = database.GetItem("/sitecore/content/Applications/WebEdit/WebEdit Texts");
             Assert.IsNotNull((object)obj, "/sitecore/content/Applications/WebEdit/WebEdit Texts");
             @string = obj["Default Text"];
         }
         if (string.Compare(args.RenderParameters["show-title-when-blank"], "true", StringComparison.InvariantCultureIgnoreCase) == 0)
             @string = GetFieldDisplayName(args) + ": " + @string;
     }
     return @string;
 }
        protected virtual string RunPipeline(Field field)
        {
            RenderFieldArgs renderFieldArgs = new RenderFieldArgs
            {
                Item = field.Item,
                FieldName = field.Name,
                DisableWebEdit = true
            };

            CorePipeline.Run("renderField", renderFieldArgs);

            return renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart;
        }
Exemplo n.º 47
0
 /// <summary>Gets the display name of the field.</summary>
 /// <param name="args">The arguments.</param>
 /// <returns>The get field display name.</returns>
 private static string GetFieldDisplayName(RenderFieldArgs args)
 {
     Assert.IsNotNull((object)args, "args");
     Assert.IsNotNull((object)args.Item, "item");
     Item obj;
     if (string.Compare(WebUtil.GetCookieValue("shell", "lang", Sitecore.Context.Language.Name), args.Item.Language.Name, StringComparison.InvariantCultureIgnoreCase) != 0)
     {
         obj = args.Item.Database.GetItem(args.Item.ID);
         Assert.IsNotNull((object)obj, "Item");
     }
     else
         obj = args.Item;
     Field field = obj.Fields[args.FieldName];
     if (field != null)
         return field.DisplayName;
     return args.FieldName;
 }
Exemplo n.º 48
0
 /// <summary>Gets the word style string.</summary>
 /// <param name="tag">The tag.</param>
 /// <param name="args">The arguments.</param>
 /// <returns>The word style string.</returns>
 private static void ApplyWordFieldStyle(Tag tag, RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)tag, "tag");
     Assert.ArgumentNotNull((object)args, "args");
     string str1 = args.Parameters["editorwidth"] ?? Settings.WordOCX.Width;
     string str2 = args.Parameters["editorheight"] ?? Settings.WordOCX.Height;
     string str3 = args.Parameters["editorpadding"] ?? Settings.WordOCX.Padding;
     string str4 = str1.ToLowerInvariant().Replace("px", string.Empty);
     int int1 = MainUtil.GetInt(str4, -1);
     string str5 = str2.ToLowerInvariant().Replace("px", string.Empty);
     int int2 = MainUtil.GetInt(str5, -1);
     int int3 = MainUtil.GetInt(str3.ToLowerInvariant().Replace("px", string.Empty), -1);
     if (int3 >= 0)
     {
         if (int1 >= 0)
             str4 = (int1 + 2 * int3).ToString() + string.Empty;
         if (int2 >= 0)
             str5 = (int2 + 2 * int3).ToString() + string.Empty;
     }
     tag.Class += " scWordContainer";
     tag.Style = "width:{0}px;height:{1}px;padding:{2};".FormatWith((object)str4, (object)str5, (object)str3);
 }
Exemplo n.º 49
0
 protected abstract void DoRenderField(RenderFieldArgs args);
        private string GetResult(Field field, bool isRichText)
        {
            if (!isRichText)
            {
                return field.Value;
            }

            RenderFieldArgs renderFieldArgs = new RenderFieldArgs
            {
                Item = field.Item,
                FieldName = field.Name,
                DisableWebEdit = true
            };

            CorePipeline.Run("renderField", renderFieldArgs);

            return renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart;
        }
Exemplo n.º 51
0
        /// <summary>
        /// Determines whether this instance [can web edit] the specified args.
        /// </summary>
        /// <param name="args">The arguments.</param>
        private bool CanWebEdit(RenderFieldArgs args)
        {
            if (EnableWebEditMode.AllowWebEdit)
            {
                return true;
            }
            if (args.DisableWebEdit)
                return false;
            SiteContext site = Sitecore.Context.Site;

            return site != null 
                && site.DisplayMode == DisplayMode.Edit && (!(WebUtil.GetQueryString("sc_duration") == "temporary")
#if SC82
                && Sitecore.Context.PageMode.IsExperienceEditorEditing);
#else
                && Sitecore.Context.PageMode.IsPageEditorEditing);
#endif

        }
Exemplo n.º 52
0
 /// <summary>Creates the field tag.</summary>
 /// <param name="tagName">Name of the tag.</param>
 /// <param name="args">The arguments.</param>
 /// <param name="controlID"> </param>
 /// <returns>The field tag.</returns>
 private static Tag CreateFieldTag(string tagName, RenderFieldArgs args, string controlID)
 {
     Assert.ArgumentNotNull((object)tagName, "tagName");
     Assert.ArgumentNotNull((object)args, "args");
     Tag tag = new Tag(tagName)
     {
         ID = controlID + "_edit"
     };
     tag.Add("scFieldType", args.FieldTypeKey);
     return tag;
 }
Exemplo n.º 53
0
        public virtual IHtmlString RenderBeginField(string parameters = null, bool editing = true)
        {
            var renderFieldArgs = new RenderFieldArgs
            {
                Item = Field.Item,
                FieldName = Field.Name,
                DisableWebEdit = !editing,
                RawParameters = parameters ?? string.Empty
            };

            if (renderFieldArgs.Item == null)
            {
                return new HtmlString(string.Empty);
            }

            CorePipeline.Run("renderField", renderFieldArgs);
            var result = renderFieldArgs.Result;
            var str = result.FirstPart ?? string.Empty;
            EndFieldStack.Push(result.LastPart ?? string.Empty);

            return new HtmlString(str);
        }
        protected virtual string RunPipeline(Field field)
        {
            RenderFieldArgs renderFieldArgs = new RenderFieldArgs
            {
                Item = field.Item,
                FieldName = field.Name,
                DisableWebEdit = true
            };
            try
            {
                CorePipeline.Run("renderField", renderFieldArgs);
            }
            catch (Exception ex)
            {
                throw new MapperException("Failed to render field {0} on item {1}".Formatted(field.ID, field.Item.ID), ex);
            }

            return renderFieldArgs.Result.FirstPart + renderFieldArgs.Result.LastPart;
        }
Exemplo n.º 55
0
 public void Process(RenderFieldArgs args)
 {
     args.Result = new RenderFieldResult(args.FieldValue.Replace(ReplacementKey, ReplacementValue));
 }
Exemplo n.º 56
0
 /// <summary>Gets the name of the editable element tag.</summary>
 /// <param name="args">The arguments.</param>
 /// <returns></returns>
 private string GetEditableElementTagName(RenderFieldArgs args)
 {
     Assert.ArgumentNotNull((object)args, "args");
     string str = "span";
     if ((UIUtil.IsFirefox() || UIUtil.IsWebkit()) && (UIUtil.SupportsInlineEditing() && MainUtil.GetBool(args.Parameters["block-content"], false)))
         str = "div";
     return str;
 }
Exemplo n.º 57
0
 /// <summary>Renders the bottom bar.</summary>
 /// <param name="args">The arguments.</param>
 /// <param name="field">The field.</param>
 /// <param name="controlID"> </param>
 private static string GetFieldData(RenderFieldArgs args, Field field, string controlID)
 {
     Assert.ArgumentNotNull((object)args, "args");
     Assert.ArgumentNotNull((object)field, "field");
     Assert.ArgumentNotNull((object)controlID, "controlID");
     Item obj = field.Item;
     Assert.IsNotNull((object)Sitecore.Context.Site, "site");
     using (new LanguageSwitcher(WebUtil.GetCookieValue("shell", "lang", Sitecore.Context.Site.Language)))
     {
         GetChromeDataArgs args1 = new GetChromeDataArgs("field", obj, args.Parameters);
         args1.CustomData["field"] = (object)field;
         GetChromeDataPipeline.Run(args1);
         ChromeData chromeData = args1.ChromeData;
         SetCommandParametersValue((IEnumerable<WebEditButton>)chromeData.Commands, field, controlID);
         return chromeData.ToJson();
     }
 }
Exemplo n.º 58
0
        public virtual IHtmlString RenderBeginField(object parameters, bool editing = true)
        {
            var renderFieldArgs = new RenderFieldArgs
            {
                Item = Field.Item,
                FieldName = Field.Name,
                DisableWebEdit = !editing
            };

            if (parameters != null)
            {
                TypeHelper.CopyProperties(parameters, renderFieldArgs);
                TypeHelper.CopyProperties(parameters, renderFieldArgs.Parameters);
            }

            if (renderFieldArgs.Item == null)
            {
                return new HtmlString(string.Empty);
            }

            CorePipeline.Run("renderField", renderFieldArgs);
            var result = renderFieldArgs.Result;
            var str = result.FirstPart ?? string.Empty;
            EndFieldStack.Push(result.LastPart ?? string.Empty);

            return new HtmlString(str);
        }
Exemplo n.º 59
0
 public void Process(RenderFieldArgs args)
 {
     KernelContainer.Inject(this);
     this.DoRenderField(args);
 }
Exemplo n.º 60
0
 public static string GetRichTextRenderFieldPipeline(this Item item, ID fieldId)
 {
     RenderFieldArgs args = new RenderFieldArgs();
     args.Item = item;
     args.DisableWebEditFieldWrapping = true;
     args.FieldName = GetFieldName(item, fieldId);
     CorePipeline.Run("renderField", args);
     return args.Result.ToString();
 }