我制作了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; ?>
答案 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。
然后,在模块管理器中,创建一个新模块并选择您希望它出现的位置。