Drupal と Drupal テーマの開発は初めてです。drupal テンプレートをオーバーライドする方法を学んだ後、drupal 7 のテーマ関数をオーバーライドする方法を知りたいと思いました。ノードからUsing the theme layer、私が学んだ次のこと:
- モジュール内のすべてのフックに対して、フック関数を登録する必要があります
- 関数の戻り配列に定義されている場合、実装は「テンプレート」ファイルです。その他の実装は関数によるものです。
本に従って、A definative guide to Drupal 7
テーマ関数をオーバーライドするには 1. テーマ関数をコピーして、テーマの template.php ファイルに貼り付けます 2. ファイル名の先頭を からtheme_
3に変更しyourtheme_
ます。保存 例を挙げると、次の関数をオーバーライドします。
function theme_more_link($variables) {
return '<div class="more-link">' . l(t('More'), $variables['url'], array('attributes' => array('title' => $variables['title']))) . '</div>';
}
comment_help()
でテーマ関数をオーバーライドしたい場合comment.module
:
function comment_help($path, $arg) {
switch ($path) {
case 'admin/help#comment':
$output = '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('The Comment module allows users to comment on site content, set commenting defaults and permissions, and moderate comments. For more information, see the online handbook entry for <a href="@comment">Comment module</a>.', array('@comment' => 'http://drupal.org/documentation/modules/comment/')) . '</p>';
$output .= '<h3>' . t('Uses') . '</h3>';
$output .= '<dl>';
$output .= '<dt>' . t('Default and custom settings') . '</dt>';
$output .= '<dd>' . t("Each <a href='@content-type'>content type</a> can have its own default comment settings configured as: <em>Open</em> to allow new comments, <em>Hidden</em> to hide existing comments and prevent new comments, or <em>Closed</em> to view existing comments, but prevent new comments. These defaults will apply to all new content created (changes to the settings on existing content must be done manually). Other comment settings can also be customized per content type, and can be overridden for any given item of content. When a comment has no replies, it remains editable by its author, as long as the author has a user account and is logged in.", array('@content-type' => url('admin/structure/types'))) . '</dd>';
$output .= '<dt>' . t('Comment approval') . '</dt>';
$output .= '<dd>' . t("Comments from users who have the <em>Skip comment approval</em> permission are published immediately. All other comments are placed in the <a href='@comment-approval'>Unapproved comments</a> queue, until a user who has permission to <em>Administer comments</em> publishes or deletes them. Published comments can be bulk managed on the <a href='@admin-comment'>Published comments</a> administration page.", array('@comment-approval' => url('admin/content/comment/approval'), '@admin-comment' => url('admin/content/comment'))) . '</dd>';
$output .= '</dl>';
return $output;
}
}
どうすればいいですか?その名前は から始まっていませんtheme_
。