В 2008 году, когда я впервые услышал о Друпале, я жадно хотел ее попробовать, так как на тот момент не знал ничего кроме WordPress и Joomla. Не зная историю происхождения и значение названия, оно мне показалось слишком серьезным и внушающим доверия. Может на тот момент оно с чем-то ассоциировалось или просто было созвучно чему-то серьезному… Хотя желание посмотреть, что же это такое, было очень большим, какой-то странный страх перед той неизведанной серьезностью удерживал меня. Все же пришло время и я решился на знакомство с самой серьезной CMS для меня. Знакомство то было полным разочарованием! Привыкший к структуре Joomla, я боялся представить жизнь без компонентов и плагинов. В общем, то время, которое я провел с Drupal — было недолгим и крайне непродуктивным. И я решился расстаться с ней, как минимум — надолго, как максимум — навсегда.
Расставание это оказалось достаточно продолжительным. Я решил вернуться к Drupal только в конце прошлого года, когда в массы продолжала прорываться версия под номером 7. Но и второе начинание наталкивало меня на мысль о какой-то суровости и неведомой мне серьезности. Может виной тому были стандартные шаблоны, ведь еще никто не отменял «встречание по одежке». Но я пересилил себя и, набравшись мужества, установил эту CMS второй раз. В этот раз я планировал капнуть чуть глубже чем прошлый и понять, на самом ли деле эта система идеальна именно для программистов. Сразу оговорюсь, что вовсе я не программист и моих знаний php хватило только на более или менее продвинутую гостевую книгу, которую я писал под чутким руководством друга.
На этот раз я решил, что правильным подходом к изучению Drupal будет понимание принципа работы и поиска аналогий с уже знакомыми мне CMS. Ознакомившись с фундаментальными понятиями, в голове все начало становиться на свои места. Рушились стереотипы Joomla, где были компоненты, модули и плагины. В понятиях пришлось перестраиваться и находить аналогии (например: Joomla-модули ≤ Drupal-блоки, Joomla-компоненты и плагины ≤ Drupal-модули). На это ушло не так много времени. Нужно было узнавать сильнейшие стороны Drupal, в которых по словам моих товарищей таилась гибкость и всемогущество.
Погружение
Однажды, один знакомый «друпалист» сказал мне, что если я узнаю тонкости модуля Views, то у меня практически не будет невозможного в плане вывода и представления информации на сайте. Я поверил на слово, и уже через небольшой промежуток времени обратился к нему с первой проблемой. Помнится проблема была на тот момент для меня нерешимая и я посетовал знакомому, что уж слишком сложный этот Друпал для меня. Он недолго думая, прислал мне забавную кривую обучения популярных CMS:
Долго я разглядывал эту картинку, пытаясь найти себя на этой кривой. Может меня уже можно отнести к тем, кто упал, даже не покорив вершину? Рассмотрев ее внимательнее я понял, что это не больше чем шуточная картинка с долей правды. Настроившись двигаться дальше, я отбросил мрачные мысли и принялся искать решения. Большую часть ответов на свои вопросы я находил на официальном сайте Drupal. Русскоязычные форумы оставили о себе плохие впечатления. Там мало, кто помогает бесплатно. Хотя, изредка, все же, появляются те, кто делится за «так» очень полезной информацией, реально расширяющей кругозор.
Отбросив все стереотипы, я стал погружаться глубже; все чаще и чаще самостоятельно находил решения на поставленные перед мной задачи и узнавал многие прелести Drupal, такие как модули Views, Rules и разного рода темизации. Зная, пусть и не на сто процентов, данные темы, мне пришло понимание того, что многое в Drupal можно сделать без кодинга вообще. Жаль, что такое понимание приходит далеко не всем, кто сталкивается с с этой CMS…
Drupal не для программистов?
Однажды знакомый попросил меня помочь разобраться с сайтом, который был создан с помощью Drupal каким-то суровым программистом. Я с радостью отозвался на просьбу о помощи и, получив доступы к сайту, был слегка шокирован. Сайт был создан без использования привычных подходов: для меню, создатель того сайта написал свой модуль; категоризация была сделана без использования таксономии; многие информационные блоки, были вшиты прямо в шаблон. Я понял, что многие php-программисты используют Drupal всего на несколько процентов, не используя весь его потенциал. Остальное пишут сами, иногда в модулях, порой прям в шаблоне, а нередко дописывая файлы, которые, по сути, являются ядром Drupal.
Есть ли в этом необходимость? В том, чтобы писать что-то свое? Иногда — да, но такое возникает редко. Для большинства задач есть прекрасные модули, которые уже оттестированы и успешно применены на многих работающих проектах. Конечно, можно встретиться с задачей, для которой модуль еще не написан, но и в таком случае можно что-то придумать, поменяв подход к выполнению поставленной задачи. Зачастую на невыполнимую задачу нужно посмотреть чуть-чуть иначе и становится ясно, что решение на поверхности и нет никакой необходимости городить что-то свое.
Естественно, бывают задачи, когда без программирования не обойтись, но сделать это можно правильно, не трогая код ядра, шаблона или стороннего модуля. В Druapl из коробки есть возможность программировать прямо через веб-интерфейс: будь то в материале, в блоке или представлении (Views). По моему, такие куски кода значительно проще обнаружить и обслужить.
Заключение
Из вышесказанного, ясно, что для решение конкретной задачи обычно есть не один способ решения. И тот что используют программисты имеет место быть. Но у меня остается вопрос: зачем тогда вам, дорогие программисты, вообще нужен Drupal или другая CMS? Может пора переходить на фреймворки, там кодить придется чаще и там это вполне ожидаемо…
Автор: realovich