如果节点主体为空,则隐藏标题 - Drupal php snippet help

时间:2010-05-06 20:59:12

标签: php drupal code-snippets

我为链接制作了内容类型,我正在尝试创建一个链接目录。人们只需提交链接,描述是自愿的。如果没有输入描述,我希望标题“说明”消失。 description字段是节点主体。 现在我的代码片段看起来像这样

<?php if (!empty($node->body)) {?> 
<div class="field field-type-link field-field-link-archive">
<h3>Description</h3>
<?php print $node->content['body']['#value'] ?></div>
<?php }?>

我希望这可以检查节点主体是否为空,如果不是,它将打印出那里的内容。问题是即使节点主体为空,仍然打印出Description标头。任何人都可以看到什么是错的吗?

3 个答案:

答案 0 :(得分:3)

$ node-&gt;正文是整个节点内容,包含链接,作者信息,发布日期等。
你几乎得到它,请参阅:

<?php if (!empty($node->content['body']['#value'])) {?> 
<div class="field field-type-link field-field-link-archive">
<h3>Description</h3>
<?php print $node->content['body']['#value'] ?></div>
<?php }?>

另外一些wysiwyg-s模块会自动添加像p这样的标签。检查一下......

答案 1 :(得分:0)

$ node-&gt;正文可能不是空的

这些是php认为是空的

"" (an empty string)
0 (0 as an integer)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)

对它进行var_dump测试

phps简写语法是针对这样的事情而制作的。你应该使用它,它更容易阅读

<?php if(): ?>
// do stuff
<?php endif; ?>

答案 2 :(得分:0)

在Drupal 7中,这也有效:

<?php if(!empty($content['body'])) { ?>
 <div class="field field-type-link field-field-link-archive">
   <h3>Description</h3>
   <?php print render($content['body']); ?>
 </div>
<?php }?>