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 (?)

遗憾的是,没有一个建议

  • 块-[模块]-[delta].tpl.php
  • 块-[模块].tpl.php
  • 块-[区域].tpl.php

放在 page.tpl.php 旁边(是的,我确实清除了缓存),有任何影响。即使里面只有一个大而闪亮的 HELLO WORLD... 运气不好...

我需要覆盖什么以及如何覆盖?(理想情况下是某种递归函数?)

谢谢!

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 回答