Bricolage:如何检查某个故事是否有特定的字段?

时间:2011-04-18 10:03:25

标签: perl content-management-system

在Bricolage CMS中,检查某个故事是否有特定字段(在本例中称为“预告片”)的设置是什么?

1 个答案:

答案 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,

大卫