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; }
public override void EvaluateOverride(Interpreter interpreter, Citation citation) { if (Variable == null) { throw new ArgumentNullException(nameof(Variable)); } var value = citation[Variable]; if (FormatSpecified) { DateRenderer.RenderLocalizedDate(interpreter, this, value, Delimiter, Format, Precision, DateParts); } else { DateRenderer.RenderNonLocalizedDate(interpreter, this, value, Delimiter, Precision, DateParts); } }