Добавление Anchor к каждому модулю в Joomla 3.1

Я пытаюсь изменить код шаблона модуля, чтобы добавить привязку к заголовку каждого модуля. У меня крайне ограниченные знания 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>';
}

1

Решение

У Joomla есть простой способ настроить внешний вид модуля.

Вы должны использовать Кастомный модуль хром.

Вы должны создать 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>';
}
?>

В приведенном выше коде модуль получает идентификатор moduleclass_sfx значение. Вы можете изменить его и установить другую переменную модуля.

Чтобы использовать этот вид, вы должны установить соответствующий style к шаблону модуля звонит как: <jdoc:include type="modules" name="user1" style="custom" />

Если вы хотите использовать другое имя стиля, вы должны изменить функцию modChrome_custom в modChrome_NEWSTYLE,

Удачи!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]