2012-01-21 15 views
2

當您有一個不存儲數據的字段時,您會做什麼?該字段僅提供派生數據。不存儲數據的Drupal7字段 - 我如何獲取它以呈現?

我正在使用Drupal7,並在模塊中創建了一個字段。該字段不存儲數據 - 當有人呼叫MYMODULE_field_formatter_view時,他們將得到一個包含節點分析的渲染數組。這是一個質量控制程序,用於指示節點內容的質量問題。

一切工作正常!在一個視圖中,我可以調用該字段,指定view_type(有幾個),它的工作原理。

直到...

我是在搜索results.tpl.php我打電話drupal_render(node_view($node,"qc"));

一切都呈現爲預期分析字段沒有HTML。標題出現,但內容不顯示。 node_view的渲染數組包含預期的數據,但不會打印。

我能想到的唯一一件事是:
節點中的字段爲空。例如:$node->field_analysis爲空。我認爲這是因爲用戶永遠不會使用小部件爲該字段創建數據,因爲它不需要任何數據。

問題是這樣的:
如何,當創建一個節點,可我莫名其妙地製造假數據放在$node->field_analysis來?

有沒有不同的方法?

非常感謝你的時間。

乍得

回答

3

我不知道現場是真正適合這種類型的功能;字段爲,對於存儲數據,以便有一個無數據字段沒有意義。

相反,我會使用以下鉤子的一個或多個提醒:

例如,您可以使用hook_node_load()將質量數據附加到從數據庫加載的節點上,並且hook_node_view()在查看節點時添加額外的內容。

如果要在節點編輯窗體上顯示數據,則需要執行hook_form_alter()

+0

非常感謝您花時間提供此建議。我可能會這樣。在相關說明中,有沒有辦法確保節點中的字段至少有一個值,而不會讓用戶添加一個值?例如,是否有一種方法可以將多個圖像Image字段中的默認圖像放置在新節點中?新節點的創建是否通知它是創建節點的字段? –

相關問題