17

作成中の 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 を作成する関数をオーバーライドできることも知っています。実際のオーバーライド関数を作成する方法がわかりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

18

「theme.inc」ファイルを直接変更するのではなく、出力を変更するフックを実装します。

たとえば、このページで受け入れられている回答: Drupal Override Custom Menu Template


また、原則として、何かの出力を変更したい場合は、(モジュール内またはアクティブなテーマの template.php 内に)フックを実装するか、そのような場合は定義済みのファイル名を持つテンプレートを使用します (テンプレートがまだ存在しない場合は、モジュールまたはテーマを使用してテンプレートの提案のリストを変更することもできます)。

于 2011-03-05T00:40:23.117 に答える