Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Php 试图理解Drupal 7计算字段模块_Php_Drupal_Drupal 7_Drupal Computed Field - Fatal编程技术网

Php 试图理解Drupal 7计算字段模块

Php 试图理解Drupal 7计算字段模块,php,drupal,drupal-7,drupal-computed-field,Php,Drupal,Drupal 7,Drupal Computed Field,我刚刚安装了computed fields模块,对于如何使用它,我有点不知所措。我的内容类型中有两个字段:field\u shortdesc和field\u audio\u description 如果field\u shortdesc为空,我需要显示field\u audio\u description,反之亦然 我需要在计算代码和显示代码区域中放置什么代码?看起来我连最简单的代码都做不到 例如,如果我将$entity_字段[0]['value']=“test”在计算区域中,然后放入打印$en

我刚刚安装了computed fields模块,对于如何使用它,我有点不知所措。我的内容类型中有两个字段:
field\u shortdesc
field\u audio\u description

如果
field\u shortdesc
为空,我需要显示
field\u audio\u description
,反之亦然

我需要在计算代码和显示代码区域中放置什么代码?看起来我连最简单的代码都做不到


例如,如果我将
$entity_字段[0]['value']=“test”在计算区域中,然后放入
打印$entity_字段[0]['value']在显示代码区域中,不会打印任何内容。显然,我做了一些完全错误的事情。

我认为计算字段模块不适合您的要求

在我看来,使用Ajax状态系统是最好的选择


注意,“显示代码”部分中的帮助文本说明:

此代码应将字符串分配给
$display\u输出
变量, 显示该字段时将打印该字段


与打印$entity\u字段[0]['value']
不同,尝试使用
$display\u output=$entity\u字段[0]['value']

如果您谈论的是在使用字段的视图中显示值,而不是查看节点,那么通过视图设置可以更轻松地执行此操作,而无需添加其他字段

如果只想显示一个默认值,即使两个默认值都存在

  • 将字段1(可选字段)添加到视图中,但从显示中排除
  • 将字段2(默认字段)添加到视图并编辑“无结果” 当字段2为空时,显示字段1的值
如果要同时显示两个值(如果两个值都存在),并且使用的是表格

  • 将这两个字段添加到视图中,但在表设置中,使用适当的分隔符将字段1的显示与字段2放在同一列中。如果一个字段或另一个字段为空,则视图看起来足够聪明,不会输出分隔符
如果不使用表格,但希望同时显示两个值

  • 添加字段1并从显示中排除
  • 添加字段2并编辑“重写结果”设置以同时显示这两个字段。确保“隐藏” 未选中“无结果行为”下的“如果为空则重写”框

这不适用于节点表单。这只是为了在前端显示字段值。我只需要通过编程确定一个字段是否没有值。如果没有值,则显示另一个字段,反之亦然。尝试此操作后,仍然没有返回任何结果:(@DustinMcGrew-请注意,帮助文本中还声明:注意:如果使用“原始计算值”显示格式设置程序,则此代码无效。请检查显示设置以确保其未设置为原始格式。我假设这是在视图中设置的?现在,我将格式设置为纯文本。现在,对于我的计算代码,我有
$entity\u字段[0]['value']=$node->field_shortdesc[0]['value'];
并且显示代码是
$display_output=$entity_field_item['value'];
这不会将任何值放入我的视图。@DustinMcGrew Try
$entity_field[0]['value']=$entity->field_shortdesc[LANGUAGE_NONE][0]['value']
作为您的计算代码。注意,我已将语言设置为“无”,您可能需要根据您的站点进行相应调整。如果不起作用,请尝试更简单版本的
$entity_field[0]['value']=“test”
您在原始问题中所做的更改。请注意,在编辑和保存内容项后,PHP代码中的更改是可见的,而不仅仅是刷新内容。我花了一些时间才意识到这一点。