LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 06:05:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Заголовки модулей ссылками  (Прочитано 1061 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lcd25
Давно я тут
****

Репутация: +26/-0
Offline Offline

Сообщений: 374



« : 28.04.2011, 22:27:03 »

Поскольку встал такой вопрос, выложу небольшой хак.

Файл 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>
Это примерно 286 - 293, и ниже вставляем следующий код
Код:
<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>

Затем в шаблоне в файле /html/modules.php правим свой стиль модуля. Например, если стиль XHTML, то в файле /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 }?>

В результате в админпанели имеем возможность сделать заголовок модуля ссылкой.

« Последнее редактирование: 29.04.2011, 00:03:36 от lcd25 » Записан
slepoy
Завсегдатай
*****

Репутация: +16/-0
Offline Offline

Сообщений: 489


Тотальная шизофазия


« Ответ #1 : 29.04.2011, 07:32:23 »

Здравствуйте. Проделал это с Joomla 1.5.23. В админке появилось необходимое поле, но из-за специфики файла modules.php, хак не сработал (вернее, я его неверно применил).
Взгляните, пожалуйста, на его содержимое:
Код:
<?php

defined('_JEXEC') or die('Restricted access');



function modChrome_xhtmlleft($module, &$params, &$attribs)
{
if (!empty ($module->content)) : ?>
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>

<h3><span><?php echo $module->title; ?></span></h3>

<?php endif; ?>
<div class="moduletable_inner"><?php echo $module->content; ?></div>
</div>
<?php endif;
}

function modChrome_tptoggle($module, &$params, &$attribs)
{
?>
<div class="<?php if ($module->showtitle != 0) : ?>tpmod <?php endif; ?>moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3 class="show" id="tpmod<?php echo $module->id; ?>"><span><?php echo $module->title; ?></span></h3>
<?php endif; ?>
<div<?php if ($module->showtitle != 0) : ?> class="tpmod-content"<?php endif; ?>><?php echo $module->content; ?></div>
</div>
<?php
}
?>
Стиль для модулей в позиции - XHTML.

Обновлено: Как это сделать минуя файл мойшаблон/html/modules.php ? Куда вносить изменения? Спасибо.
« Последнее редактирование: 29.04.2011, 07:41:30 от slepoy » Записан
flyingspook
Живу я здесь
******

Репутация: +91/-12
Offline Offline

Сообщений: 1289


« Ответ #2 : 29.04.2011, 11:17:29 »

slepoy
решение простое
либо в файле мойшаблон/html/modules.php
ибо в файле template/system/html/modules.php
но лучше положить modules.php в мойшаблон/html/
чтобы при обновлении движка не было проблем

<h3><span><?php echo $module->title; ?></span></h3> - это твоя строка вывода хагоовка
меняешь ее на
<h3><a href="'.$params->get('linkto').'"><span><?php echo $module->title; ?></span></a></h3>

вывод поля в модуле делаешь в каком надо открываешь
*.xml -файл своего модуля и прописываешь там строчку

<param name="linkto" type="text" default="" label="Ссылка" description="Ссылка для заголовка" />
и все есть поле для ввода урла

главное параметр указывай правильно <a href="'.$params->get('linkto').'"> = name="linkto" - выделеное должно быть одинаковое
<h3><a href="'.$params->get('linkto').'"><span><?php echo $module->title; ?></span></a></h3>
<param name="linkto" type="text" default="" label="Ссылка" description="Ссылка для заголовка" />
Записан
lcd25
Давно я тут
****

Репутация: +26/-0
Offline Offline

Сообщений: 374



« Ответ #3 : 29.04.2011, 13:44:39 »

slepoy, стиль XHTML прописан в файле 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 }?>
« Последнее редактирование: 29.04.2011, 14:18:09 от lcd25 » Записан
slepoy
Завсегдатай
*****

Репутация: +16/-0
Offline Offline

Сообщений: 489


Тотальная шизофазия


« Ответ #4 : 29.04.2011, 14:21:51 »

Спасибо за ответы. К сожалению ничего не вышло. Joomla 1.5.23 с включенным стандартным SEO.

Первый вариант:
1) внес измения в файл administrator/components/com_modules/admin.modules.html.php
после чего поле "ссылка" появилась во всех модулях.
2) сделал замену в файле /html/modules.php моего шаблона
3) выставил ссылку вида read.html , http://мойсайт.ru/read.html - не помогло
=> ничего не вышло.

Вторая попытка:
1) ----- то же самое что при первой
2) внес изменения в template/system/html/modules.php и удалил modules.php из шаблона сайта
=> не помогло

Третья попытка:
1) внес изменения в *.xml файл конкретного модуля
2) внес изменения в template/system/html/modules.php и удалил modules.php из шаблона сайта
=> не помогло

При выключенном сео ссылка тоже не формируется (возможно я неверно указал ссылку?).
Записан
lcd25
Давно я тут
****

Репутация: +26/-0
Offline Offline

Сообщений: 374



« Ответ #5 : 29.04.2011, 14:25:56 »

Никаких изменений в .xml файл конкретного модуля вносить не нужно. Удалять тоже. Посмотрите стиль вывода модулей в своем шаблоне. Найдите этот стиль в файле modules.php. Измените вывод заголовка. Все написано в первом посте.
Записан
slepoy
Завсегдатай
*****

Репутация: +16/-0
Offline Offline

Сообщений: 489


Тотальная шизофазия


« Ответ #6 : 29.04.2011, 14:41:42 »

lcd25, спасибо, все работает! Вместо того, чтобы
Цитировать
ниже вставляем следующий код
я по глупости заменил.
Записан
tati-2000
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« Ответ #7 : 16.07.2011, 19:09:09 »

Это код отвечающий за отображение заголовков в модуле,

Код:
<?php // example: simple angled module ?>
<div class="module <?php echo $style; ?> <?php echo $color; ?> <?php echo $yootools; ?> <?php echo $first; ?> <?php echo $last; ?>">

<?php echo $badge; ?>

<div class="box-1 deepest">

<?php if ($showtitle) : ?>
<h3 class="header"><span class="header-2"><span class="header-3"><?php echo $title; ?></span></span></h3>
<?php endif; ?>

<?php echo $content; ?>

</div>

</div>

но когда заменяю строку (<h3 class="header"><span class="header-2"><span class="header-3"><?php echo $title; ?></span></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 }?>

Страница выдает ошибку - Fatal error: Call to a member function get() on a non-object in /home/virtwww/w_recepty_rece-com_b7cf6451/http/templates/yoo_corona/warp/layouts/modules/0-1-0.php on line 9

изменения в файлах modules.php  ничего не дали
Записан
theWurm
Осваиваюсь на форуме
***

Репутация: +0/-8
Offline Offline

Сообщений: 73


« Ответ #8 : 05.10.2011, 09:27:37 »

А если этого стиля в файле module.php нет? Как его туда добавить?
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet