Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果节点主体为空,则隐藏标题-Drupal php代码段帮助_Php_Drupal_Code Snippets - Fatal编程技术网

如果节点主体为空,则隐藏标题-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;。你说得对,看起来好多了!