Esempio n. 1
0
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("editFrame", (writer, options, context, args) =>
            {
                string id      = args[0] as string;
                string buttons = args[1] as string;
                string title   = args[2] as string;

                var editFrame        = new Sitecore.Web.UI.WebControls.EditFrame();
                editFrame.DataSource = id;
                editFrame.Buttons    = buttons;
                editFrame.Title      = title;

                var sb         = new StringBuilder();
                var sw         = new StringWriter(sb);
                var htmlWriter = new HtmlTextWriter(sw);
                editFrame.RenderFirstPart(htmlWriter);
                writer.WriteSafeString(sb.ToString());

                options.Template(writer, (object)context);

                sb.Clear();
                editFrame.RenderLastPart(htmlWriter);
                writer.WriteSafeString(sb.ToString());
            }));
        }
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("fieldRenderer", (writer, context, args) =>
            {
                var field = args[0] as Field;
                if (field == null)
                {
                    return;
                }

                string renderedValue = string.Empty;

                try
                {
                    renderedValue = Sitecore.Web.UI.WebControls.FieldRenderer.Render(field.Item, field.Name, args[1] == null ? string.Empty : args[1].ToString());
                }
                catch (Exception ex)
                {
                    if (Sitecore.Context.PageMode.IsExperienceEditor)
                    {
                        renderedValue = ex.ToString();
                    }
                }

                if (!string.IsNullOrEmpty(renderedValue))
                {
                    writer.Write(renderedValue);
                }
            }));
        }
 public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
 {
     pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("ifNotEqual", (writer, options, context, args) =>
     {
         if (args[0] != args[1] && !args[0].Equals(args[1]))
         {
             options.Template(writer, (object)context);
         }
         else
         {
             options.Inverse(writer, (object)context);
         }
     }));
 }
Esempio n. 4
0
 public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
 {
     pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("translate", (writer, context, args) =>
     {
         string input   = args[0].ToString();
         var translated = Sitecore.Globalization.Translate.Text(input);
         if (!string.IsNullOrEmpty(translated))
         {
             writer.Write(translated);
         }
         else
         {
             writer.Write("<!-- Nothing Found for Key: " + input + " -->");
         }
     }));
 }
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("placeholder", (writer, context, args) =>
            {
                var passedInName     = args[0].ToString();
                var placeholderName  = args[0].ToString();
                var placeholderIndex = args.Length > 1 ? args[1].ToString() : "1";
                placeholderIndex     = string.IsNullOrEmpty(placeholderIndex) ? "1" : placeholderIndex;

                Guid currentRenderingId = RenderingContext.Current.Rendering.UniqueId;

                if (currentRenderingId != Guid.Empty)
                {
                    placeholderName = String.Format("{0}-{1}-{2}", placeholderName, currentRenderingId.ToString("B"), placeholderIndex);
                }

                if (Sitecore.Context.PageMode.IsExperienceEditorEditing)
                {
                    writer.Write(@"<div data-container-title=""{0}"">", placeholderName);
                }

                //save current context for later
                var oldContext       = HttpContext.Current.Items["HandlebarDataSource"];
                var oldRenderingItem = Sitecore.Mvc.Presentation.RenderingContext.CurrentOrNull.Rendering.Item;

                //Helper set from Variant field class as it's passed as arg.
                HtmlHelper helper = HttpContext.Current.Items["htmlHelper"] as HtmlHelper;
                if (helper != null)
                {
                    var placeholderStr = (new Sitecore.Mvc.Helpers.SitecoreHelper(helper)).DynamicPlaceholder(passedInName).ToHtmlString();
                    writer.Write(placeholderStr);
                }
                else
                {
                    //The old manual way where we have no access to helper.
                    PipelineService.Get().RunPipeline <RenderPlaceholderArgs>("mvc.renderPlaceholder", new RenderPlaceholderArgs(placeholderName, writer, new ContentRendering()));
                }
                //put it back.
                HttpContext.Current.Items["HandlebarDataSource"] = oldContext;
                Sitecore.Mvc.Presentation.RenderingContext.CurrentOrNull.Rendering.Item = oldRenderingItem;

                if (Sitecore.Context.PageMode.IsExperienceEditorEditing)
                {
                    writer.Write(@"</div>");
                }
            }));
        }
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("LookupElement", (writer, context, args) =>
            {
                var input      = args[0];
                var lookupKey  = args[1].ToString();
                var lookupProp = args[2].ToString();


                System.Reflection.PropertyInfo info = input.GetType().GetProperties()[1];
                object dic = info.GetValue(input);



                writer.Write("testing");
            }));
        }
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("json", (writer, context, args) =>
            {
                object obj = args[0];

                //didn't like how Web Extensions Serializer looked for Expandos (Arrays of key values)
                //var jString = new JavaScriptSerializer().Serialize(obj);

                try
                {
                    var jString = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
                    writer.Write(jString);
                }
                catch (Exception ex)
                {
                    writer.Write(ex.ToString());
                }
            }));
        }
        static HandlebarManager()
        {
            //Run Pipeleine to get Helpers and Register them
            var args = new HandlebarHelpersPipelineArgs();

            Sitecore.Pipelines.CorePipeline.Run("handlebarHelpers", args);
            foreach (var helper in args.Helpers)
            {
                if (helper.Helper != null && !HandlebarsDotNet.Handlebars.Configuration.Helpers.ContainsKey(helper.Name) && !HandlebarsDotNet.Handlebars.Configuration.BlockHelpers.ContainsKey(helper.Name))
                {
                    HandlebarsDotNet.Handlebars.RegisterHelper(helper.Name, helper.Helper);
                }
                else
                {
                    if (helper.BlockHelper != null && !HandlebarsDotNet.Handlebars.Configuration.Helpers.ContainsKey(helper.Name) && !HandlebarsDotNet.Handlebars.Configuration.BlockHelpers.ContainsKey(helper.Name))
                    {
                        HandlebarsDotNet.Handlebars.RegisterHelper(helper.Name, helper.BlockHelper);
                    }
                }
            }
        }
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("userSettings", (writer, context, args) =>
            {
                string key  = args[0].ToString();
                string area = UserSettingsConfiguration.DefaultArea;
                if (args.Length > 1 && !string.IsNullOrEmpty(args[1].ToString()))
                {
                    area = args[1].ToString();
                }

                var setting = SF.Foundation.Facets.Facades.UserSettings.Settings[key, area];
                if (!string.IsNullOrEmpty(setting))
                {
                    writer.Write(setting);
                }
                else
                {
                    //writer.Write("<!-- Nothing Found for Key: " + key + " -->");
                }
            }));
        }
Esempio n. 10
0
        public void Process(HandlebarHelpersPipelineArgs pipelineArgs)
        {
            pipelineArgs.Helpers.Add(new HandlebarHelperRegistration("formatDate", (writer, context, args) =>
            {
                string input    = args[0].ToString();
                DateTime parsed = DateTime.MinValue;
                if (DateTime.TryParse(input, out parsed))
                {
                    //We got a date, woo hoo!
                }
                else
                {
                    try
                    {
                        //Sitecore Date Vals are stored as Iso, could that be the issue?
                        parsed = Sitecore.DateUtil.IsoDateToDateTime(input);
                    }
                    catch
                    {
                        writer.Write("[Invalid Date]");
                    }
                }

                if (parsed != DateTime.MinValue)
                {
                    try
                    {
                        writer.Write(parsed.ToString(args[1].ToString()));
                    }
                    catch
                    {
                        writer.Write("[Invalid Format!]");
                    }
                }
            }));
        }