2009-09-30 52 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