При разработке проектов, сложнее чем сайт-визитка, нередко возникает необходимость в обработке больших объёмов данных. Сплошь и рядом заказчики хотят интеграцию с 1С, импорт существующих прайсов, выгрузку на Яндекс-Маркет, миграцию откуда угодно. Очевидно, что создать тысячу нод за один запуск не выйдет, а раз так, то на помощь приходят пакетные операции aka
Batch operations.
Совсем скоро, 2 июня в субботу в Москве состоится крупнейшая конференция по Drupal в России. Аудитория конференции — это профессиональные разработчики, SEO-специалисты, системные администраторы, владельцы веб-студий, руководители проектов из России, стран ближнего и дальнего зарубежья.
Как известно, некоторым модулям (таким как Google Analytics например) необходима некоторая начальная настройка, прежде чем они смогут хоть как-то функционировать. Кроме того, иногда, приходится сталкиваться с ситуацией, когда еще при установке модуля требуется узнать от пользователя какую-то информацию. Конечно, Drupal позволяет в каждом конкретном случае сделать все это с помощью механизма хуков. Однако, я решил, что будет лучше иметь некий унифицированный способ, интерфейс для решения данной задачи. Для этих целей и был написан небольшой сервис-модуль под названием PostInstall.
Некоторое время назад Министерство Юстиции обновило свой сайт, выложив в сеть новую версию своего интернет-представительства, построенную на Drupal:
Теперь официальный сайт Министерства юстиции Российской федерации работает полностью на базе свободного программного обеспечения.
Цитата с сайта
В разработке проекта зачастую принимают участие разработчики разного уровня. Это приводит к тому, что нет строгого формата написания кода. За качеством кода на проекте приходится постоянно следить старшим разработчикам и это отнимает у них кучу времени.
Для того чтобы
наказать говнокодеров облегчить страдания тех, кто делает ревью кода, можно использовать автоматические средства проверки кода, которые всем давно известны. Это PEAR и PHP Code Sniffer.
При создании очередного мультиязычного сайта возникла задача, не используя стандартный блок переключения языков, добавить переключатель языков.
На первый взгляд ничего сложного.
Но сделав несколько попыток, столкнулся с задачей поддержки страниц созданных через views, выборок анонсов на страницах терминов таксономии и переводов, привязанных к нодам модулем «Content translation». Так же полезным, оказалось, задуматься о том, что у вышеупомянутых страниц (node) и терминов таксономии существуют алиасы.
К моему удивлению Google не дал ожидаемых результатов, а советов по перепиливанию ядра drupal я категорически не воспринимаю (для этого существует
API и немного фантазии).
Скурив пару чашку кофе и выпив не одну сигарету (юмор), задачу решил и готов поделится решением с теми, кто еще успеет в своей жизни наступить на подобные грабли.
Обычно я не пишу статьи на тему как использовать те или иные готовые модули для реализации некоторой функциональности. Гораздо больше меня интересует непосредственно создание модулей, взаимодействие с ядром, работа с различными API и т.п. «программистские» и архитектурные вещи.
Но, на этот раз, по многочисленным просьбам трудящихся я все таки решил написать один How-to.
Итак, речь в настоящей статье пойдет о том, как готовыми средствами Drupal 7 и парой шаблонов реализовать баннер-ротатор наподобии того, что встроен в один из моих ресурсов (
http://labridge.ru).
Конечный результат должен выглядеть примерно так:
Views — очень классный модуль. Он позволяет сэкономить километр времени, когда нужно сделать простые сборные страницы. Но в нем иногда не хватает гибкости. Например, для темизации. Либо для построения нужной структуры адресов. Либо в случае, когда нужно сделать сложную логику какого-нибудь каталога. Не важно. Суть в том, что зачастую проще написать простой модуль, чем извращаться с Views и темизацией полей. (С таксономией та же ерунда, между прочим.)
Я хочу показать, как просто создавать сборные страницы (и не только) программно — через модули. Достаточно знать пару хуков. Снипеты, которые я приведу ниже, я сохранил себе в Эверноуте — очень удобно.
Думаю, многие сталкиваются с
подобной проблемой: создаешь с помощью
hook_node_info() новый тип контента, но все равно приходится лезть в интерфейс и настраивать в ручную такие параметры, как отображение комментариев, настройки публикации, отображение даты/автора и прочие вещи, которые
hook_node_info() не охватывает. А каждый раз использовать костыли типа variable_set — неудобно.
Дрис Байтаерт, создатель и руководитель проекта Drupal, недавно посетил Индию. Linux For You поговорил с ним о его планах по расширению сферы Drupal в Индиии, о Drupal 8, о компаниях, специализирующихся на Drupal и их бизнес модели, об Open Source и др.
Существует множество систем управления контентом, где именно вы позиционируете Drupal и чем вы отличаетесь?
Drupal это интересное животное, если вы присмотритесь внимательно. На нем работает два процента всех сайтов в мире. Но самое уникальное в Drupal это то, что он масштабируется от больших веб сайтов до очень маленьких. На нем работают блоги, но на нем также работают большие сайты медиа компаний. Он также уникальный в своих возможностях и функциональности. И все благодаря сообществу Drupal, в котором десятки тысяч людей развивают Drupal. У нас есть более 10 000 модулей. Поэтому мы находится в таком положении, что мы можем создать любой вид сайта на Drupal.
Это делает ваш вопрос особенно интересным, потому что вы можете использовать Drupal для ведения блогов, в этом случае мы конкурируем WordPress, и вы также можете использовать Drupal для создания больших корпоративных веб сайтов, в этом случае мы конкурируем с проприетарными программными решениями. В одно и то же время, вы можете использовать Drupal для сайтов с совместной работой. В этом случае мы конкурируем с Jive. Выходит, что Drupal уникален и не похож ни на одну другую платформу, он применим ко всем этим различным форматам.