2009-09-30 56 views
0

我在template.php文件中的以下內容:Drupal的形式編輯和有條件的領域

function theme098_theme() { 
    return array(
    'email_node_form' => array(
     'arguments' => array('form' => NULL), 
    ) 
); 
} 

和...

function theme098_email_node_form($form) { 
    return drupal_render($form); 
} 

我排除的代碼,我實際修改的形式並削減它,以便不會發生任何修改。出現兩個問題:

  1. 項目順序(即它們的權重)被搞亂了。保存按鈕位於頂部等。即使我嘗試通過設置重量來編輯表格,保存按鈕STILL將出現在頂部。
  2. 真正的問題:條件字段不起作用。出於某種原因,我認爲這會覆蓋其他模塊應該做的事情?我不確定

任何人都可以點亮嗎?

回答

2

3件事。

  1. 在這種情況下,你應該使用hook_form_alter(),如果你想改變順序或改變形式,而是採用了主題功能改變它。保持演示文稿和邏輯分離。
  2. 當您使用掛鉤主題定義主題函數時,應該將它們稱爲theme_xxx而不是themename_/modulename_。
  3. 模塊(和可能的主題)有一個權重權重,決定它們使用hook _ * _ alter等函數運行的順序。查看devel模塊的安裝文件以瞭解如何完成此操作。

一個或多個這些東西應該幫助你。

+0

幫助很多。謝謝。 – coderama 2009-09-30 16:34:21