Drupal

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Drupal
Логотип Drupal
Drupal 7 screenshot.png
Автор(и) Треба назвати елемент q92954
Розробник(и) Дріс Байтаєрт (Dries Buytaert) та спільнота розробників
Стабільний випуск 7.31 (6 серпня 2014; 47 днів тому)
Написано на PHP
Операційна система багато-платформовий
Українська так [1]
Тип Система керування вмістом
Ліцензія GPL
Сайт drupal.org

Drupal (укр. Друпал) — популярна вільна модульна система керування вмістом (СКВ) з відкритим сирцевим кодом, написана на мові програмування PHP.

Завдання систем керування вмістом — полегшити створення, наповнення та оновлення веб-сайту.

Drupal може працювати у таких популярних системах як Windows, Mac OS X, Linux, власне, на будь-якій платформі, яка підтримує роботу веб-сервера Apache, Nginx, Lighttpd або Microsoft IIS; також потрібна наявність системи керування базами даних MySQL/MariaDB, PostgreSQL 8.3, SQLite чи інші комерційні. Повні системні вимоги Drupal наведені на офіційному сайті.

Можливості[ред.ред. код]

У дистрибутив системи входить набір модулів, що дають наступні можливості:

  • збір інформаційних стрічок (RSS, RDF, Atom);
  • ведення блогів, підшивань і форумів;
  • створення форм для відправки повідомлень;
  • локалізація системи;
  • перейменування посилань (призначення посиланням зрозумілих і зручних псевдонімів);
  • проведення опитувань;
  • призначені для користувача профілі, що настроюються;
  • пошук за змістом (за зміст вважається і повідомлення на форумах, і сторінки, і будь-які інші призначені елементи);
  • ведення журналу статистики (відвідуваності);
  • таксономія (впорядковування матеріалу за категоріями) — дуже «цінна» можливість;
  • включення механізму авторегулятора контролю навантаження та інші.

Історія створення[ред.ред. код]

