Joomla 1.5 - несколько рекомендаций

Рубрика: Разработка сайтов
Метки:
Пятница, 31 октября 2008 г.
Просмотров: 15695
Подписаться на комментарии по RSS
]]>
]]>

В работе над новым проектом мы в очередной раз решили использовать Joomla 1.5. В процессе разработки пришлось столкнуться с несколькими проблемами, способами решения которых я и хочу поделиться.

Отображение списка категорий в виде меню

Нам нужно было, чтобы при выборе пункта главного меню (связанного с разделом) в левой колонке отображался список категорий, относящихся к данному разделу. А при выборе конкретной категории в области контента отображался ее блог.

Оказалось, что этот функционал не входит в дистрибутив Joomla 1.5, поэтому пришлось искать соответствующий модуль. Такой модуль есть и он называется Content Categories. Однако у этого модуля есть два ключевых недостатка:

  1. Для отображения списка категорий он использует шаблон по умолчанию компонента com_content: /components/com_content/views/section/tmpl/default.php, это жестко задано в коде. Таким образом, никак нельзя повлиять на HTML-код, который выдает модуль, а там используется устаревшая верстка с помощью таблиц.
  2. При выводе никак не выделяется текущая выбранная категория (чтобы, например, ее можно было подсветить с помощью стилей)

В общем, пришлось модифицировать этот модуль таким образом, чтобы он использовал систему шаблонов Joomla 1.5 и передавал в шаблон текущий выбор категории. Прочитать о модуле и скачать его вы можете на странице Modified Content Categories module for Joomla 1.5.

Как убрать подключение встроенных JavaScript-модулей в публичной части сайта

По умолчанию Joomla 1.5 вставляет в заголовки всех страниц сайта подключение JS-модулей mootools.js и caption.js. Эти модули нужны для работы административного интерфейса и теоретически могут понадобиться в публичной. Однако, если они не нужны в публичной части? Тем более, mootools.js весит около 72Кб - зачем заставлять пользователей загружать его без надобности?

Рецепт решения найден здесь: Remoove Mootools From Joomla Header

Нужно прописать в заголовке шаблона следующие строки:

<?php
$user =& JFactory::getUser();  
if ($user->get('guest') == 1) {  
$headerstuff = $this->getHeadData();  
$headerstuff['scripts'] = array();  
$this->setHeadData($headerstuff); }  
?>

перед строчкой:

<jdoc:include type="head" />

Как убрать ссылки на RSS в заголовке заглавной страницы

Joomla по умолчанию вставляет ссылки на RSS-потоки в заголовок заглавной страницы:

<link href="/feed/rss.html" rel="alternate"
         type="application/rss+xml" title="RSS 2.0" />
<link href="/feed/atom.html" rel="alternate"
         type="application/atom+xml" title="Atom 1.0" />

Если ваш сайт не является часто обновляемым блогом, эти ссылки не нужны. Отключить их достаточно легко: зайдите в административном интерфейсе в редактирование пункта меню, который увас отвечает за главную страницу (выбран по умолчанию) и отключите опцию: "Параметры - Расширенные -> Показать ссылку на ленту" / "Parameters (Advanced) -> Show a Feed Link".

Комментариев: 10

  1. 2009-05-15 в 21:52:39 | ageent (анонимно)

    Сенкс!

  2. 2009-05-30 в 10:25:22 | L (анонимно)

    /// к сожалению в публичной части, если есть separator (разрывы) меню, то без mootool'ов подменю показывается сразу, а не выплывает. Хотя идея неплохая...

  3. 2009-07-08 в 03:24:05 | pma87 (анонимно)

    Спасибо автору за данную статью. Долго искал как отключить mootools. А в каких плагинах или модулях он используется?

  4. 2009-08-26 в 13:50:46 | Алеей (анонимно)

    Огромное спасибо за статью. Наконец-то смог отключить RSS.

  5. 2010-01-24 в 12:57:24 | Ильдар (анонимно)

    Спасибо большое!

  6. 2010-01-26 в 23:41:07 | Аноним (анонимно)

    Куета какая-то а не статья!

    Нельзя было чуть доступнее написать. Может я и даун, но я ни чего не понял.

    Сраная статья. Не написали что Mootools нельзя отключать если есть строка

    В этом случае шаблону необходим mootools.

    Пишете статью, раскрывайте полностью нюансы, а не лишь бы напостить и рейтинг повысить.

  7. 2010-01-26 в 23:43:47 | Аноним (анонимно)

    Не написали что Mootools нельзя отключать если есть строка

    // <?php JHTML::_('behavior.mootools'); ?>

    комментарии не нужны

  8. 2010-01-26 в 23:56:23 | casper

    2anonymous: про повышение рейтинга рассмешили, спасибо :)

  9. 2010-01-28 в 16:01:38 | Александр (анонимно)

    Автор, спасибо большое! Наконец-то отключил RSS! :)

  10. 2010-04-07 в 18:24:35 | Михаил Кулик (анонимно)

    Метод не совсем по фен-шуй, так как Вы удаляете Moootools на всех страницах сайта. Mootools работает в связке со многими стандартными элементами, напримем с проверкой полей ввода в форме. Поэтому чтобы сохранить гибкость, например для той же валидации форм, необходимо прописать следующее (там же, перед

    <jdoc:include type="head" />

    )

    <?php
    $user =& JFactory::getUser();
    if ($user->get('guest') == 1) {
      $headerstuff = $this->getHeadData();
      $key1 = JURI::base(true). '/media/system/js/mootools.js';
      $key2 = JURI::base(true). '/media/system/js/caption.js';
      $key3 = JURI::base(true). '/media/system/js/validate.js';
      if(($headerstuff['scripts'][$key3])) {
      unset($headerstuff['scripts'][$key2]);
      } else {
      unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
      }
      $this->setHeadData($headerstuff);
    }
    ?>

    Этот метод намного гибче и позволяет исключить тот или иной элемент по необходимости,

    хотя его применение намного больше...

    kulik1979[-]ukr.net

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)