2010-10-12 110 views
2

我爲Drupal節點編輯表單創建了一個鉤子提交函數。我想爲sumbit處理程序中的特定節點更改CCK字段的值(不是形式)。更改Drupal表單中字段的值

我試過將字段設置爲隱藏並將值應用於它,但這不起作用。

任何人都可以提出一種方法來做到這一點?

感謝,

喬納森

+0

你是說CCK領域不是形式? – Kevin 2010-10-12 19:31:21

回答

1

而不是添加一個提交功能的編輯,爲什麼不使用hook_nodeapi並執行$ op ='presave'時的邏輯?這樣你不需要像規則那樣的重量模塊,但仍然可以改變節點提交的值。

編輯:看看hook_nodeapi()

+0

非常感謝,如果滿足某些條件,是否有取消節點保存在某個點? – Jonathan 2010-10-13 09:54:11

+0

找出來了。使用了op ='presave'的hook_nodeapi,並使用op ='validate'來檢查條件,然後使用form_set_error()取消表單處理。 – Jonathan 2010-10-13 10:23:14

2

我想你可能是在複雜的事情。如果你想要做的只是在節點保存中更改CCK字段的值(可能基於某些條件),那麼最好使用Rules模塊(http://drupal.org/project/rules)。規則模塊上互聯網上有大量視頻和資源。

此外,如果您想要隱藏特定的CCK字段,則可以使用與CCK模塊捆綁在一起的Content Permissions模塊。您可以拒絕用戶在CCK字段上編輯訪問權限,但授予查看訪問權限。

+0

我做了一些與Node Reference CCK字段非常相似的東西。我還使用內容權限來限制編輯訪問權限(它隱藏表單中的字段),然後在代碼中設置字段值。在這個問題中可能會有一些有用的信息...... http://stackoverflow.com/q/3764156/318158 – Chaulky 2010-10-12 23:26:33

0

使用form_set_value();功能上表單驗證。