如果节点主体为空,则隐藏标题-Drupal php代码段帮助
我已经为链接创建了一个内容类型,我正在尝试创建一个链接目录。人们只需提交链接,说明是自愿的。如果没有输入描述,我希望显示“描述”的标题消失。描述字段是节点主体。 现在我的代码片段如下所示如果节点主体为空,则隐藏标题-Drupal php代码段帮助,php,drupal,code-snippets,Php,Drupal,Code Snippets,我已经为链接创建了一个内容类型,我正在尝试创建一个链接目录。人们只需提交链接,说明是自愿的。如果没有输入描述,我希望显示“描述”的标题消失。描述字段是节点主体。 现在我的代码片段如下所示 <?php if (!empty($node->body)) {?> <div class="field field-type-link field-field-link-archive"> <h3>Description</h3> <?php pr
<?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 }?>
描述
我希望这可以检查节点主体是否为空,如果不是,它将打印其中的内容。问题在于,即使节点主体为空,描述标头仍会打印出来。有人知道怎么回事吗?$node->body可能不是空的 这些东西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_转储以测试它
phps速记语法是为类似的事情而设计的。你应该用它,它更容易阅读
<?php if(): ?>
// do stuff
<?php endif; ?>
//做事
$node->body是包含链接、作者信息、发布日期等的整个节点内容。您几乎可以看到:
<?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等标记。选中它…在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 }?>
描述
完美!我就快到了,实际上我尝试了$node->content['body],但没有最后一个值标记。你的代码片段完全符合我的预期。谢谢我还不太擅长php,但我将研究foreach的功能。谢谢我的意思是用if语句的缩写,我明白了,而不是用{}括号:和endif;。你说得对,看起来好多了!