修改Joomla自定义模块的HTML结构

时间:2009-07-24 15:34:45

标签: joomla

我需要修改joomla模块的HTML结构。我想创建我的自定义模块,我需要在其内容下面显示标题。 这是当前的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是可能的。如果有人有一个简单的实施解决方案,请帮助。

5 个答案:

答案 0 :(得分:2)

@ Cruising2hell如果你想在同一个位置上有替代模块布局你尝试过使用模块后缀参数吗?像这样......

<?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;

}

答案 1 :(得分: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

答案 2 :(得分: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 */

答案 3 :(得分:0)

我不能称之为问题。

转到主css文件并插入以下代码:

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

/ *将正确的高度值放在h3模块标题到达模块内容底部* /

的位置

: - )

答案 4 :(得分:0)

可以修改$ module-&gt;内容的返回值吗?因为,如果模块是一种菜单,则渲染为:

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

如果我需要在<ul>内放一个class =“list-inline”并删除ul标签的导航和菜单样式。

相关问题