0

我是 Joomla 的新手,并被要求将非 Joomla 网站转换为使用 Joomla。

该站点的结构类似于手风琴菜单,其中页面内容显示在页面链接下方,如下所示:

点击第1条链接:

╔════════════════╦══════════════════════╗
║ Article 1 Link ║                      ║
║                ║ Content of article 1 ║
║ Article 2 Link ║                      ║
║ Article 3 Link ║                      ║
║ Article 4 Link ║                      ║
║ Article 5 Link ║                      ║
╚════════════════╩══════════════════════╝

点击第三条链接:

╔════════════════╦══════════════════════╗
║ Article 1 Link ║                      ║
║ Article 2 Link ║                      ║
║ Article 3 Link ║                      ║
║                ║ Content of article 3 ║
║ Article 4 Link ║                      ║
║ Article 5 Link ║                      ║
╚════════════════╩══════════════════════╝

是否可以在 Joomla 2.5 中执行此操作?我很难理解如何,因为您可以拥有一个菜单模块,但是您将如何在该模块中显示文章内容?

理想情况下,文章内容<li>与菜单项相同,因此在 html 视图中:

<ul>
    <li><a href="#link1">Link 1</a></li>
    <li class="current"><a href="#link2">Link 2</a>
        <div>
            <!-- ARTICLE CONTENT FOR Link 2 -->
        </div>
    </li>
    <li><a href="#link3">Link 3</a></li>
</ul>
4

2 回答 2

2

components/com_contact/contact/tmpl/default.php 中有一个示例,该示例从第 50 行(给予或接受)开始,展示了如何使用内置的 JHtml 手风琴(在 Joomla 中称为 Sliders)。如果您想从 mod_menu 的副本构建一个新模块,您可以使用该代码作为示例。

不过,首先,我建议您尝试一些扩展,因为 JED 上有许多 Accordion Menus 可用。如果不出意外,您将获得有关如何最好地实施的想法。http://extensions.joomla.org/extensions/structure-a-navigation/menu-systems/accordion-menus

于 2013-01-29T17:52:13.370 回答
0

我通过将 mod_menu 文件复制到MYTEMPLATE/html/mod_menu/CUSTOMMENUNAME.php

然后我将其添加到 for 循环中:

if ($item->id == $active_id) {

这让我可以看到当前正在查看哪个页面。在 rcarey 的大力帮助下,The Joomla!论坛,我在 mod_menu 文件的顶部添加了这个:

require_once JPATH_SITE.'/components/com_content/helpers/route.php';
JModelLegacy::addIncludePath(JPATH_SITE.'/components/com_content/models', 'ContentModel');

// Get an instance of the model for getting an article
$model = JModelLegacy::getInstance('Article', 'ContentModel', array('ignore_request' => true));
// Set application parameters in model
$app = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);

然后在 mod_menu 循环中,我所要做的就是:

$article = $model->getItem($item->id)

现在我可以$article在 mod_menu 的循环中使用。

于 2013-02-25T10:40:31.193 回答