2012-08-15 27 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並編輯「重寫結果」設置以顯示兩者。確保未選中「無結果行爲」下的「如果爲空,則隱藏 重寫」框。