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;
        }
예제 #2
0
        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);
            }
        }