joomla делаем заголовок модуля ссылкой — хак движка

modules2Что бы сделать заголовок модуля joomla ссылкой, необходимо выполнить следующие операции:

Сначала копируем файл вывода модулей modules.php из templates/system/html в папку html вашего шалона.

Это делается для того что бы не вмешиваться в код движка, и другие модификации и обновления проходили ровно. Joomla сама найдет файл вывода модуля в вашем шаблоне.

Скопировали, открываем файл лежащий в вашем шаблоне modules.php

Для типа модулей xhtml ищем:

<h3><span><?php echo $module->title; ?></span></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 }?>

Для других типов вывода модулей делаем по аналогии.

Теперь переходи к админке. Нам же нудно где то вбивать этти самые ссылки..

Открываем administrator/components/com_modules/admin.modules.html.php

Ищем код
<tr>
<td width="100">
<?php echo JText::_( 'Show title' ); ?>:
</td>
<td>
<?php echo $lists['showtitle']; ?>
</td>
</tr>
и сразу после него добавляем еще одну строку в таблицу, следующим кодом.<tr>
<td>
<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>
<label for="isweblink">
<?php echo JText::_( 'WEBLINK' ); ?>
</label>
</td>
<td id="isweblink" <?php echo $dis ?>>
<input type="text" name="params[isweblink]" size="35" value="<?php echo $params->get('isweblink', ''); ?>" />
</td>
</tr>