О модулях в Drupal

Сам Друпал структурно представляет собой некий набор модулей. В стандартной сборке, которую и качают с сайта drupal.org находятся собственно системные файлы и несколько модулей. Некоторые их них необходимы, другие - "на попробовать" и по дефолту отключены. И вот после установки начинается все самое интересное. Выясняется, что сам по себе дефолтная сборка не умеет вообще ничего. Даже нет примитивного форматирования текста при создании новости. Ах да, тут все новости или статьи, или материалы непременно называются "нодами". От английского слова "node" что переводится на русский как

node _n. 1> _бот. узел
2> _физ. _филос. узловой пункт
3> _мед. нарост, утолщение
4> _астр. точка пересечения орбит
5> _мат. точка пересечения двух линий

Креативненько. Итак, после установки Drupal начинается изучение того, при помощи какого модуля можно сделать самые примитивные вещи. Например, использовать ЧПУ в урлах (которые тут называются 'clean links'). Встречается и еще более жесткая экзотика, с которой я столкнулся в процессе наладки вебкниги.ком. К примеру, тут есть некий параметр $links, который выводит в короткой части новости на главной странице (тизер новости) одновременно ссылку на возможность отправить комментарий и... ссылку на полный текст новости! Причем этот параметр не разделяется, и невозможно хотя бы поменять местами эту константу. Ну вот есть у вас блок

Комментировать | Подробнее

и все, финиш. Хотите поставить ссылку на полную версию статьи - просим ставить ее в блоке со ссылкой на комментарии. Не хотите - как хотите, колхоз - дело добровольное! Я уже не говорю о том, что ссылку "подробнее" надо ставить на том месте где заканчивается тизер 🙂 Но тут (неожиданно, как в телемагазине!) выясняется, что не все потеряно, и этот вопрос можно решить... специальным, отдельным модулем. Который весит 25Кб. Чертовски удобно, как сказал бы один мой знакомый... Вот я на простом примере показал, к чему приводит такая псевдоуниверсальность с концепцией модульности: система кажется совершенно абсурдной человеку со стороны, не программисту. Это выливается в ненужную, излишнюю нагрузку на сервер. Грубо говоря, чтобы сходить из кабинета в туалет, приходится строить космический корабль, который не факт что поместится в квартире! 🙂 Зато - бесплатно, открытокодно: оченно в духе времени. Ну да ладно, это лирика.

Итак, на вебкнигу я поставил следующие модули:

backup_migrate. Для упрощения как минимум бэкапа базы данных, чтобы не использовать сторонник программы и не лазать в phpmyadmin.

bocu. Загрузка фото с локального диска в соответствующую директорию друпала. Работает из текстового редактора.

bueditor. Собственно, текстовый редактор. Не WYSIWYG т.к. я их не люблю за кривизну и лишний код. Простой редактор с самым начальным форматированием (стронги, хеды и т.п.) Кстати, заметно подтормаживающий браузер.

readmore. Тот самый плагин для отдельного отображения ссылки на расширенный текст новости, о котором я рассказал выше.

pagination. Модуль, который автоматически разбивает длинные новости на страницы. В принципе, именно из-за него я выбрал Друпал. И вот как на зло - теперь сомневаюсь: а нужна ли мне в принципе эта функция? 🙂

pathauto. Этот красавец делает автоматически ЧПУ. Для корректной его работы пришлось найти и закачать файл i18n-ascii.txt, иначе он не умеет транлитерировать кириллицу в латинницу...

token. А он требуется для pathauto, которые без токена не умеет работать с транлитерацией (а что он, спрашивается, умеет?)

Искренне убежден, что все эти модули должны входить в поставку нормального движка. Потому что в таком случае они будут согласованы меньше собой, не будут дублировать свои функции и в итоге управление ими будет проще, а самой системе будет легче жить с ними...

Например, я пытался поставить модуль, который автоматически генерит sitemap.xml, в результате модуль генерил ссылку только на главную страницу и замирал на этом. Пошел курить форумы - море народу с таким багом, причем многие решения так и не нашли, а другим приходилось руками лезть в базу, вычищать созданные модулем страницы, затем сносить модуль с танцами, потом заново переставлять... Чертовски удобно 🙂 Ну или вот свежий пример: как работают комментарии статей. Мы вводим текст комментария (зачем-то есть еще тема (заголовок) комментария - полный бред), и затем внимательные люди впадают в ступор, т.к. ... нет кнопки отправить! Есть только кнопка "предпросмотр" 🙂 Соответственно, обычные люди пишут комментарий, жмут не глядя на кнопку и спокойно закрывают страницу. В результате никакого комментария не добавилось 🙂

Бред в квадрате, юзабельности - ноль. Однако мы умные - мы идем гуглить, и вводим в поисковике просто три слова (мы же ученые): предпросмотр комментариев Друпал. Вывыливается море страниц с заголовками "Как отключить предпросмотр комментария?" На сайте друпал.ру состоялся такой славный диалог у юзера с "гуру" Драпаловодства: - как отключить этот бред? - отключите в настройках скрипта - звучит отлично, но такой опции нет! - Тогда пиши модуль и через hook_form_alter отключай эту кнопку. drupaldance и setegnom думаю вам помогут.

Удобство в кубе, я обожаю Друпал 🙂 К счастью, все оказалось гораздо проще и приведенный диалог двухгодичной давности устарел. После более продолжительного поиска выяснилось, что ВСЕ эти опции можно настроить в дефолтной поставке скрипта. Вот казалось бы, очевидная вещь, но вдруг на секунду возлюбил друпал: да, дефолтные настройки сделаны просто сюрреалистически глупо, как будто во вред пользователю... но ведь сделали недавно эти функции в сборке! Ура, товарищи! Этот материал я буду пополнять по мере углубления в Друпал 🙂

Добавить комментарий