Main menu

Joomla + FullAjax

Yazov Rating Yazov Rating Yazov Rating Yazov Rating Yazov Rating Рейтинг 4.93 (41 Голосов)

Попытаемся решить проблему перевода Joomla сайта на Full Ajax технологию, без влияния на SEO

Вот ссылка на страницу плагина Add FullAjax в каталоге расширений Joomla. Там есть прямая ссылка на скачивание последней версии плагина. Кстати, плагин совместим со всеми версиями Joomla, начиная с 1.5.

Устанавливается плагин через менеджер расширений Joomla, а вот для настройки придется немного поработать.

Настройка Add FullAjax
:

После того, как плагин установлен, потребуется внести некоторые изменения в шаблон Joomla.

1) Открываем файл index.php шаблона, который у вас используется, находим в нем вывод компонента и сообщения об ошибке(обычно они находятся рядом), находим контейнер, которые их окружает и добавляем к нему id="forajax". Получится что-то вроде:

<div id="forajax">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>

Если у вас используется платный шаблон или фреймворк, то весьма вероятно, что вам не удастся легко найти компонент.

2) После того, как п.1. выполнен, вы уже можете активировать плагин и посмотреть его в действии. Но обычно обновлять требуется не только контент, но и модули. Например, чтобы подсветить активный пункт меню, или скрыть/показать модуль только для определенных страниц. По умолчанию модули обновляться не будут. Для обновления модулей нужно:

– найти в файле index.php шаблона позицию вывода модуля, которую требуется обновлять, например, breadcrumbs:

<jdoc:include type="modules" name="breadcrumbs" />

– добавить к контейнеру, окружающему эту позицию выдуманный вами идентификатор, например:

<jdoc:include type="modules" name="breadcrumbs" />

или

<div id="myCoolModule">
<jdoc:include type="modules" name="user3" />
</div>

– перейти в настройки плагина и в поле «Position parameters» вписать конструкцию вида: position:id|position2:id2. В случае с примером выше это будет:

breadcrumbs:pathway|user3:myCoolModule

– в настройках плагина в опции «Enable Positions update» выберите «semi-automatically».

На этом всё. Если всё сделано правильно, то модули в указанных позициях также будут обновляться с помощью Ajax. Заметьте, если модуль остается неизменным для всех страниц сайта, то не нужно обновлять его таким способом.

3) С чем плагин пока работает не очень хорошо, так это с другими скриптами и формами, поэтому разработчик рекомендует отключать его для таких страниц. Для этого есть соответствующая опция в настройках «Ignore menu items (id)», позволяющая исключить обработку плагином указанных пунктов меню. Это может быть полезно, например, если у вас есть пункт меню, ведущий на форму добавления статьи.

Вот и вся настройка. Согласитесь, довольно быстро, а результат впечатляет.

А что с SEO и сторонними компонентами?

Очень распространенный вопрос: как использование на сайте плагина Add FullAjax повлияет на индексацию и ранжирование сайта поисковыми системами? Ответ прост: никак. С одной стороны, поисковые системы не индексируют JavaScript, на котором основывается FullAjax, но плагин сделан таким образом, что ссылки с- и без- JavaScript выглядят совершенно одинаково. Проще говоря, если человек зайдет на сайт, то он сможет насладиться всеми прелестями FullAjax; если же зайдет поисковый робот, то он увидит сайт в классическом виде(в таком, как если плагин отключен).

Другим важным вопросом является взаимодействие плагина со сторонними расширениями Joomla. Здесь разработчик не обещает, что всё будет работать. Протестировать плагин со всеми существующими расширениями просто не представляется возможным. Скажу лишь, что я пробовал тестировать Add FullAjax с некоторыми известными расширениями. Проблемы есть но небольшие и связаны они больше с конфликтом скриптов расширения и плагина, нежели со структурой оных.

Да, что касается скриптов. Здесь все довольно печально. После установки Add FullAjax могут перестать работать многие скрипты сайта, например, Lightbox, редакторы, и.т.д. Всё это нужно проверять и если вы не сильны в JavaScript, решить такие проблемы будет достаточно сложно.

Follow me on TwitterЯ ВКонтакте