在Drupal 6中以CCK输入表格为主题

时间:2009-03-18 13:50:45

标签: php drupal drupal-6 themes cck

在我的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 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

这是解决方案:

function myadmintheme_theme($existing, $type, $theme, $path) {
  return array(
    'ccktype_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'ccktype',
    ),
  );
}
非常感谢伊顿!

答案 2 :(得分:1)

它开始为我工作,但经过一系列的试验。 :) 我正在使用Drupal 6&amp;我犯了为Drupal 5编写代码的错误。我在我的node-minister-edit.php中使用form_render(用于D5)代替drupal_render(用于D6)。

而template.php的下一个变化是功能

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

请参阅数组参数template已从minister更改为node-minister-edit,这是我的节点特定模板文件。在minister_node_form中,第一个单词'部长'是我的内容类型。

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

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

答案 3 :(得分:0)

首先,看看Drupal没有缓存您的模块。转到管理&gt;网站配置&gt;性能,并清除所有缓存。

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