Створення сайту на CMS Joomla

834

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

Система управління вмістом 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 з будь-якого сайту зі списку

  • http://joomla.org
  • http://joom.ru
  • http://joomlaportal.ru

і розпаковуємо на свій комп’ютер.

  • Створюємо базу даних, користувача бази даних і паролі в панелі управління хостингом. Не знаєте, як – телефонуйте в техпідтримку, вам допоможуть з цим питанням.
  • Копіюємо файли на сервер з допомогою фтп-менеджера
  • Далі слідуємо інструкціям інсталятора. На 6 кроці вводимо назву хоста, БД, користувача БД і пароль.
  • Встановлювати демо-дані і конфігурацію фтп не обов’язково.
  • На 8 кроці вводимо пошту адміністратора та пароль Видаляємо папку installation
  • Заходимо в адміністративну панель.
  • Налаштування сервера для Joomla

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

    Створення сайту на CMS Joomla

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

    Що таке компонент? Простими словами, компонент Joomla являє собою міні-систему управління, яка відповідає за певну функцію (наприклад, створення форми зворотного зв’язку або фотогалереї). Якщо я не помиляюся, це аналог модулів Drupal і плагінів WordPress.

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

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

    Де скачати? У Joomla є сайт з розширеннями під будь-які потреби — Joomla! Extensions Directory .

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

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

    Створення сайту на CMS 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.

    Також раджу ставити secure – плагін платний, але досить його ранньої версії. Кому зручно купити – купіть, кого жаба душить – сам знайде, де дістати.

    Різне корисне

    • Є сайт 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:

    /** * @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 works of 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’ );
    ?>» lang=»language; ?>» >

    /templates/system/css/system.css» type=»text/css» /> /templates/system/css/general.css» type=»text/css» /> /templates/svc/css/style.css» type=»text/css» /> /templates/template ?>/css/ieonly.css» rel=»stylesheet» type=»text/css» />


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

  • Про defined( ‘_JEXEC’ ) or die( ‘Restricted access’ ); — читаємо тут: http://ruseller.com/lessons.php?rub=37&id=301 і http://joomlaforum.ru/index.php?topic=69717.0
  • завантажує файл сайт\libraries\joomla\document\html\renderer\head.php почитати про нього можна тут: http://www.seojoom.ru/component/k2/item/11-teg-title-joomla
  • /templates/system/css/system.css» type=»text/css» />, де запис baseurl ?> просто автоматично підставляє частина шляху (http://sait.ru/) до папці templates. Природно, шлях до css-файлу може бути будь-якою.
  • Запис включає в шаблоні плагін – стандартну систему повідомлень для повідомлення про виявлені проблеми.
  • Запис відповідає за виклик модуля, якому вказана позиція 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.

    В Joomla SEO

    Одна з проблем 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$). Подейкують, що створює для кожної сторінки додатковий запит до БД
    • Meta Tag – безкоштовний компонент і плагін для управління мета-тегами сайту. Можна привласнити кожній ссылке свої мета-дані
    • 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: Кращі роботи, гідні роботи і цікаві рішення.

    Дякую за цікавий пост.

    Терехов.