2012-08-15 76 views
0

我刚刚安装了计算字段模块,我对于如何使用它有点失落。我在内容类型中有两个字段:field_shortdescfield_audio_description试图了解Drupal 7计算字段模块

如果field_shortdesc为空,我需要显示field_audio_description,反之亦然。

我需要将哪些代码放入计算代码并显示代码区域?好像我连最简单的代码都无法工作。

例如,如果我将$entity_field[0]['value'] = "test";放入计算区域,然后将print $entity_field[0]['value'];放在显示代码区域中,则不会打印出任何东西。很明显,我正在做一些完全错误的事情。

+0

另请注意,编辑和保存内容项目后,PHP代码的更改是可见的,而不仅仅是刷新内容。我意识到这一点之前花了我一些时间。 – Zen 2012-09-11 01:06:41

回答

1

注意帮助文本的显示代码段状态:

此代码应指定一个字符串$display_output变量, 这将在现场打印被展示。

而不是print $entity_field[0]['value']尝试$display_output = $entity_field[0]['value']

+0

试过了,我仍然没有得到任何回报。 :( – Dustin 2012-08-15 13:51:32

+0

@DustinMcGrew - 另请注意,帮助文字陈述如下:_注意:如果您使用“原始计算值”显示格式化程序,则此代码不起作用._检查显示设置以确保其未设置为 – nmc 2012-08-15 13:56:05

+0

I'假设这是在视图中设置的,现在我把格式化程序设置为纯文本。现在对于我的计算代码,我有'$ entity_field [0] ['value'] = $ node-> field_shortdesc [0] ['值'';'和显示代码是'$ display_output = $ entity_field_item ['value'];' 这不会在我的视图中设置任何值。 – Dustin 2012-08-15 14:20:00

0

我不认为计算字段模块不是您的要求正确的解决方案。

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

http://colorado2010.camps.drupal.org/drupalcampcolorado.org/sessions/dynamic-forms-drupal-7-ajax-and-states.html

http://drupal.org/node/752056

+0

这不是节点形式。这仅用于显示前端的字段值。我只需要以编程方式确定一个字段是否没有价值。如果它没有值,则显示另一个字段,反之亦然。 – Dustin 2012-08-15 13:31:11

0

如果你谈论的是在使用领域的一个视图中显示的值,而不是观察节点,还有一个更简单的方式,通过视图设置要做到这一点,而不会增加另一个领域。

如果你只是想显示一个默认值,即使双方都存在

  • 添加字段1(可选字段)的看法,但来自显示
  • 排除添加字段2(默认字段)添加到视图并编辑“无结果 行为”以显示字段2为空时字段1的值。

如果你想显示两个值,如果两者都存在,并且您正在使用一个表

  • 添加两个字段视图,但在表中设置把场1的显示在与字段2相同的列中,使用任何适当的分隔符。如果一个字段或另一个字段为空,则视图看起来足够聪明,不会输出分隔符。

如果不使用表,而是要显示这两个值

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