Drupal

WebDev Заметки на полях

Постоянно появляются какие-то мысли, ну или просто натыкаюсь на интересные решения, которыми хочется поделиться. В отдельности все это на пост явно не тянет, но вот публиковать подборочками почему бы и нет.

PHP rand() vs mt_rand()

Раньше был сторонником использования
mt_rand()
заместо
rand()
. Ну а что, работает аж в 4 раза быстрее, да и на выходе выдает не просто псевдослучайные числа, а более случайные псевдослучайные! Во всяком случае так говорит официальная документация.

Может оно так и было раньше (точнее таки да, было), но все течет, все меняется. На данный момент эти две функции работают примерно одинаково быстро (тестил), и "случайность" у них плюс/минус одинаковая, вот такого уже больше нет.

Алгоритмы используются разные, это да. Для mt_rand это Mersenne twister, для rand либо LCG (для Windows), либо LFSR (для Линукс). Но данные различия уже скорее для эстетов, лично я остаюсь при rand(), раз уж разницы особой нет.

Добавление пагинатора в Drupal

Прикрутить пагинатор в Drupal'e более чем простая задача. Пара строчек кода, не более, в буквальном смысле. Даже странно (и немного обидно), что я потратил как-то уж слишком много времени, чтобы разобраться в этом.

Для теста создадим модуль test_pager, который просто выводит на страницу какую-то информацию. Нам понадобится два файлика, файл конфигурации test_pager.info и, собственно, test_pager.module.

Drupal. Каталог sites/all/.

Мало кто использует папку sites/all по назначению - в большинстве случаев этот каталог остается пустым с одним лишь одиноким README.txt внутри. А зря. Заглянем же все-таки в этот README.txt:

This directory should be used to place downloaded and custom modules
and themes which are common to all sites. This will allow you to
more easily update Drupal core files. These modules and themes should
be placed in subdirectories called modules and themes as follows:
sites/all/modules
sites/all/themes

В двух словах - дополнительные модули и темы надо устанавливать в папки sites/all/modules и sites/all/themes соответственно, а не в папки modules и themes в корне сайта.

Drupal. Модуль Views 404.

Обычно я о конкретных модулях для Drupal не пишу, но здесь особый случай.

Views 404 — малоизвестный модуль (по статистики drupal.org его используют на данный момент чуть больше 70-ти сайтов), закрывающий достаточно серьезную брешь в модуле Views, самом популярном модуле, который установлен фактически на каждом первом более-менее сложном сайте (по статистике drupal.org сейчас Views используют около 240к сайтов).

Проблема с Views заключается в следующем — при создании с его помощью страницы с адресом, например, site.com/page, любой адрес вида site.com/page/* будет возвращать 200-тый код состояния HTTP вместо ожидаемого 404-ого.

Известные сайты на Drupal

Ниже представлена подборка известных сайтов, сделанных на Drupal. Первостепенной задачей было не показать возможности Drupal, а продемонстрировать популярность использования этой CMS для создания порталов крупных компаний и государственных сайтов. Поэтому ссылки собраны в основном на официальные сайты организаций, правительственные сайты, визитки знаменитостей и т.д.

Сайты про Drupal

Решил в отдельном посте собрать каталог ссылок на сайты про Drupal. Пост постараюсь постоянно держать актуальным, буду добавлять новые ресурсы и удалять заброшенные. Сразу оговорись – это не сборник всех сайтов про Drupal, а только тех, которые являются содержательными по моему субъективному мнению.

Присоединение изображений к ноде в Drupal

При создании сайта часто стоит задача в реализации возможности присоединения изображений к создаваемым заметкам, причем чтобы изображения можно было загружать через веб-интерфейс во время написания или редактирования статьи.

В WordPress нужный функционал уже включен в дистрибутив (блоговый движок же, возможность присоединения картинок к постам просто обязательна), в Joomla тоже все решается стандартной комплектацией движка, пусть и криво (загрузка файла через «Медиа-менеджер» с последующим копированием адреса загруженной картинки и вставки его в статью через визуальный редактор), хотя Joomla использовал только версии 1.0.x, может в 1.5.x ситуация лучше обстоит, не знаю, не проверял.

Дистрибутив же Drupal не предусматривает никаких стандартных средств присоединения картинок к нодам, но, однако, не только не исключает саму возможность, но и предоставляет вебмастеру целый ряд различных способов реализации аттача изображений.

Обновление Drupal

Обновление Drupal не такая уж и сложная задача, в большинстве случаев можно уложиться за час, а то и меньше, причем никаких особых знаний не требуется.

Лично я не зациклен на постоянном обновлении Drupal в пределах одной ветки, если поставил Drupal 6.14 или 6.15, то так и буду держать на нем сайт, несмотря на то, что сейчас актуальной версией является 6.16. Конечно, если в новой версии фиксится какой-то значительный баг, то обновиться стоит, а так обновление ради обновления, ИМХО, не имеет особого смысла. Какие баги пофиксились в последней версии, можно посмотреть на официальном сайте Drupal.