2

在我的 template.php 文件中,我有这个:

function myadmintheme_theme(&$existing, $type, $theme, $path) {
  return array(
    'node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}

我在同一个目录中有一个 ccktype.tpl.php :

<b>works!</b>

但是不工作,如果我进入 node/add/ccktype 我没有得到“工作!” 消息..我什么都试过了!

任何帮助,将不胜感激

4

4 回答 4

5

您需要覆盖的主题函数是 ccktype_node_form,而不是 node_form。由节点模块维护的所有节点表单都映射到 node_form 函数以进行构建,但它们仍然具有唯一的表单 ID。

于 2009-03-18T14:43:16.197 回答
1

这是解决方案:

function myadmintheme_theme($existing, $type, $theme, $path) {
  return array(
    'ccktype_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}

非常感谢伊顿!

于 2009-03-18T15:09:14.153 回答
1

它开始对我有用,但经过长时间的试验。:) 我正在使用 Drupal 6,并且我犯了为 Drupal 5 编写代码的错误。我在我的 node-minister-edit.php 中使用form_render(至于 D5)而不是(对于 D6)。drupal_render

template.php 的下一个变化是函数

waffles_theme($existing, $type, $theme, $path){ 
    return array( 'minister_node_form' => array( 'arguments' => array('form' => NULL), 'template' => 'node-minister-edit' ) ); 
}

查看数组参数template从哪个更改ministernode-minister-edit我的节点特定模板文件。在这里minister_node_form,第一个单词“部长”是我的内容类型。

正如Seb所说,我在开始使用任何此类更改之前清除了缓存。希望这对其他人有帮助:)

以下项目帮助了我:
1. http://drupal.org/node/601646
2. http://drupal.org/node/98253

于 2012-01-16T05:29:34.073 回答
0

首先,看到 Drupal 没有缓存你的模块。转到管理 > 站点配置 > 性能,然后清除所有缓存。

如果这不起作用,请尝试将文件重命名为 node-add-ccktype.tpl.php。

于 2009-03-18T14:14:06.673 回答