如何在drupal6中创建自定义主题并将模板应用于它

时间:2013-05-16 14:35:17

标签: php drupal-6 drupal-modules drupal-theming

我刚刚尝试创建模块名mymodule,并尝试在drupal6中将该主题应用于该模块。

我为我的模块添加了.info文件,并在我的主题文件夹中创建了mymodule.tpl.php文件,并从管理员启用了该模块。但是当我通过url访问模块时,它会返回白页。

我的mymodule.module.php文件包含

function mymodule_menu() {
  $items = array();

  $items['mymodule'] = array(
    'page callback' => 'mymodule_page',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

function mymodule_page() {
  $result = db_query('SELECT * from node');
  return theme('mymodule', array('output' => $result));
}

function mymodule_theme() { 
  $content =  array(
    'custom' => array(
      'arguments' => array('output' => 'NULL'),
       'template' =>  path_to_theme() . '/mymodule',
      'path' => '/'
     ),
  );
  return $content;
}

我不知道为什么主题不适用于我的模块。请帮忙。

1 个答案:

答案 0 :(得分:1)

我认为问题是pathtemplate键。

来自Drupal文档(http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_theme/6):

  

path:覆盖要使用的文件的路径。通常是模块   或将使用主题路径,但如果文件不是默认值   路径,包括在这里。此路径应相对于Drupal根目录   。目录

所以你用/覆盖模块路径,这应该导致Drupal根文件夹(其中没有mymodule.tpl.php)。尝试删除path密钥。

此外,template密钥应仅为模板文件名。文件:

  

模板:如果指定,则此主题实现是一个模板,并且   这是没有扩展名的模板文件。

因此,请尝试删除path_to_theme部分,因为您必须提供模板文件名,而不是模板的完整路径(使用path_to_theme函数提供)。

希望这会有所帮助!