侧栏模块位置内每个模块的不同框

时间:2012-09-04 09:16:36

标签: joomla joomla2.5

我制作了Joomla 2.5模板。您可以访问以下网站:www.ranfar.com。

查看侧边栏的代码。到现在为止,我有类似的东西:

<div id="sidebar">
    <!-- Here starts the first widget -->
    <h3>Widget title</h3>
    <ul>......... <!-- Module content --> ..........</ul>
    <!-- Here starts the second module -->
    <p>.... <!-- Second module content --> .........</p>
</div>

正如您所看到的,我没有为每个小部件设置单独的框。我希望得到以下内容:

<div id="sidebar">
    <!-- Here starts the first module -->
    <div class="sidebar-module-box">
         <h3>Module title</h3>
         <ul>......... <!-- Module content --> ..........</ul>
    </div>
    <!-- Here starts the second module -->
    <div class="sidebar-module-box">
         <p>.... <!-- Second module content --> .........</p>
    </div>
</div>

通过这种方式,我可以为模块框设置类的样式。 我如何实现这样的模板?我在哪里添加它?这是我在index.php中生成侧边栏的代码:

<?php if($this->countModules('ranfar-rightsidebar')) : ?>
    <div id="right-sidebar" class="float-right">
        <jdoc:include type="modules" name="ranfar-rightsidebar" style="sidebar" />
    </div> 
<?php endif; ?>

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。

我必须打开文件/templates/THEME/html/modules.php,其中THEME是我主题的名称。有如下函数:

function modChrome_sidebar($module, &$params, &$attribs)
{
    if (!empty ($module->content)) : ?>
        <?php if ($module->showtitle) : ?>
            <h3><?php echo $module->title; ?></h3>
        <?php endif; ?>
        <?php echo $module->content; ?>
    <?php endif;
}

我必须改变它如下:

function modChrome_sidebar($module, &$params, &$attribs)
{
    if (!empty ($module->content)) : ?>
        <div class="module-box">
        <?php if ($module->showtitle) : ?>
            <h3><?php echo $module->title; ?></h3>
        <?php endif; ?>
        <?php echo $module->content; ?>
        </div>
    <?php endif;
}

现在每个模块都包含在一个带有“module-box”类的div中。

答案 1 :(得分:0)

在Joomla中,他们被称为模块(而不是小部件)。在XML文件中,您需要添加模块位置,如下所示:

<positions>
    <position>login</position>
    <position>search</position>
    <position>sidebar1</position>       
    <position>sidebar2</position>
    <position>etc...</position>
</positions>

在模板中,然后使用上面的代码添加每个模块位置:

<jdoc:include type="modules" name="sidebar1" style="xhtml" />

无论您身在何处,Joomla都会在其位置显示模块(下一段)。关于“风格”的快速说明 - 您可以制作custom one or use one of the ones Joomla has already depending on your markup need s。

然后,在模块管理器中,创建一个新模块并选择您希望它出现的位置。