检查drupal令牌是否为空

时间:2013-08-02 12:14:13

标签: xml drupal token

我的目标是使用drupal将xml代码解析到外部网站,然后将其处理并保存在数据库中。

为此,我使用规则模块。但是我遇到了一个我似乎无法解决的小问题。

例如,我选择了一个xml行:

<FullName>[account:field-bedrijfsnaam-bedrijf]</FullName>

如果drupal令牌为空,则该字段应转到:

<FullName xsi:nil="true" />

我尝试了一些php代码来检查令牌是否为空:

<?php if(!empty('[account:field-bedrijfsnaam-bedrijf]')): ?>
    <FullName>[account:field-bedrijfsnaam-bedrijf]</FullName>
<?php else: ?>
    <FullName xsi:nil="true" />
<?php endif; ?>

空函数失败了,所以我尝试了(strlen([account:field-bedrijfsnaam-bedrijf])&gt; 0),但没有成功。使用strlen时令牌似乎不是空的,而空函数根本不起作用。

Image with php evaluation displayed

在我输入我的xml代码的字段下面,drupal说我可以使用$ account和$ site变量进行评估。我想知道我是否可以使用这些来检查字段数据是否为空?

它是一个对象,那么如何正确检查$ account中的字段是否为空?由于我不能使用print_r(数据被发送到外部网站),我不知道如何做到这一点。

如果不可能,有没有人知道如何解决它??

提前完成。

1 个答案:

答案 0 :(得分:1)

您可以使用field_get_items drupal函数来获取变量并确保它存在

if(field_get_items('user', $account, 'field-bedrijfsnaam-bedrijf')) {
   // code here when it is not empty
} else {
  // Code when it's empty
}

传递给函数的第一个参数是entity_type。因此,如果其他人认为需要用他们正在使用的任何实体类型替换它。

希望它有所帮助!