Drupal
Drupal ( [ˈdruːpəl][5], укр. Друпал) — популярна вільна модульна система керування вмістом (СКВ, англ. CMS) з відкритим вихідним кодом, написана на мові програмування PHP та розповсюджується за ліцензією GNU.[6][7][8]
Drupal 8 в дії. Контекстне редагування і попередній перегляд. | |
Тип | Система керування вмістом |
---|---|
Автор(и) | Dries Buytaertd |
Розробники | Дріс Байтаєрт (Dries Buytaert) та спільнота розробників |
Перший випуск | 15 січня 2001[1] |
Стабільний випуск | 9.1.4 (3 лютого 2021 ) |
Репозиторій | git.drupalcode.org/project/drupal.git |
Операційна система | Linux, Microsoft Windows, macOS і UNIX |
Мова програмування | PHP[2] |
Розмір | 80 MB (нестиснене ядро Drupal 8) |
Українська | так |
Стан розробки | Активний |
Ліцензія | GNU General Public License, version 2.0 or laterd[3][4] |
Вебсайт | drupal.org |
Drupal у Вікісховищі |
Drupal використовують як back end фреймворк для різних вебсайтів,[9][10] від особистих блогів до корпоративних та державних сайтів.[11] Drupal також використовується у системах управління знаннями та для ділової співпраці.[12]
Drupal може працювати у таких популярних системах як Windows, Mac OS X, Linux, власне, на будь-якій платформі, яка підтримує роботу вебсервера Apache, Nginx, Lighttpd або Microsoft IIS; також потрібна наявність системи керування базами даних MySQL/MariaDB, PostgreSQL 8.3, SQLite чи інші комерційні. Повні системні вимоги Drupal наведені на офіційному сайті.
Можливості
У дистрибутив системи входить набір модулів, що дають наступні можливості:
- збір інформаційних стрічок (RSS, RDF, Atom);
- ведення блогів, підшивань і форумів;
- створення форм для відправки повідомлень;
- локалізація системи;
- перейменування посилань (призначення посиланням зрозумілих і зручних псевдонімів);
- проведення опитувань;
- призначені для користувача профілі, що налаштовуються;
- пошук за змістом (за зміст вважається і повідомлення на форумах, і сторінки, і будь-які інші призначені елементи);
- ведення журналу статистики (відвідуваності);
- таксономія (впорядковування матеріалу за категоріями) — дуже «цінна» можливість;
- формування сторінок з матеріалами в різних формах і форматах подання та інші.
Історія створення
Версія | Дата випуску | |
---|---|---|
9.0.0 | 3 червня 2020[13] | |
8.9.0 | 3 червня 2020[13] | |
7.71 | 3 червня 2020[13] | |
6.38 | 24 лютого 2016[14] | |
5.23 | 11 серпня 2010[15] | |
Стара версія Стара версія, все ще підтримується Остання версія Остання бета-версія |
Почав розробку Drupal в 2000 році бельгієць Дріс Байтаєрт (Dries Buytaert), який і понині є керівником проєкту. Назва drupal є спотвореною вимовою голландського слова druppel (крапля) і з'явилося в результаті помилки. У 2000 році кілька студентів університету Антверпена використовували загальний ADSL-модем для доступу в Інтернет, і для спілкування користувачів цієї маленької локальної мережі Дріс створив внутрішній сайт. Програма, на якій працював сайт, не мала імені, поки Дріс не зібрався реєструвати доменне ім'я для нового сайту, і в результаті друкарської помилки замість dorp.org (від голландського dorp — село, цілком доречне ім'я для невеликої спільноти) був зареєстрований drop.org (англ. drop — крапля). Аудиторія нового сайту з часом змінилася на тих, що цікавляться розвитком нових веб-технологій, і новий сайт поступово перейшов із любительського експерименту в проєкт з обговорень ідей веб-програмування. У 2001 році Дріс опублікував вихідний код drop.org під ім'ям «Drupal».[16] З тих пір розробка перемістилася на зареєстрований пізніше сайт drupal.org, який придбав статус офіційного сайту проєкту.
Інтерес до Drupal значно виріс у 2003 році, коли він був використаний для створення сайту «DeanSpace» Говарда Діна, одного з кандидатів від Демократичної партії на праймеріз Президентських виборів США у 2004 році. DeanSpace використовував opensource-розповсюдженість Drupal для підтримки децентралізованої мережі з приблизно 50 відокремлених, неофіційних продінівських вебсайтів, що дозволяли користувачам зв'язуватись один з одним і так само з учасниками виборчої кампанії.[17] Після завершення кампанії Говарда Діна веб-фахівці з його команди продовжили розробку веб-платформи для підтримки політичної активності і в липні 2004 році створили CivicSpace Labs «першу компанію, з повноцінно винайнятими працівниками, що розробляла та поширювала технологію Drupal».[18] Також почали з'являтись інші компанії, що займались друпал-розробкою.[19][20] У 2013 на вебсайті Drupal вже налічувалось декілька сотень компаній, що використовували і займались Друпалом.[21]
Починаючи з 2014 року Drupal розробляється спільнотою[22] і швидко зростає. На лютий 2014 понад 1015000 сайтів використовують Drupal.[23] Сюди входять сотні організацій[24] включно з корпораціями, медіа та видавничими компаніями, урядовими та неурядовими організаціями[25], навчальними закладами та приватними особами. Друпал отримав кілька нагород для відкритих CMS від Packt та три роки підряд отримував мережеву нагороду Webware 100.[26][27]
Концепція
Механізми рубрикації Кожен документ сайту може входити в одну або кілька рубрик. Самі ж рубрики можуть складати списки або складні ієрархічні структури довільної вкладеності (з множинними предками і перехресними посиланнями елементів).
Інтеграція всіх компонентів Можлива наскрізна рубрикація за всіма типами документів сайту (наприклад список ключових слів, загальний для форумів та блогів). Форум із виводом цікавих новин на головну сторінку або сайт новин із блогами та відеопрезентації — все це можна укласти в єдиний рубрикатор (або декілька рубрикаторів) і це буде виглядати частинами єдиного сайту, а не розрізненими сторінками об'єднаними лише загальним дизайном.
Готові рішення типових завдань Сайт новин, сайт-візитка компанії, блог або форум — такі сайти можна побудувати, користуючись тільки модулями рушія, що йдуть у поставці, потрібно тільки включити відповідні модулі, налаштувати їх і перенести сайт на хостинг.
Навігація і пошук Для зручності доступу до архівних матеріалів служать рубрикація контенту і пошук з урахуванням видів контенту, рубрик та вмісту. Документи зберігають незмінні посилання весь час свого життя (т. зв. перманентні посилання). Також за допомогою коротких посилань і псевдонімів сайт набуває запам'ятовуються імена розділів і окремих сторінок, які не використовують спеціальних символів і тому добре індексовані пошуковими системами.
Таксономія (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 вигляді[28].
- До недоліків (але водночас і до переваг) Drupal можна віднести відсутність зворотної сумісності API при досить високій динаміці розробки проєкту. Практично в кожному релізі відбуваються зміни API, коли поряд з додаванням нових функцій прибираються деякі старі або змінюються параметри виклику функцій. Це призводить до необхідності розробникам сторонніх модулів адаптувати їх для роботи з новими версіями Drupal. Проте зміни API і процедура адаптації модулів до нових версій описуються в документації до кожного релізу, також завжди пропонується механізм автоматизованого апгрейда ядра системи на нову версію.[29][30] Плюс даної схеми розробки — немає необхідності тягти з версії у версію програмний шар сумісності зі старими API, що полегшує поточний код системи.
Українські локалізації Drupal
Українська спільнота активно займається локалізацією текстів ядра на українську мову.
Найбільшим досягненням в перекладі можна вважати те, що ядро 8-ї версії Drupal першим було повністю перекладено саме українською мовою.[31][32]
Примітки
- CHANGELOG.txt. Drupal.org. Процитовано 8 червня 2020.
- The drupal Open Source Project on Open Hub: Languages Page — 2006.
- https://web.archive.org/web/20170214210656/https://api.drupal.org/api/drupal
- The drupal Open Source Project on Open Hub: Licenses Page — 2006.
- A query on Drupal 's official website on March 2009: How does one pronounce "Drupal"? (процитовано 19 червня 2013)
- Licensing FAQ. drupal.org. Процитовано 8 квітня 2009.
- The Drupal Overview. drupal.org. Процитовано 8 квітня 2009.
- System Requirements. drupal.org. Процитовано 8 квітня 2009.
- W3Techs (15 липня 2011). Usage of content management systems for websites. Процитовано 15 липня 2011.
- BuiltWith (28 березня 2011). Drupal Usage Statistics. Процитовано 28 березня 2011.
- The State of Drupal 2010 speech. Archive.org. 10 березня 2001. Процитовано 31 серпня 2011.
- Knowledge management with Drupal.
- Releases for Drupal core. Drupal Project. Процитовано 3 червня 2020.
- Drupal 6 release history; drupal.org. Процитовано 6 листопада 2018.
- Drupal 5 release history; drupal.org. Процитовано 6 листопада 2018.
- «History» drupal.org. Retrieved 2009-04-08.
- Benjamin Melançon et al. (2011). The Definitive Guide to Drupal 7 (2nd ed.). Apress. p. 823. ISBN 9781430231356. Retrieved 2012-05-27.
- Critchley, Spencer (2006-05-03). «Digital Politics: An Interview With CivicSpace Founder Zack Rosen». O'Reilly Media. Retrieved 2012-05-27.
- Kreiss, Daniel (2012-03-05). «Dean, Romney, and Drupal: Values and Technological Adoption». Culture Digitally. Retrieved 2012-05-27.
- Samantha M. Shapiro, «The Dean Connection», The New York Times December 7, 2003, accessed May 27, 2012.
- «Marketplace». drupal.org. Retrieved 2012-05-27.
- Koenig, Josh. Growth Graphs. Groups.Drupal. Процитовано 8 квітня 2009.
- Drupal project usage.
- Drupal Sites. Dries Buytaert. Процитовано 20 липня 2010.
- List of Nonprofit, NPO, NGO Websites Using Drupal. ENGINE Industries. Архів оригіналу за 24 грудня 2009. Процитовано 20 липня 2010.
- Drupal is a Webware 100 winner for the third year in a row. Drupal.org. Процитовано 31 серпня 2011.
- Cnet.com. News.cnet.com. 19 травня 2009. Процитовано 31 серпня 2011.
- Програмування в Drupal з точки зору ООП. Архів оригіналу за 21 травень 2007. Процитовано 3 березень 2011.
- Оновлення системи (для користувачів)
- Оновлення модулів (для розробників)
- Let's get it translated! Drupal 8 RC1 is here!. drupal.org.
- Translation not complete on Drupal 8 release day? No problem!. drupal.org.
Посилання
- Офіційний сайт проєкту Drupal (англ.)
- Опис API та приклади програмування (англ.)
- Теми для сайтів на Drupal (англ.)