私が作成しているDrupal 7テーマのHTML出力を変更しようとしています。
基本的に、テキストを含む単純な<a>を含む<li>の代わりに、<a>内に追加のHTMLを含めたいと思います。
Drupalのメニューで作成されたHTMLを変更できることは知っています。 page.tpl.phpで次の呼び出しを確認できます。
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(
'id' => 'main-menu',
'class' => array('links', 'clearfix'),
),
'heading' => array(
'text' => t(''),
'level' => 'h2',
'class' => array('element-invisible'),
),
)); ?>
出力を作成するテーマ関数を呼び出します。出力を変更する1つの方法は、theme.incのtheme_links関数を変更することですよね?
http://api.drupal.org/api/drupal/includes--theme.inc/function/theme_links
また、template.phpにフックを配置して、HTMLを作成する関数をオーバーライドできることも知っています。実際のオーバーライド関数を作成する方法がわかりません。誰かが私を正しい方向に向けることができますか?
あなたがすることは、「theme.inc」ファイルを直接変更するのではなく、出力を変更するためのフックを実装することです。
たとえば、このページで受け入れられた回答: Drupal Override Custom Menu Template
そして、一般的なルールとして、何かの出力を変更したい場合は、 フックを実装 (モジュール内またはアクティブなテーマのtemplate.php内)または template事前定義されたファイル名で このようなケースが存在する場合(テンプレートがまだ存在しない場合、 テンプレートの候補のリストを変更する モジュールまたはテーマを使用して).