Вы имеете в виду в шаблоне? Если вы хотите узнать, есть ли в журнале поле в шаблоне, вы можете использовать метод get_field()
или get_value()
. Используйте get_field()
, если вы просто хотите узнать, присутствует ли поле, так как оно возвращает объект Bric :: Biz :: Element :: Field (я предполагаю, что Мейсон использует шаблоны):
if (my $field = $element->get_field('teaser')) {
$m->print('<p>', $field->get_value, "</p>\n");
}
Если вы хотите узнать, имеет ли поле значение, вы используете get_value()
:
if (my $val = $element->get_value('teaser')) {
$m->print("<p>$val</p>\n");
}
Этот метод вернет undef
, если объект поля отсутствует, и значение объекта поля, если он существует. Обратите внимание, что если значение является пустой строкой или 0
, то там тоже ничего печататься не будет.
Но важно отметить, что документы Bricolage организованы в виде древовидной структуры элементов. Лучший способ создания шаблонов - один для каждого элемента контейнера. Приведенный выше пример может находиться в шаблоне элемента "story" верхнего уровня, где $element
будет сам элемент верхнего уровня. Но если ваше поле «teater» находится в подэлементе, скажем «Metadata», вам нужно создать шаблон элемента «metadata» с приведенным выше кодом и вызывать его из шаблона элемента story, например:
$burner->display_element('metadata');
См. Bric :: Templates для ознакомления с шаблонами Bricolage и API.
НТН,
David