在Bricolage CMS中,检查某个故事是否有特定字段(在本例中称为“预告片”)的设置是什么?
答案 0 :(得分:2)
你的意思是模板吗?如果您想知道某个故事是否在模板中包含某个字段,您可以使用get_field()
或get_value()
方法。如果您只是想知道字段是否存在,请使用get_field()
,因为它返回Bric::Biz::Element::Field对象(我假设Mason在这里进行模板化):
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文档是以元素的树结构组织的。创建模板的最佳方法是每个容器元素一个。上面的示例可能位于顶级“故事”元素模板中,其中$element
将是顶级元素本身。但是如果您的“teater”字段位于子元素中,例如“元数据”,您将需要使用上述代码创建“元数据”元素模板,并从您的故事元素模板中调用它,如下所示:
$burner->display_element('metadata');
有关Bricolage模板和API的介绍,请参阅Bric::Templates。
HTH,
大卫