joomlaСегодня у меня в гостях Антон Шитиков shitikoff , который расскажет о создании сайтов на движке Joomla.

Cистема управления содержимым Joomla! является ответвлением широко известной CMS Mambo. Команда независимых разработчиков отделилась от проекта Mambo по причине несогласия в экономической политике. 16 сентября 2005 года в свет вышла первая версия Joomla!, являющаяся по сути переименованной Mambo 4.5.2.3 и включающая в себя исправления найденных на тот момент ошибок и уязвимостей.

В настоящее время актуальна версия 1.7. Версия 1.0 считается устаревшей, её официальная поддержка прекращена 1 июля 2009 года. Поддержка версии 1.6 прекращена с 19 августа 2011 года.

Часть 1 – установка Joomla

Скачиваем архив с CMS с любого сайта из списка

и распаковываем на свой компьютер.

  1. Создаем базу данных, пользователя базы данных и пароли в панели управления хостингом. Не знаете, как – звоните в техподдержку, вам помогут с этим вопросом.
  2. Копируем файлы на сервер с помощью фтп-менеджера
  3. Далее следуем инструкциям установщика. На 6 шаге вводим название хоста, БД, пользователя БД и пароль.
  4. Устанавливать демо-данные и конфигурацию фтп не обязательно.
  5. На 8 шаге вводим почту администратора и пароль Удаляем папку installation
  6. Заходим в административную панель.

Настройка сервера для Joomla

Лучше использовать версию PHP – 5.2.хх Минимальный набор библиотек, необходимый для хорошей стабильной работы CMS (в качестве примера – настройки nic.ru)

Часть 2 – установка компонентов, модулей и плагинов

Что такое компонент? Простыми словами, компонент в Joomla представляет собой мини-систему управления, которая отвечает за определенную функцию (например, создание формы обратной связи или фотогалереи). Если я не ошибаюсь, это аналог модулей в Drupal и плагинов в WordPress.

Что такое модуль? Модуль служит для вывода какой-либо информации в определенной части сайта.

Что такое плагин? Плагины в Joomla делятся на системные (добавляют функционал в ядро Joomla) и контент-плагины (как пример, вставка определенного html кода в статью).

Где скачать? У Joomla есть сайт с расширениями под любые нужды — Joomla! Extensions Directory .

http://extensions.joomla.org/extensions/top-rated – топ-100 расширений для Joomla по оценкам

Как установить: компоненты, модули и плагины устанавливаются через меню «Расширения-Установить/Удалить»

Что ставить? Это зависит, от того, какого функционала от сайта вы хотите добиться – исследуйте Joomla! Extensions Directory и форумы русской поддержки, и ставьте необходимые вам дополнения.

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

Безопасность

Из того, что представлено в топ-100, обязательно нужно скачать два бесплатных компонента от Akeeba – Admin Tools и Akeeba Backup.

Admin Tools позволяет без проблем обновлять вашу версию CMS, менять суффикс БД, фиксить таблицы базы данных, менять уровни доступа, изменять кодировку таблиц БД и многое другое.

Akeeba Backup – создание бэкапов, 5 типов бэкапа, среди которых бэкап главной БД или всего сайта или только файлов. В дополнение к этому компоненту идет плагин автоматического создания бэкапов – Akeeba Backup Lazy Scheduling (по умолчанию, выключен)

Огромный плюс данных компонентов – обновляются прямо из админки.

Для миграции с версии Джумлы 1.5 к версии 1.6-1.7 можно использовать расширение jUpgrade, но я делаю обзор расширений именно для версии 1.5.

Также советую ставить jSecure – плагин платный, но достаточно его ранней версии. Кому удобно купить – купите, кого жаба душит – сам найдет, где достать.

Разное полезное

  • Есть сайт http://nonumber.nl (сайт программиста Peter van Westen). Изучаете, скачиваете менеджер расширений и ставите из админки все, что пожелаете. Из разряда «must have»-расширений, укажу его Cache cleaner – плагин мгновенной очистки кэша из админки с множеством настроек.
  • JCH Optimize — отличный плагин оптимизации сайта (Gzip-сжатие и комбинирование JS и CSS и т.д.)

О расширениях для SEO поговорим в соответствующей главе

Часть 3 – Создание шаблона

