Drupal

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

Commons-logo.svg Drupal у Вікісховищі

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

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

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

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

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

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

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

Останні основні версії
Версія Дата випуску
8.1.7 18 липня 2016 [1]
7.50 7 липня 2016 [2]
6.38 24 лютого 2016 [3]
5.23 11 серпня 2010 [4]
Часовий графік виходу Drupal версій 1-6

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

Інтерес до Drupal значно виріс у 2003 році, коли він був використаний для створення сайту "DeanSpace" Говарда Діна, одного з кандидатів від Демократичної партії на праймеріз Президентських виборів США у 2004 році. DeanSpace використовував opensource-розповсюдженість Drupal для підтримки децентралізованої мережі з приблизно 50 відокремлених, неофіційних продінівських веб-сайтів, що дозволяли користувачам зв'язуватись один з одним і так само з учасниками виборчої кампанії.[6] Після завершення кампанії Говарда Діна веб-фахівці з його команди продовжили розробку веб-платформи для підтримки політичної активності і в липні 2004 році створили CivicSpace Labs "першу компанію, з повноцінно винайнятими працівниками, що розробляла та поширювала технологію Drupal".[7] Також почали з'являтись інші компанії, що займались друпал-розробкою.[8][9] В 2013 на веб-сайті Drupal вже налічувалось декілька сотен компаній, що використовували і займались Друпалом.[10]

Починаючи з 2014 року Drupal розробляється спільнотою [11] і швидко зростає. На лютий 2014 понад 1015000 сайтів використовують Drupal.[12] Сюди входять сотні організацій[13] включно з корпораціями, медіа та видавничими компаніями, урядовими та неурядовими організаціями[14], учбовими закладами та приватними особами. Друпал отримав кілька нагород для відкритих CMS від Packt та три роки підряд отримував мережеву нагороду Webware 100.[15][16]

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

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

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

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

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

Таксономія (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 вигляді[17].
  • До недоліків (але водночас і до переваг) Drupal можна віднести відсутність зворотної сумісності API при досить високій динаміці розробки проекту. Практично в кожному релізі відбуваються зміни API, коли поряд з додаванням нових функцій прибираються деякі старі або змінюються параметри виклику функцій. Це призводить до необхідності розробникам сторонніх модулів адаптувати їх для роботи з новими версіями Drupal. Проте зміни API і процедура адаптації модулів до нових версій описуються в документації для кожного релізу, також завжди пропонується механізм автоматизованого апгрейда ядра системи на нову версію.[18][19] Плюс даної схеми розробки — немає необхідності тягти з версії у версію програмний шар сумісності зі старими API, що полегшує поточний код системи.

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

Українська спільнота дуже активно займається локалізацією текстів ядра на украінську мову.

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

Дивіться також[ред.ред. код]

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

  1. Drupal 8 release history; drupal.org
  2. Drupal 7 release history; drupal.org
  3. Drupal 6 release history; drupal.org
  4. Drupal 5 release history; drupal.org
  5. «History» drupal.org. Retrieved 2009-04-08.
  6. Benjamin Melançon et al. (2011). The Definitive Guide to Drupal 7 (2nd ed.). Apress. p. 823. ISBN 9781430231356. Retrieved 2012-05-27.
  7. Critchley, Spencer (2006-05-03). «Digital Politics: An Interview With CivicSpace Founder Zack Rosen». O'Reilly Media. Retrieved 2012-05-27.
  8. Kreiss, Daniel (2012-03-05). «Dean, Romney, and Drupal: Values and Technological Adoption». Culture Digitally. Retrieved 2012-05-27.
  9. Samantha M. Shapiro, «The Dean Connection», The New York Times December 7, 2003, accessed May 27, 2012.
  10. «Marketplace». drupal.org. Retrieved 2012-05-27.
  11. Koenig, Josh. Growth Graphs. Groups.Drupal. Процитовано 2009-04-08. 
  12. Drupal project usage. 
  13. Drupal Sites. Dries Buytaert. Процитовано 2010-07-20. 
  14. List of Nonprofit, NPO, NGO Websites Using Drupal. ENGINE Industries. Процитовано 2010-07-20. 
  15. Drupal is a Webware 100 winner for the third year in a row. Drupal.org. Процитовано 2011-08-31. 
  16. Cnet.com. News.cnet.com. 2009-05-19. Процитовано 2011-08-31. 
  17. Програмування в Drupal з точки зору ООП
  18. Оновлення системи (для користувачів)
  19. Оновлення модулів (для розробників)
  20. Let's get it translated! Drupal 8 RC1 is here!. drupal.org. 
  21. Translation not complete on Drupal 8 release day? No problem!. drupal.org. 

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