Для того чтобы избавиться от ссылок на artio.net необходимо закомментировать строку
задания/обновления значения переменной $buf:
Для Joomla 1.0.x
1. Файл /administrator/components/com_sef/sef.class.php
2. Комментируем
//$buf = '<'.'d'.'i'.'v'.'>'.'<'.'a'.' '.'h'.'r'.'e'.'f'.'='.'"ссылка"'.'"'.'><'.'/'.'a'.'>'.'<'.'/'.'d'.'i'.'v'.'>'; |
Для Joomla 1.5.x
1. Файл /components/com_sef/joomsef.php
2. Комментируем
//$buf. = '<'.'d'.'i'.'v'.'>'.'<'.'a'.' '.'h'.'r'.'e'.'f'.'='.'"ссылка"'.'"'.'><'.'/'.'a'.'>'.'<'.'/'.'d'.'i'.'v'.'>'; |
Artio JoomSEF 3.5.0:
1. Файл тот же.
2. Надо обнулить переменную $cacheBuf2 = '';
Мне встречались следующие условия вывода:
<?php if($this->countModules('позиция_для_публикации')) : ?>
<div id="search2">
<jdoc:include type="modules" name="позиция_для_публикации" />
</div>
<?php endif; ?> |
Стандартное условие вывода модулей. Дословный смысл:
Если есть опубликованный модули в позиции «позиция_для_публикации», то выводить контейнер div с модулем внутри.
<?php if(!$tmpTools->isFrontPage()) : ?>
<div id="pathway">
<jdoc:include type="module" name="позиция_для_публикации" />
</div>
<?php endif ; ?> |
Это условие на главную страницу. То есть если мы загрузили/не загрузили главную страницу, то выводить/не выводить
модуль в позиции «позиция_для_публикации».
Примеры:
<?php if(!$tmpTools->isFrontPage()) : ?>
<div id="pathway">
<jdoc:include type="module" name="breadcrumbs_advanced" />
</div>
<?php endif ; ?> |
Смысл: не выводить «pathway» (он же «путь по сайту») на главной странице, что вполне логично.
<?php if(!$tmpTools->isFrontPage()) : ?>
<jdoc:include type="component" />
<?php endif ; ?> |
Не выводить компоненты на главной. Например, для создания вместо «главной» промо-страницы, без статей, блогов и прочего.
Как скрыть колонку и показать модуль только на страницах определенного типа
Небольшая инструкция:
В начальной части index.php шаблона (можно сразу после тега
и обязательно после строчки defined( '_JEXEC' ) or die( 'Restricted access' );) объявить следующие параметры:
<?php
$option = JRequest::getVar('option', null);
$view = JRequest::getVar('view', null);
$task = JRequest::getVar('task', null);
$layout = JRequest::getVar('layout', null);
?> |
Эти переменные могут быть использованы для распознавания компонентов их «задач», вьюх и шаблонов вывода.
Определив колонку которую необходимо скрыть и соответствующие для это условия можно добавить в шаблон сайта следующий блок кода:
<?php if( ($this->countModules('right') ) && ($option!='com_fireboard' && $option!=
'com_artforms' && !($view=='article' && $task=='edit') && !($option=='com_content'
&& $view=='article' && $layout=='form'))) : ?>
<div id="right"><jdoc:include type="modules" name="right" style="xhtml" /></div></div>
<?php endif; ?> |
В результате правая колонка не показывается если активный компонент либо FireBoard либо ArtForms или статья находится в режиме редактирования.
Этот пример может быть применен во многих других ситуациях если разобраться какие части URL определяют параметры option, task, view and/or layout. Для примера приведем URL с параметрами использованными в нашем условии чуть выше:
/index.php?Itemid=62&option=com_fireboard
/index.php?task=edit&Itemid=71&option=com_content&id=56%3Amyarticletitle&view=article |
Версия на английском: Hide column to avoid width issues
Еще пример: как показать модуль только на странице полного просмотра статьи:
<?php if ($view != 'article') { ?>
<jdoc:include type="modules" name="footer" />
<?php } else {} ?> |
Зачастую появляется желание сделать заголовок модуля ссылкой.
Реализовать это в Joomla 1.5.x довольно просто:
- Найти файл /templates/имя_шаблона/html/modules.php. Насколько я понял он отвечает за стили отображения модулей.
- Добавить в него функцию следующего вида:
<?php
function modChrome_xhtmlwithlink($module, &$params, &$attribs)
{
$headerLevel = "3";
if (!empty ($module->content)) : ?>
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle) : ?>
<?php if($module->id == 43) : ?>
<h<?php echo $headerLevel; ?>>
<a href="любая_ссылка">
<?php echo $module->title;?>
</a>
</h<?php echo $headerLevel; ?>>
<?php elseif($module->id == 56) : ?>
<h<?php echo $headerLevel; ?>>
<a href="любая_ссылка">
<?php echo $module->title;?>
</a>
</h<?php echo $headerLevel; ?>>
<?php elseif($module->id == 46) : ?>
<h<?php echo $headerLevel; ?>>
<a href="/articles/faqs/">
<?php echo $module->title;?>
</a>
</h<?php echo $headerLevel; ?>></br>
<?php else : ?>
<h<?php echo $headerLevel;?>>
<?php echo $module->title; ?>
</h<?php echo $headerLevel; ?>>
<?php endif; ?>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif;
}
?> |
, где $module->id == 43 — id модуля, для которого вы хотите сделать заголовок в виде ссылки.
Как видите модулей в условии может быть несколько, а все не упомянутые выводятся в обычном режиме.
- Далее в блоках вывода модулей необходимо вписать нужный стиль отображения, например так:
<jdoc:include type="modules" name="left" style="xhtmlwithlink" /> |
2-ой метод:
Метод годится только для модулей содержащих произвольный html/javascript-код. Суть: скрыть заголовок модуля в настройках, а в коде содержимого модуля над содержимым сделать нужный заголовок.
Сборка Kunena 1.5.3 RE от Адептуса работает хорошо, но возможны необъяснимые на скорую руку проблемы с поиском на русском языке. Например у меня при нажатии на кнопку «Найти» кириллические символы преобразовывались в знаки вопроса.
Путь решения:
1. Включить системную отладку в Joomla.
2. Увидеть сообщение при попытке поиска:
500 - JDatabaseMySQL::query: 1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' SQL=SELECT `sefurl` FROM `jos_sefurls` WHERE `origurl` = 'index.php?option=com_kunena&func=search&q=тема' |
3. Привести кодировку таблицы jos_sefurls в порядок:
ALTER TABLE jos_sefurls CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci |
4. PROFIT.