Можно ввести маркеры в полях стандартных значений, а затем они будут заменены другими значениями, но только при создании нового элемента, который использует этот шаблон. Он не будет устанавливать дату для существующих элементов, которые используют этот шаблон.
$ Дата является одним из маркеров, и это replates с системной датой (YYyyMmDd).
Существует сообщение в блоге, написанное Джоном Западом, в котором объясняется, как Expand Standard Values Tokens in Existing Items with the Sitecore ASP.NET CMS.
EDIT:
Вот код, который является частью MasterVariablesReplacer
класса, который используется для замены $ Date фишку:
text = this.ReplaceWithDefault(text, "$date", (Func<string>) (() => DateUtil.IsoNowDate), context);
Она вызывается из ReplaceVariables
процессор, который является частью конвейера expandInitialFieldValue
(см. /sitecore/admin/showconfig.aspx
для всех процессоров expandInitialFieldValue
).
Вы можете попробовать, чтобы добавить свой собственный процессор для этого трубопровода и понять, почему $date
не заменяются правильно:
public class ReplaceVariables : ExpandInitialFieldValueProcessor
{
public override void Process(ExpandInitialFieldValueArgs args)
{
Assert.ArgumentNotNull((object) args, "args");
MasterVariablesReplacer variablesReplacer = Factory.GetMasterVariablesReplacer();
string text = args.SourceField.Value;
if (variablesReplacer == null)
args.Result = text;
else
args.Result = variablesReplacer.Replace(text, args.TargetItem);
}
}
Да .. Я использую дату $ в качестве маркеров в стандартном значении. Который в идеале должен быть заменен текущей датой. Но это всегда принимает дату как 1/1/0001 – archie
Просто чтобы подтвердить, вы сначала установили $ date token в стандартных значениях, а затем создали новый элемент, используя этот шаблон, и дата была установлена на дату time.min после этого? –
Да. Это верно. Я создаю новый элемент после того, как я установил токен в стандартных значениях. – archie