http://joomlaforum.ru/index.php/topic,9638.0.html – статья на форуме русской поддержки Joomla. Исследуем index.php трехколоночного шаблона по адресу /сайт/templates/ваш_шаблон/index.php:

<?php
/** * @copyright Copyright (C) 2005 — 2008 Open Source Matters. All rights reserved. * @license GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */
// no direct access – запрещаем прямой вызов файла /сайт/templates/ваш_шаблон/index.php
defined( ‘_JEXEC’ ) or die( ‘Restricted access’ );
?><!DOCTYPE html PUBLIC «-//W3C//DTD XHTML 1.0 Transitional//EN» «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»><html xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»<?php echo $this->language; ?>» lang=»<?php echo $this->language; ?>» >
<head><jdoc:include type=»head» />
<link rel=»stylesheet» href=»<?php echo $this->baseurl ?>/templates/system/css/system.css» type=»text/css» />
<link rel=»stylesheet» href=»<?php echo $this->baseurl ?>/templates/system/css/general.css» type=»text/css» />
<link rel=»stylesheet» href=»<?php echo $this->baseurl ?>/templates/svc/css/style.css» type=»text/css» /><!—[if lte IE 6]>
<link href=»<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/ieonly.css» rel=»stylesheet» type=»text/css» /><![endif]—>
</head>
<body>
<div class=»left»><jdoc:include type=»modules» name=»menu-left» style=»none»  /></div> <!—  закрываем левую колонку  —>
<div class=»center»><jdoc:include type=»message» /> <!— включаем отображение ошибок —>
<jdoc:include type=»component» /> <!— включаем отображение компонентов —>
</div><!—  закрываем центральную колонку—>
<div class=» right»></div>
<!—  закрываем правую колонку—>
</body>
</html>

