Joomla заголовок модуля как ссылка | Joomla
Скопипастим себе статью http://bigemot.ru/portfolio/6-coding/14–joomla- поскольку метод работает и вполне удачен. Себе и другим на заметку.
Задача – сделать заголовки модулей ссылками.
Правим файл administrator/components/com_modules/admin.modules.html.php
Ищем:
<tr>
<td width="100" class="key">
<?php echo JText::_( 'Show title' ); ?>:
</td>
<td>
<?php echo $lists['showtitle']; ?>
</td>
</tr>
Сразу за этим блоком кода вставляем:
<tr>
<td class="key">
<label for="islink">
<?php echo JText::_( 'Title' ).' '.JText::_( 'WEBLINK' ).'?'."\n"; ?>
</label>
</td>
<td>
<?php if ($params->get('islink', '') == 2){
$ch2= 'checked="checked"'; $ch1=''; $dis='';
}else{
$ch1= 'checked="checked"'; $ch2=''; $dis='style="visibility:hidden"';
} ?>
<input type="radio" name="params[islink]" value="1" onclick="togl(1);" <?php echo $ch1 ?>/> <?php echo JText::_( 'NO' )."\n"; ?>
<input type="radio" name="params[islink]" value="2" onclick="togl(2);" <?php echo $ch2 ?>/> <?php echo JText::_( 'YES' )."\n"; ?> <script language="javascript" type="text/javascript">
<!--
function togl(k){
if (k==1){
document.getElementById("isweblink").style.visibility="hidden";
}else{
document.getElementById("isweblink").style.visibility="visible";
}
}
//-->
</script> </td>
</tr>
<tr>
<td class="key">
<label for="isweblink">
<?php echo JText::_( 'WEBLINK' ); ?>
</label>
</td>
<td id="isweblink" <?php echo $dis ?>>
<input class="text_area" type="text" name="params[isweblink]" size="35" value="<?php echo $params->get('isweblink', ''); ?>" />
</td>
</tr>
Он обеспечивает нам в админке возможность активизировать заголовок модуля как ссылку.
Далее идём править заголовок в модуле. Правим файл templates/system/html/modules.php:
<h3><?php echo $module->title; ?></h3>
Меняем на:
<?php if($params->get('islink') == 2){
echo '<h3><a href="'.$params->get('isweblink').'">'.$module->title.'</a></h3>'."\n";
}else{?>
<h3><?php echo $module->title; ?></h3>
<?php }?>
Получаем возможность добавить ссылку в заголовок модуля.
Далее идём в каскад шаблона и правим стиль ссылки. Например так:
.moduletable-custom a {
color: #FFFFFF;
text-decoration:none;
}
Автору хака – особая блгодарность.
Помогите пожалуйста решить проблему: в админке всё прекрасно получилось, а вот сам заголовок ссылкой так и не стал. Стоит Advanced Modules, первый пункт, где предлагается менять по адресу administrator/components/com_modules/admin.modules.html.php то мне не помогло, в админке всё заработало после изменения файла administrator/components/com_advancedmodules/admin.advancedmodules.html.php , а вот заголовок ссылкой так и не стал
Изменения в шаблон внесли?
В этот файл: templates/system/html/modules.php
Да внёс, и ешё внёс в templates/мой сайт/html/modules.php, но не заработало
Такой код получился
/*
* xhtml (divs and font headder tags)
*/
function modChrome_xhtml($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<div class="moduletableget(‘moduleclass_sfx’); ?>»>
showtitle != 0) : ?>
get(‘islink’) == 2){
echo ‘get(‘isweblink’).’»>’.$module->title.’‘.»\n»;
}else{?>
title; ?>
content; ?>
<div class="moduleget(‘moduleclass_sfx’); ?>»>
showtitle != 0) : ?>
get(‘islink’) == 2){
echo ‘get(‘isweblink’).’»>’.$module->title.’‘.»\n»;
}else{?>
title; ?>
content; ?>
addStyleDeclaration($css);
?>
position.»[".$module->style."]«; ?>
content; ?>
Простите за флуд, видимо в коментах обрезает
Если ошибок нет – должно работать. На всякий случай – учтоню – у меня joomla 1.5,
в templates/system/html/modules.php меняем срочки для всех вариантах модулей – в зависимости от того какие из них использует ваш темплейт – это может быть modCrome_table, modCrome_xhtml, modCrome_rounded и т.д.
Спасибо большое, всё заработало
1.5, все по инструкции, и не работает :( Беда.
Здравствуйте. Уже перерыл все. Помогите. Не могу прикрутить вот это к этому:
function modChrome_artblock($module, &$params, &$attribs)
{
if (!empty ($module->content))
echo artxBlock(($module->showtitle != 0) ? $module->title : », $module->content,
$params->get(‘artx-module-classes’));
}
Отображается без «блока», т.е. просто ссылка без стилей, если сделать так:
function modChrome_artblock ($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<div class="moduletableget(‘moduleclass_sfx’); ?>»>
showtitle != 0) : ?>
get(‘islink’) == 2){
echo ‘get(‘isweblink’).’»>’.$module->title.’‘.»\n»;
}else{?>
title; ?>
content; ?>
<?php endif;
}
Помогите, пожалуйста.