0

我只是试图创建一个模块名称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;
}

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

4

1 回答 1

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密钥应该只是模板文件名。文件:

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

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

希望这会有所帮助!

于 2013-05-16T15:46:28.130 回答