0

我正在尝试为QuickApps CMS制作一个新主题。当我尝试回显时:

<?php echo $this->Block->region('user-menu'); ?>

要在新的主题布局中呈现用户菜单,它会做两件事:

  1. 打印出名为“用户菜单”的菜单的标题,而在默认主题中它不打印此标题。

  2. 此外,它还打印不同的 HTML,如下所示

我的新主题输出

<div id="qa-block-5" class="qa-block qa-block-unique qa-block-menu">

  <div id="block_5" class="block block-Menu delta-user-menu ">

       <h2> User Menu </h2>

         <div class="content">
            <ul>
            <li id="menu-item-22" class="first-item menu-item-22"><a href="/4test/quick-apps/user/my_account" target="_self"><span>My account</span></a>    </li>
            <li id="menu-item-23" class="last-item menu-item-23"><a href="/4test/quick-apps/user/logout" target="_self"><span>Logout</span></a> </li>
        </ul>
            </div>
            </div>
</div>

默认主题输出

<div id="user-menu">
                    <div id="qa-block-5" class="qa-block qa-block-unique qa-block-menu">
<ul>
    <li id="menu-item-22" class="first-item menu-item-22"><a href="/4test/quick-apps/user/my_account" target="_self"><span>My account</span></a>    </li>
    <li id="menu-item-23" class="last-item menu-item-23"><a href="/4test/quick-apps/user/logout" target="_self"><span>Logout</span></a> </li>
</ul>
</div>              </div>

我试图找到处理此 HTML 的任何元素,但我找不到。我需要知道的是如何根据我的新主题更改菜单的输出?即更改其HTML 结构,包括样式类名称。

4

1 回答 1

2

如果您需要自定义输出,您的主题可以实现“theme_block”视图元素,它会在渲染每个块时使用。

在这里你可以看到“默认主题”的实现:

https://github.com/QuickAppsCMS/QuickApps-CMS/blob/1.1/QuickApps/View/Themed/Default/Elements/theme_block.ctp

QuickApps 在渲染时使用一系列视图元素,如果您的主题未实现此核心的任何元素,则默认使用此核心元素。在这里,您可以看到您的主题可能实现的元素列表:

https://github.com/QuickAppsCMS/QuickApps-CMS-Docs/blob/1.x/eng/designers/themes.md#rendering-elements

此致!/克里斯


PS:顺便说一句,v2.0 会有很大的变化,敬请期待。例如块和区域现在是对象,你现在可以做一些漂亮的事情,例如:

$this->region('main-menu')
    ->merge($this->region('other-region'))
    ->blockLimit(5);
于 2014-08-19T17:46:40.167 回答