Почав розробку в 2000 році бельгієць Дріс Байтаєрт (Dries Buytaert), який і понині є керівником проекту. Назва drupal є спотвореною вимовою голландського слова druppel (крапля) і з'явилося в результаті помилки. У 2000 році декілька студентів університету Антверпена використовували загальний ADSL-модем для доступу в Інтернет, і для спілкування користувачів цієї маленької локальної мережі Дріс створив внутрішній сайт. Програма, на якій працював сайт, не мала імені, поки Дріс не зібрався реєструвати доменне ім'я для нового сайту, і в результаті друкарської помилки замість dorp.org (від голландського dorp — село, цілком доречне ім'я для невеликого співтовариства) був зареєстрований drop.org (англ. drop — крапля). Аудиторія нового сайту з часом змінилася на тих, що цікавляться розвитком нових веб-технологій, і новий сайт поступово перейшов із любительського експерименту в проект з обговорень ідей веб-програмування. У 2001 році Дріс опублікував початковий код drop.org під ім'ям «Drupal». З тих пір розробка перемістилася на зареєстрований пізніше сайт drupal.org, який придбав статус офіційного сайту проекту.

Концепція[ред.ред. код]

Механізми рубрикації Кожен документ сайту може входити в одну або кілька рубрик. Самі ж рубрики можуть складати списки або складні ієрархічні структури довільної вкладеності (з множинними предками і перехресними посиланнями елементів).

Інтеграція всіх компонентів Можлива наскрізна рубрикація за всіма типами документів сайту (наприклад список ключових слів, загальний для форумів та блогів). Форум із виводом цікавих новин на головну сторінку або сайт новин із блогами та відеопрезентації — все це можна укласти в єдиний рубрикатор (або декілька рубрикаторів) і це буде виглядати частинами єдиного сайту, а не розрізненими сторінками об'єднаними лише загальним дизайном.

Готові рішення типових завдань Сайт новин, сайт-візитка компанії, блог або форум — такі сайти можна побудувати, користуючись тільки модулями рушія, що йдуть у поставці, потрібно тільки включити відповідні модулі, налаштувати їх і перенести сайт на хостинг.

Навігація і пошук Для зручності доступу до архівних матеріалів служать рубрикація контенту і пошук з урахуванням видів контенту, рубрик та вмісту. Документи зберігають незмінні посилання весь час свого життя (т.зв. перманентні посилання). Також за допомогою коротких посилань і псевдонімів сайт набуває запам'ятовуються імена розділів і окремих сторінок, які не використовують спеціальних символів і тому добре індексовані пошуковими системами.

Таксономія (taxonomy) — оригінальна методика притаманна Drupal для завдання структури сайту, спосіб відділити структуру від подання. За допомогою таксономії можна визначити довільну кількість рубрик, в яких будуть надалі міститися матеріали сайту. Ці рубрики можуть бути представлені як плоскі списки або ієрархічні структури довільної вкладеності (як деревоподібні, коли елемент має тільки одного з батьків в ієрархії, так і довільні, коли елемент може мати відразу декількох батьків).

Можливості Drupal'у[ред.ред. код]

Структура та потужна база модулів Drupal'у дозволяє порівняно швидко створювати потужні інтерактивні сайти.

До базового пакету системи, окрім модулів створення статичних сторінок (сторінок з постійною адресою) та нових статей входять модулі для організації блогів (електронних журналів користувачів), форумів (місць для інтернет-дискусій), «книг» (інформаційних добірок, праця над якими ведеться колективно), синдикації (імпорту новин з інших сайтів), модуль керування інформаційними блоками на сторінках, що полегшують керування їх виглядом, модуль керування меню.

Drupal підтримує різні теми оформлення та дозволяє створювати свої теми оформлення.

Спільнотою розробників Drupal'у створено багато додаткових модулів, серед яких варто згадати модулі інтернаціоналізації (створення багатомовних сайтів), модулі керування файлами, що дозволяють викладати на сайтах звукові та відео-файли, модулі категоризації вмісту, модулі організації користувачів у групи та спільноти.

Методи структуризації вмісту[ред.ред. код]

У Drupal пропонується гнучка схема організації структури сайту на основі таксономії. Таксономія- механізм, що дозволяє створювати довільну кількість тематичних категорій для вмісту сайту і асоціювати їх з модулями, що забезпечують введення і виведення інформації. Категорії можуть представляти плоскі або ієрархічні списки, або складні структури, де елемент може мати декілька «батьків» і кілька дочірніх елементів. За допомогою подібної схеми одними і тими ж модулями можлива організація різних варіантів структуризації вмісту. Наприклад, легко створюється наскрізний список «ключових слів» для всіх документів сайту тощо.

Інша парадигма з'явилася зі створенням в Drupal модуля Content Construction Kit (CCK). (З виходом версії Drupal 7 — перенесено в ядро.) CCK дозволяв доповнювати документи новими полями різних типів — від полів вводу URL і email, до полів зберігання і відображення мультимедійних файлів. Також за допомогою додаткових модулів до CCK (наприклад Node reference) можна організувати зв'язок між документами, не використовуючи механізм таксономії. В Drupal 7 майже весь функціонал CCK перенесений в ядро системи. В модулі CCK лишилися хелпери (наприклад підтримка PHP коду)

Механізми розширення функціоналу[ред.ред. код]

Drupal має модульну архітектуру з компактним ядром, що надає API, до якого можуть звертатися модулі. Стандартний набір модулів включає такі функції, як новинна стрічка, блог, форум, завантаження файлів, збирач новин, голосування, пошук тощо. Дизайн сайту змінюється також за допомогою спеціальних модулів — «тем оформлення».

Модулі[ред.ред. код]

Кілька прикладів модулів, які можна завантажити в репозиторії на drupal.org:

  • Ad — система для управління показами рекламних банерів
  • Captcha — захисний механізм картинок «CAPTCHA», що використовується при реєстрації
  • Ecommerce, Ubercart, Drupal Commerce — системи електронної комерції
  • FCKeditor, CKEditor, Tinymce — візуальні редактори
  • Gallery — інтеграція з галереєю зображень Gallery2
  • LDAP integration — інтеграція з LDAP
  • mailhandler, listhandler — можливість публікації матеріалів сайту через поштовий інтерфейс і з поштових розсилок
  • Project — ведення проектів, включає багтрекер і інтеграцію з CVS і Subversion
  • SPAM — блокування спаму
  • Swish, Sphinxsearch — інтеграція з рушіями пошуку Swish і Sphinx
  • View — візульний побудовник запитів до матералів і відображення їх в різних ракурсах
  • WebForm — гнучкий модуль для швидкого проектування інтерактивних форм (опитування, зворотний зв'язок)

До безперечних достоїнств Drupal слід віднести досить повну документацію з різних аспектів системи (переважно документація англійською мовою).

Теми оформлення[ред.ред. код]

Дизайн сайту на Drupal будується на основі змінних тем оформлення. Немає єдиної схеми побудови дизайну. Натомість Drupal дає можливість використовувати різні «рушії тем», що використовують шаблони, зручні для редагування (шаблони XML у рушіях xtemplate і Smarty або шаблони на HTML і вбудований PHP у рушії phptemplate тощо), або створювати теми оформлення безпосередньо звертаються до API Drupal. У комплект поставки Drupal включений рушій тем на основі phptemplate і кілька прикладів тем. Інші пакети тем можна завантажити на сайті проекту.

Починаючи з версії 4.7 Drupal підтримує технологію Ajax для динамічного підвантаження вмісту без повного оновлення сторінок. У версії 5 для роботи з JavaScript додана бібліотека JQuery. З версії 6.0 з'явилося створення форм за допомогою AHAH(без повного перезавантаження сторінок сайту).

Недоліки[ред.ред. код]

  • Критики Drupal ставлять в докір розробникам слабке використання об'єктних можливостей PHP. API Drupal практично не використовує наявні в PHP можливостей ООП. Розробники аргументують це слабкою реалізацією ООП у мові(особливо до версії PHP 5). Об'єктна модель в Drupal присутня, але в дещо нетрадиційному для PHP вигляді[1].
  • До недоліків (але водночас і до переваг) Drupal можна віднести відсутність зворотної сумісності API при досить високій динаміці розробки проекту. Практично в кожному релізі відбуваються зміни API, коли поряд з додаванням нових функцій прибираються деякі старі або змінюються параметри виклику функцій. Це призводить до необхідності розробникам сторонніх модулів адаптувати їх для роботи з новими версіями Drupal. Проте зміни API і процедура адаптації модулів до нових версій описуються в документації для кожного релізу, також завжди пропонується механізм автоматизованого апгрейда ядра системи на нову версію.[2][3] Плюс даної схеми розробки — немає необхідності тягти з версії у версію програмний шар сумісності зі старими API, що полегшує поточний код системи.

Українські локалізації Drupal[ред.ред. код]

  • [2] Український переклад Drupal від перекладачів Національного університету «Львівська політехніка» (Україна, Львів)
  • [3] Офіційний український переклад Drupal, яким займається drupal.ua

Примітки[ред.ред. код]

Посилання[ред.ред. код]