1

Drupal6には、基本的にHTMLで次のようなブロック(階層メニュー構造)があります。

<div class="block block-menu_block" id="block-menu_block-1">
<div class="content">
    <div class="menu-block-1 menu-name-menu-navigation parent-mlid-0 menu-level-1">
    <ul class="menu">
        <li class="leaf first menu-mlid-248 active active-trail"><a class="active-trail active" title="" href="/">Start</a></li>
        <li class="expanded menu-mlid-249 active"><a class="active" title="" href="/">Aktuell</a>
            <ul class="menu">
                <li class="leaf first menu-mlid-259">
                    <a title="News und Presse" href="/news-und-presse">News and Press</a>
                </li>...

私が取得したいのは、実際にははるかに単純です。

<div id="topmenu">
    <ul class="one">
    <li>some main entry
        <ul>
        <li>
            some sub entry ...

または多分:

<div id="topmenu">
    <h2>some main entry</h2>
        <h3><a href="#">some sub entry</a></h3>
        <h3><a href="#">another sub entry</a></h3>
    <h2>another main entry</h2>

したがって、構造を維持しながら、必要に応じて、より単純で完全に異なるタグを使用できるようにします。私はdrupalのドキュメントから、私が(多分)見ていることを理解していると思います

<div class="block block-menu_block"
id="block-menu_block-1"

==>     module := menu_block
    delta  := 1 (?)

残念ながら、提案されたものはありません

  • ブロック-[モジュール]-δ.tpl.php
  • ブロック-[モジュール].tpl.php
  • ブロック-[region].tpl.php

page.tpl.phpの隣に配置され(はい、キャッシュをクリアしました)、影響があります。大きくて光沢のあるHELLOWORLDが入っていても、運が悪い...

何をどのようにオーバーライドする必要がありますか?(理想的には、ある種の再帰関数ですか?)

ありがとうございました!

4

2 に答える 2

1

独自のカスタムテーマのテーマ関数とテンプレートをオーバーライドすることで、すべてのhtml出力を制御できます。方法については、ドキュメントをお読みください: http: //drupal.org/node/341628

つまり、これがDrupalについて本当に気になる場合は、頭痛の種を避けて、別のCMS/フレームワークを選択することをお勧めします。Drupalは、ユースケースの95%に十分なdivとクラスを持つ汎用HTMLを生成するように設計されています。クリーンで最小限のHTMLを実現できますが、時間がかかる場合があります。

于 2011-06-30T19:59:02.883 に答える
0

develとテーマ開発者モジュールをインストールできます。次に、テーマ開発者を刺激し、左下隅でスイッチをオンにできます。ブロックをポイントすると、どのテンプレートが使用されているか、またはコードを生成するのが関数であるかどうか、上書きに名前を付けるために使用する関数について多くの情報が得られます。

于 2011-06-30T16:07:26.903 に答える