2009-07-24 88 views
1

我需要修改joomla模块的HTML结构。我想创建我的自定义模块,我需要在其内容下方显示标题。 这是本HTML是默认格式(四舍五入):修改Joomla自定义模块的HTML结构

<div class="module_clipon"> 
<div> 
    <div> 
    <div> 
     <h3>Right Module</h3> 
     <p>This is the content</p>     
    </div> 
    </div> 
</div> 
</div> 

我需要上述HTML要像:

<div class="module_clipon"> 
    <p>This is the content</p> 
    <h3>This is the title</h3> 
</div> 

基本上以使模块内容下面的标题。在Joomla中操作模块的HTML的方式是什么?我相信它可以通过使用modChrome。如果有人有一个简单的实施解决方案,请帮助。

回答

1

您确实需要通过自定义模块chrome来处理这个问题。在您的模板文件夹中,如果文件夹不存在,请创建一个html文件夹。在此文件夹中,创建文件modules.php。然后用这个代码填充它:

<?php 

defined('_JEXEC') or die; 

function modChrome_titleonbottom($module, &$params, &$attribs) 
{ 
    echo '<p>' . $module->content . '</p>'; 
    echo '<h3>' . $module->title . '</h3>'; 
} 

最后,返回到您的模板,以这种铬适用于您的模块的位置:

<div class="module_clipon"> 
    <jdoc:include type="modules" name="left" style="titleonbottom"/> 
</div> 

使用任何模块位置的名字,你在name参数需要。请注意,style参数与modChrome_函数名称匹配。

欲了解更多信息: http://docs.joomla.org/What_is_module_chrome%3F http://docs.joomla.org/Applying_custom_module_chrome

+0

谢谢jlleblanc,你的回应很有帮助。但是我需要在同一个模块位置有其他模块,其上下都有默认的四舍五入布局(4 div div wrapping)。任何猜测如何做到这一点? – Cruising2hell 2009-07-30 19:18:59

2

@ Cruising2hell如果你想拥有的同一位置上的替代模块布局你尝试使用模块后缀PARAMS?像这样..

<?php 

defined('_JEXEC') or die; 

function modChrome_titleonbottom($module, &$params, &$attribs) 
{ 
    switch($params->get('moduleclass_sfx')) : 
    //My type of module 
    case 'titleonbottom': 
     echo '<p>'. $module->content . '</p>'; 
     echo '<h3>' . $module->title . '</h3>'; 
    break; 
    default: 
    //Normal 
     echo '<h3>' . $module->title . '</h3>'; 
     echo '<p>'. $module->content . '</p>'; 
    break; 
    endswitch; 

} 
+0

非常感谢......解决了我需要的内容..虽然我有另一个查询,是否有可能为文章组件提供类似的解决方案。如果我可以使用不同的HTML布局来实现文章,以在Joomla中实现“组合”类页面来显示项目,同时在一个页面上定期发布文章。我不知道,请建议什么是最好的解决方案,有一个项目页面,可以轻松地显示项目。它必须包含缩略图,项目细节和一些客户信息。 – Cruising2hell 2009-08-02 16:11:05

0

我不能说它是一个问题。

转到您的主CSS文件,插入下面的代码:

.module_clipon h3 { 
    position: absolute; 
    margin-top: 100px; 
    } 

/* put a right height value where your h3 module header reach the bottom of the module content */ 
0

我不能称之为问题。

去你的主css文件,并插入下面的代码:

.module_clipon h3 { 
     position: absolute; 
     margin-top: 100px; 
} 

/*把合适的高度值,其中您H3模块头部到达模块内容*/

:-)底部

0

可以修改$ module-> content的返回吗?因为,如果该模块是一种类型的菜单,渲染是:

<ul class="nav menu"><li>...</li></ul>

和例如如果我需要把一类=“列表内联”的<ul>内删除导航和ul标签的菜单样式。