我正在尝试修改模块模板代码,以便为每个模块的标题添加一个锚点。我的PHP知识非常有限,因此任何指导都会非常有用。
我发现了使用文章执行此操作的帖子,但模块的代码似乎非常不同。
这是我的模块模板中的代码。
function modChrome_basic($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<?php echo $module->content; ?>
<?php endif;
}
function modChrome_standard($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<div class="rt-block <?php if ($params->get('moduleclass_sfx')!='') : ?><?php echo $params->get('moduleclass_sfx'); ?><?php endif; ?>">
<div class="module-surround">
<?php if ($module->showtitle != 0) : ?>
<div class="module-title">
<?php
echo '<h2 class="title">';
if (preg_match("/icon[-]{1,}/i", $params->get('moduleclass_sfx'))) :
echo '<span class="title-icon ' .getIconClass($params->get('moduleclass_sfx')). '"></span>';
endif;
echo $module->title;
echo '</h2>';
?>
</div>
<?php endif; ?>
<div class="module-content">
<?php echo $module->content; ?>
</div>
</div>
</div>
<?php endif;
} 这是我试过的代码
if( strlen($this->item->params->get('title')) > 0 ) {
echo '<a name="'.$this->item->params->get('title').'"></a>';
}
我也试过
if( strlen($module->item->params->get('title')) > 0 ) {
echo '<a name="'.$module->item->params->get('title').'"></a>';
}
答案 0 :(得分:0)
Joomla可以轻松自定义模块外观。
您必须使用Custom module chrome。
您必须在modules.php
下创建一个/templates/TEMPLATE_NAME/html/modules.php
文件。
在此文件中,您必须放置:
<?php
function modChrome_custom( $module, &$params, &$attribs ) {
echo '<div id="' .$params->get( 'moduleclass_sfx' ) .'" >';
if ($module->showtitle)
{
echo '<h' .$headerLevel .'>' .$module->title .'</h' .$headerLevel .'>';
}
echo '<div class="module_content">';
echo $module->content;
echo '</div>';
echo '</div>';
}
?>
在上面的代码中,模块ID获取moduleclass_sfx
值。您可以更改它并设置另一个模块变量。
要使用此外观,您必须将相应的style
设置为模板模块调用,如:<jdoc:include type="modules" name="user1" style="custom" />
如果您想使用其他样式名称,则必须将功能从modChrome_custom
更改为modChrome_NEWSTYLE
。
祝你好运!