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 に答える