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); } })); }
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 + " -->"); } })); }
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!]"); } } })); }