N2: установить значения по умолчанию для ContentItems - PullRequest
0 голосов
/ 01 ноября 2010

При использовании N2 CMS :

Если я хочу установить некоторые значения по умолчанию при создании нового ContentItem (например, установить значение CreatedByUser для новой страницы, чтобы я мог записать, кто первоначальносоздал его) где лучше всего разместить этот код?

Я считаю, что конструктор ContentItem не идеален, потому что он будет вызываться при загрузке существующих объектов.

1 Ответ

1 голос
/ 03 ноября 2010

Если вы используете синтаксис Get / SetDetail, вы можете сделать что-то вроде этого в свойстве getter:

public virtual string TopImage
{
    get { return (string)(GetDetail("TopImage") ?? string.Empty); }
    set { SetDetail("TopImage", value); }
}

Это немного уродливо, поэтому есть также перегрузка для получения / установки деталей, которая позволяет вам указать значение по умолчанию:

public virtual string TopImage
{
    get { return GetDetail("TopImage", String.Empty /* Default */); }
    set { SetDetail("TopImage", value, String.Empty /* Default */); }
}

Если вы хотите сохранить значение, когда что-то сохранено , попробуйте переопределить метод AddTo в ContentItem. Он вызывается каждый раз, когда объект сохраняется, поэтому будьте осторожны, если вы хотите вызывать его только при первом сохранении чего-либо (ID == 0, когда элемент «новый»)

...