![]() | |
![]() Drupal 8 в дії. Контекстне редагування і попередній перегляд. | |
Тип | система керування вмістом |
---|---|
Автор | Dries Buytaertd |
Розробники | Дріс Байтаєрт (Dries Buytaert) та спільнота розробників |
Перший випуск | 15 січня 2001[1] |
Стабільний випуск | 10.0.1 (4 січня 2023 ) |
Операційна система | Linux, Windows, macOS і UNIX |
Мова програмування | PHP[2] |
Розмір | 74 881 787 Б (124 МБ на диску) для 23 223 елем. (нестиснене ядро Drupal 10) |
Українська мова | так [1] |
Стан розробки | Активний |
Ліцензія | GPL |
Репозиторій | git.drupalcode.org/project/drupal.git |
Вебсайт | drupal.org |
Drupal ([ˈdruːpəl][3], укр. Друпал) — популярна вільна модульна система керування вмістом (СКВ, англ. CMS) з відкритим вихідним кодом, написана мовою програмування PHP та розповсюджується за ліцензією GNU.[4][5][6]
Drupal використовують як back end фреймворк для різних вебсайтів,[7][8] від особистих блогів до корпоративних та державних сайтів.[9] Drupal також використовується у системах управління знаннями та для ділової співпраці.[10]
Drupal може працювати у таких популярних системах як Windows, Mac OS X, Linux, власне, на будь-якій платформі, яка підтримує роботу вебсервера Apache, Nginx, Lighttpd або Microsoft IIS; також потрібна наявність системи керування базами даних MySQL/MariaDB, PostgreSQL 8.3, SQLite чи інші комерційні. Повні системні вимоги Drupal наведені [Архівовано 9 квітня 2016 у Wayback Machine.] на офіційному сайті.
У дистрибутив системи входить набір модулів, що дають наступні можливості:
Версія | Дата випуску | |
---|---|---|
10.0.0 | 22 грудня 2022 | |
9.5.1 | 4 січня 2023[11] | |
8.9.0 | 3 червня 2020[11] | |
7.94 | 14 грудня 2022[11] | |
6.38 | 24 лютого 2016[12] | |
5.23 | 11 серпня 2010[13] | |
Стара версія Стара версія, все ще підтримується Остання версія Остання бета-версія
|
Почав розробку Drupal в 2000 році бельгієць Дріс Байтаєрт (Dries Buytaert), який і понині є керівником проєкту. Назва drupal є спотвореною вимовою голландського слова druppel (крапля) і з'явилося в результаті помилки. 2000 року кілька студентів університету Антверпена використовували загальний ADSL-модем для доступу в Інтернет, і для спілкування користувачів цієї маленької локальної мережі Дріс створив внутрішній сайт. Програма, на якій працював сайт, не мала імені, поки Дріс не зібрався реєструвати доменне ім'я для нового сайту, і в результаті друкарської помилки замість dorp.org (від голландського dorp — село, цілком доречне ім'я для невеликої спільноти) був зареєстрований drop.org (англ. drop — крапля). Аудиторія нового сайту з часом змінилася на тих, що цікавляться розвитком нових вебтехнологій, і новий сайт поступово перейшов із любительського експерименту в проєкт з обговорень ідей вебпрограмування. 2001 року Дріс опублікував вихідний код drop.org під ім'ям «Drupal».[14] З тих пір розробка перемістилася на зареєстрований пізніше сайт drupal.org, який придбав статус офіційного сайту проєкту.
Інтерес до Drupal значно виріс у 2003 році, коли він був використаний для створення сайту «DeanSpace» Говарда Діна, одного з кандидатів від Демократичної партії на праймеріз Президентських виборів США у 2004 році. DeanSpace використовував opensource-розповсюдженість Drupal для підтримки децентралізованої мережі з приблизно 50 відокремлених, неофіційних продінівських вебсайтів, що дозволяли користувачам зв'язуватись один з одним і так само з учасниками виборчої кампанії.[15] Після завершення кампанії Говарда Діна вебфахівці з його команди продовжили розробку вебплатформи для підтримки політичної активності і в липні 2004 році створили CivicSpace Labs «першу компанію, з повноцінно винайнятими працівниками, що розробляла та поширювала технологію Drupal».[16] Також почали з'являтись інші компанії, що займались друпал-розробкою.[17][18] У 2013 на вебсайті Drupal вже налічувалось декілька сотень компаній, що використовували і займались Друпалом.[19]
Починаючи з 2014 року Drupal розробляється спільнотою[20] і швидко зростає. На лютий 2014 понад 1015000 сайтів використовують Drupal.[21] Сюди входять сотні організацій[22] включно з корпораціями, медіа та видавничими компаніями, урядовими та неурядовими організаціями[23], навчальними закладами та приватними особами. Друпал отримав кілька нагород для відкритих CMS від Packt та три роки підряд отримував мережеву нагороду Webware 100.[24][25]
Механізми рубрикації Кожен документ сайту може входити в одну або кілька рубрик. Самі ж рубрики можуть складати списки або складні ієрархічні структури довільної вкладеності (з множинними предками і перехресними посиланнями елементів).
Інтеграція всіх компонентів Можлива наскрізна рубрикація за всіма типами документів сайту (наприклад список ключових слів, загальний для форумів та блогів). Форум із виводом цікавих новин на головну сторінку або сайт новин із блогами та відеопрезентації — все це можна укласти в єдиний рубрикатор (або декілька рубрикаторів) і це буде виглядати частинами єдиного сайту, а не розрізненими сторінками об'єднаними лише загальним дизайном.
Готові рішення типових завдань Сайт новин, сайт-візитка компанії, блог або форум — такі сайти можна побудувати, користуючись тільки модулями рушія, що йдуть у поставці, потрібно тільки включити відповідні модулі, налаштувати їх і перенести сайт на хостинг.
Навігація і пошук Для зручності доступу до архівних матеріалів служать рубрикація контенту і пошук з урахуванням видів контенту, рубрик та вмісту. Документи зберігають незмінні посилання весь час свого життя (т. зв. перманентні посилання). Також за допомогою коротких посилань і псевдонімів сайт набуває запам'ятовуються імена розділів і окремих сторінок, які не використовують спеціальних символів і тому добре індексовані пошуковими системами.
Таксономія (taxonomy) — оригінальна методика притаманна 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:
До безперечних переваг Drupal слід віднести досить повну документацію з різних аспектів системи (переважно документація англійською мовою).
Дизайн сайту на Drupal будується на основі змінних тем оформлення. Немає єдиної схеми побудови дизайну. Натомість Drupal дає можливість використовувати різні «рушії тем», що використовують шаблони, зручні для редагування (шаблони XML у рушіях xtemplate і Smarty або шаблони на HTML і вбудований PHP у рушії phptemplate тощо), або створювати теми оформлення безпосередньо звертаються до API Drupal. У комплект поставки Drupal включений рушій тем на основі phptemplate і кілька прикладів тем. Інші пакети тем можна завантажити на сайті проєкту.
Починаючи з версії 4.7 Drupal підтримує технологію Ajax для динамічного підвантаження вмісту без повного оновлення сторінок. У версії 5 для роботи з JavaScript додана бібліотека JQuery. З версії 6.0 з'явилося створення форм за допомогою AHAH(без повного перезавантаження сторінок сайту).
Українська спільнота активно займається локалізацією текстів ядра на українську мову.
Найбільшим досягненням в перекладі можна вважати те, що ядро 8-ї версії Drupal першим було повністю перекладено саме українською мовою.[29][30]
Відокремлений Drupal належить до архітектури Drupal, де бек-енд Drupal надає вміст іншим зовнішнім системам, по суті, слугуючи центральним сховищем вмісту, який можна обслуговувати на різноманітних пристроях. Часто розглядається як найкращий інструмент для реалізації розділеного внутрішнього вмісту та багатофункціонального зовнішнього інтерфейсу, Decoupled Drupal має внутрішню інноваційну силу для створення виняткового цифрового досвіду. Відокремлення Drupal дозволяє розробникам створювати програми, готові до майбутнього, які можна розміщувати на різних каналах, а також забезпечує швидший час запиту-відповіді користувача. Давайте розберемося з розділеним Drupal (безголовим Drupal) від А до Я.
Кожен веб-сайт не просто відображає вміст, веб-сайт — це засіб, за допомогою якого споживається та представляється споживачеві унікальний і досвідчений вміст. Крім того, веб-сайти повинні підтримувати узгодженість макета, досвіду та брендингу незалежно від пристрою, з якого до них здійснюється доступ. Відокремлений Drupal є одним із найвідоміших інструментів, який відповідає високим очікуванням клієнтів щодо представлення вмісту, взаємодії з користувачем і узгодженості на різних пристроях.
У світі, де бренди постійно працюють над створенням багатоканального досвіду, Drupal представляє себе в різних форматах, щоб задовольнити різноманітні очікування організації та збалансувати потреби редакторів контенту та розробників веб-сайтів. Давайте розберемося з різними методами або варіантами відокремлення drupal. Це також доступна версія цієї блок-схеми, описана словами одним із засновників drupal.[31]
Коли вам потрібно надати високоінтерактивні інтерфейси з розширеним користувацьким досвідом, ви використовуєте додатковий рівень JavaScript поверх інтерфейсу Drupal, роблячи його безголовим/відокремленим. Цей метод називається Drupal з прогресивною розв'язкою.
JavaScript відповідає за відтворення окремого блоку чи невеликої частини сторінки або може відтворювати всю сторінку.
Різниця в контролі полягає в його прихильності до JavaScript, чим менше сторінка прихильна до JavaScript, тим менша залежність від розробників. Це означає, що редактори можуть використовувати кращі адміністративні можливості та легко змінювати, редагувати або оновлювати вміст. Javascript гарантує, що макет та інші види взаємодії з користувачем збережуться або не будуть сильно порушені під час оновлення вмісту.
Цей варіант підходить організації, яка прагне регулярно розміщувати вміст на своєму веб-сайті або потребує регулярного вмісту (наприклад, ціни, вакансії чи зображення, характеристики, специфікації продуктів тощо).
На початку в повністю відокремленій архітектурі Drupal був лише CMS, який надає дані, а програма JavaScript із відтворенням на стороні сервера керує всім відтворенням і розміткою під час спілкування з Drupal через API веб-сервісу.
Приблизно кілька років тому ця архітектура розділилася на дві окремі парадигми через зростаючу складність розробки JavaScript.
Повністю відокремлений Drupal можна реалізувати двома способами, а саме: повністю відокремлений додаток і повністю відокремлений статичний сайт.
Повністю відокремлена веб-програма Drupal передбачає повне розділення проблем між рівнем презентації та всіма іншими аспектами CMS. З іншого боку, на повністю відокремленому статичному сайті інтерфейс повністю вбудований у фреймворк. Файли HTML/CSS/JS використовуються для зберігання вмісту в рамках. Додатки з повним роз'єднанням не мають деяких функцій, таких як редагування на місці та керування макетом, але цей метод досить популярний серед розробників (які використовують Angular, React, Vue.js тощо для створення додатків), оскільки вони мають набагато більший контроль. над інтерфейсним модулем.
Хоча ця архітектура покращує продуктивність, безпеку та зменшує складність, недоліком є те, що навіть за простими змінами вмісту слід виконувати завдання перекомпіляції та публікації повного веб-сайту. Звідси і назва «статичний». JAMstack (JavaScript, API, Markup) можна використовувати, щоб обійти складності розробки JavaScript під час розробки повністю відокремлених статичних сайтів Drupal.
Jamstack означає Javascript, API і Markup. Це поєднання повністю відокремленого статичного сайту та відокремленого сайту. По суті, це статичні сторінки з компонентами Javascript, які діють через API.
Перше рішення, яке ви повинні прийняти, це вибрати між традиційним і роз'єднаним. Слідом за тим, яка відокремлена архітектура. Важливо розуміти, що Decoupled Drupal — це більше, ніж нова модна технологія, яка дозволяє розробляти веб-додатки асинхронно. Не дозволяйте нікому вмовляти вас у це, якщо ви не бачите явну цінну перевагу, оскільки безголові програми Drupal потребують добре обізнаної команди розробників або партнерів, і ними не можуть керувати аматори чи новачки.
Вибір безголової або відокремленої архітектури Drupal — це більше, ніж просто ІТ-рішення, воно потребує структурного бачення та стратегічного розуміння, оскільки для скасування неправильного рішення потрібні однакові час і зусилля.
Ось кілька факторів, які вам потрібно враховувати безголовий drupal:
Зрозумійте той факт, що поступово роз'єднані програми можна легко розвинути або змінити на повністю роз'єднані програми.
Якщо у вас вже є або є бачення створення більше ніж 5 каналів, тоді вам потрібно створити повністю відокремлену архітектуру Drupal. Якщо у вас щоденно дуже велика кількість відвідувачів, виберіть статичний сайт. Якщо ви не впевнені ні в одному з наведеного вище, тоді створіть проміжну архітектуру з поступовим розв'язуванням.
Крім того, подивіться внутрішньо, якщо у вас є сильна команда чи ІТ-партнер, якому потрібен повний контроль над макетом і вмістом, тоді виберіть архітектуру з поступовим роз'єднанням, якщо не повністю роз'єднану.
Відокремлення має свої обмеження, деякі з яких:
Перш ніж визначитися з архітектурою, важливо отримати думку досвідченої агенції Drupal. Вони повинні мати великий досвід у детальному розумінні бачення та шляху вашої компанії, перш ніж запропонувати відповідне рішення Drupal. Крім того, вони повинні гарантувати, що ваша архітектура:
Загалом, агенція гарантує, що ви отримуєте швидшу та глибшу інформацію, яка озброює вас даними для прийняття правильних рішень.
Перелік агенцій друпал
((cite web))
: Cite має пустий невідомий параметр: |4=
(довідка)
Каркаси вебзастосунків (веб-фреймворки) | |
---|---|
ASP.NET | ASP.NET MVC Framework · BFC · DotNetNuke · MonoRail · Umbraco |
ColdFusion | ColdSpring · Fusebox · Mach-II · Model-Glue · onTap |
Common Lisp | ABCL-web · blow · BKNR · SymbolicWeb · UnCommon Web |
Erlang | BeepBeep · Chicago Boss · Erlang Web · ErlyWeb · Inets · Misultin · Mochiweb · Nitrogen · WebMachine · Yaws |
Flex | Cairngorm |
Java | Apache Cocoon · Apache Struts · Apache Tapestry · AppFuse · Aranea framework · Click Framework · Cooee framework · Flexive · Google Web Toolkit · Grails · Hamlets · IT Mill Toolkit · ItsNat · JavaServer Faces · JBoss Seam · Makumba · Mentawai · Oracle ADF · OpenLaszlo · OpenXava · Play Framework · Reasonable Server Faces · Restlet · RIFE · Shale Framework · SmartClient · Spring Framework · Stripes · ThinWire · WebObjects · WebWork · Apache Wicket · XTT Framework · ZK Framework |
Клієнтські для JavaScript | ASP.NET AJAX · AJILE · Clean AJAX · Backbone.js · Dojo toolkit · Echo JS · Ext JS · jQuery · KnockoutJS · MochiKit · Meteor · MooTools · OpenLink AJAX Toolkit · Prototype · React · qooxdoo · Rialto Toolkit · Rico · script.aculo.us · SmartClient · Spry framework · WinJS · Underscore.js · Yahoo! UI Library |
Perl | Catalyst[en] · Interchange · Maypole framework · Mason · Mojolicious |
PHP | Akelos PHP Framework · CakePHP · Chisimba · CodeIgniter · Drupal · DokuWiki · eZ Publish · FUSE · Horde · Joomla! · Kohana · MODX · Phalcon · PHP For Applications · PHPOpenbiz · PRADO · Qcodo · Seagull PHP Framework · Simplicity PHP framework · Laravel · SilverStripe · Symfony · VirtueMart · Zend Framework · Zoop Framework · Yii |
Python | |
Ruby | |
Scala | Lift · Play Framework · Scalatra |
Серверні для JavaScript | AppJet · firecat · Helma Object Publisher · Node.js |
Lua | |
Dart | |
Інші |