我有一個包含許多CCK字段的節點。我想隱藏來自匿名用戶的字段。我發現從http://www.lullabot.com/articles/modifying-forms-5-and-6大致有兩種方法。首先,我的代碼試圖theme_theme()以下hook_theme()影響節點的顯示順序
function ssaa_theme1(&$existing, $type, $theme, $path) {
return array(
'volunteer_node_form' => array(
'arguments' => array('form' => null),
),
);
}
function ssaa_volunteer_node_form($form) {
$out = '';
if (user_is_anonymous()) {
unset($form['field_active']);
}
$out .= drupal_render($form);
return $out;
}
這個簡單的代碼工作以及我的預期,但生產奇怪的結果了。保存/預覽按鈕出現在窗體的頂部,我無法將它們移動到底部。起初,我懷疑drupal_render()函數,但它沒有對訂單做任何事情。當ssaa_volunteer_node_form()函數爲空時,它會產生相同的結果。
所以我嘗試了第二個選項,它使用了hook_form_alter()並且成功了。但我仍想弄清楚爲什麼第一種方法無法正常工作。我認爲這是更容易和輕鬆的方式來做我想做的事情。
任何想法?
哇,我不知道該字段權限模塊。聽起來像「編輯自己的字段權限」的一些好處似乎非常值得。 – theunraveler 2009-11-03 18:45:48
使用您建議的字段權限模塊,它可以完美實現。 CCK字段的默認值也適用。我真的需要默認值工作。我試過了Content Permissions模塊,但是有太多複選框需要檢查(系統中有近20種內容類型和8種角色)非常感謝! – user201563 2009-11-04 01:34:23