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