Разберем нашу структуру

  1. Про defined( ‘_JEXEC’ ) or die( ‘Restricted access’ ); — читаем здесь: http://ruseller.com/lessons.php?rub=37&id=301 и http://joomlaforum.ru/index.php?topic=69717.0
  2. <jdoc:include type=»head» /> подгружает файл сайт\libraries\joomla\document\html\renderer\head.php , почитать про него можно здесь: http://www.seojoom.ru/component/k2/item/11-teg-title-joomla
  3. <link rel=»stylesheet» href=»<?php echo $this->baseurl ?>/templates/system/css/system.css» type=»text/css» />, где запись <?php echo $this->baseurl ?> просто автоматически подставляет часть пути (http://sait.ru/) к папке templates. Естественно, путь к css-файлу может быть любой.
  4. Запись <jdoc:include type=»message» /> включает в шаблоне плагин – стандартную систему сообщений для уведомления об обнаруженных проблемах.
  5. Запись <jdoc:include type=»modules» name=»menu-left» style=»none»  /> отвечает за вызов модуля, которому указана позиция menu-left и присвоен стиль отображения «none». Хорошую статью написали здесь про стандартные стили отображения: http://shirokova.su/121-vyvod-moduley-v-joomla-1-5/

У модулей есть различные условия для отображения, читаем про это тут: http://joomlaforum.ru/index.php/topic,67278.0.html. Еще ссылка про создание новых стилей вывода модуля в файле modules.php

Итог: процесс создания шаблона для Joomla требует знания html и CSS.

SEO в Joomla

Одна из проблем Joomla – SEO.

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

Но не все расширения поддерживают дружественные ссылки (SEF). А также для многих расширений невозможна функция для заполнения meta-тегов для каждой страницы. Например, этим «славится» самый тяжеловесный магазин на Джумле – Virtuemart.

SEF

Лично я никогда не использую расширения для SEF – для большинства сайтов хватает встроенного SEF Joomla (включается в меню «Сайт — Общие настройки — сайт — установки Search Engine Optimization») . С недавних пор я начал добавлять суффикс к URL, на скриншоте эта опция выключена. 

Описание, плюсы и минусы расширения для SEF можно найти здесь: http://joomlaforum.ru/index.php/board,108.0.html. Некоторые из описанных компонентов позволяют также прописывать мета-данные для каждой страницы.

SEO

Любой статье в Джумле можно прописать мета-теги, но нормально это можно сделать лишь если вы присваиваете каждой статье (материалу) пункт меню (я так делаю для небольших сайтов), что согласитесь, весьма прискорбно, если вы ведете блог и у вас в категории идет список материалов (в таком случае название материала дублируется в title и поменять его можно лишь поменяв заголовок материала).

Расширения для SEO

Список их найдете здесь: http://extensions.joomla.org/extensions/site-management/seo-a-metadata/. В основном, расширения для SEO в Joomla выполняют функцию автоматической генерации keywords и description. Но есть и более адекватные, из которых:

  • Smart SEO v0.7b – аналог битриксовского родного модуля для SEO-оптимизации. Платное расширение (15$). Поговаривают, что создает для каждой страницы дополнительный запрос в БД
  • Tag Meta – бесплатный компонент и плагин для управления мета-тегами сайта. Можно присвоить каждой ссылке свои мета-данные
  • JSEOPlugin 2.1 найдете на сайте Леонида Тушова, http://tushov.ru/downloads

Плагин позволяет «брэндировать» title, делая их вида «заголовок материала – название сайта» а также позволяет закрывать от индексации внешние ссылки и автоматически генерировать keywords и description (проверено, не всегда качественно).

Социальные закладки в Joomla

Для стандартных материалов Джумлы советую использовать плагин SocButtons – кнопки социальных сетей Facebook, Twitter, ВКонтакте, Google +1, Мой Мир.Также один из самых популярных плагинов – ValAddThis plugin. Модуль Twitter FollowMe.

Для вашего удобства на JED создан целый раздел для «социализации» вашего сайта.

Для CCK возможен вывод виджетов для каждой страницы в модуле «html-код» (содается в менеджере модулей Джумлы), скопировав туда коды виджетов и потом вставив этот модуль в нужное место путем записи {loadposition название позиции} или пользуемся плагином Modules Anywhere.

Также, если вам нужно встроить соцзакладки в шаблон какого-либо компонента, можно скопировать код виджета (например, код виджета «Поделиться» от Яндекса)в нужное место шаблона.

Дубли страниц

Дубли страниц, как известно, проблема многих бесплатных и платных, (привет, Битрикс!) CMS. Боремся с ними стандартным методом – закрываем их в robots.txt и используем 301 редирект там, где это возможно. Описывать какой-то стандартный robots.txt не имеет смысла – для различных компонентов используются разные записи.

Перед запуском проекта закрываем все не-SEF url. В инструментах для вебмастеров Google работаем с параметрами url. Обсуждение: Правильный robots.txtКак закрыть дубли страниц VirtueMart и сделать для него идеальный robots.txt.

Карта сайта

Самым популярным расширением для генерации карты сайта на Joomla является

Xmap + дополнения для различных компонентов

Другие компоненты для генерации карт сайта

Ну, и не забываем http://xml-sitemaps.com для небольших сайтов.

Перелинковка

1. Linkr – компонент + кнопка редактора для ручной перелинковки статей Joomla

Нижеследующие расширения очень давно подсмотрел у Елены Камской, но их не использую.

2. SeoLinks (условно бесплатный – копирайт автора убирается за деньги)– автоматическая перелинковка страниц по ключевым словам. Плагин автоматически находит в текстах страниц указанные вами слова (вида машина=http://site.ru/mashina.html) и заменяет их на ссылки.

3. TitleLink – перекрестная перелинковка материалов на базе заголовка статьи. Его можно использовать для перелинковки вместе с SeoLinks.

Если вы используете CCK – у многих компонентов есть встроенная функция добавления похожих материалов, в том числе и автоматическая.

Полезности: PageNav – меняет стандартную постраничную навигацию по статьям (предыдущая-сдедующая) на заголовки статей. Подборка  53 полезных плагина для Joomla 1.5 от Елены Камской.

Комментарии

JComments – компонент комментариев с большим количеством настроек прав доступа и внешнего вида. По ссылке также доступны плагины и модули данного компонента.

Постинг через мобильные устройства

Joooid

Живые примеры сайтов

Отдельно отмечу работы Палыча: http://palpalych.ru/portfolio.html и http://www.axaple.ru/. Интересные решения есть у http://webstudio.pro/. Работы форумчан Joomlaforum.ru: Лучшие работы, достойные работы и интересные решения.

Спасибо за интересный пост.

Терехов.