drush

Drush (от Drupal shell) — утилита с интерфейсом командной строки, созданная для управления и администрирования Drupal сайтов, доступна как и для Linux, так и для Windows систем. Drush используется многими разработчиками например для скачивания/установки/удаления модулей, установки сайтов на Drupal, применении обновлений модулей в базе данных и многого другого.

Примеры программного создания полей в Drupal 7

Подсмотреть структуру доступных прототипов можно на странице сайта /devel/field/info при включенном модуле devel.

Темы

Working programmatically with fields in Drupal 7

Building blocks of Drupal

Everything is an entity in Drupal. Everything starts like an entity anyway; Node is a kind of entity, user as well, entities – just specialized. If you are familiar with OOP, this is very basic stuff. When dealing with content, at the top of the hierarchy, we have the content type, which his is kind of a blueprint for the node. To generalize even further – we have the field that’s kind of a blueprint for a field instance.

Drupal: В Интернете появилась доменная НОДА

Новости ‪Drupal‬ (тут смайлик):
В интернете появилась аж целая доменная НОДА. Домен Грузии на грузинском გე в punycode выглядит как XN--NODE.

http://servisator.ru/news/2015/06/13/xn--node

Система «хуков» (Hooks)

CMS Drupal основана на функциях, но использует принципы ООП. Сделано это при помощи системы «хуков». Так называются специальным образом именованные функции, которые позволяют модулям и ядру Drupal взаимодействовать между собой и обмениваться данными оставаясь при этом независимыми. Любой модуль или ядро может либо предоставлять хук, либо реализовывать. В документации на Drupal хуки описываются как функции вида hook_hookname, например, hook_menu - один из основных хуков системы, определяющий обработку HTTP-заппросов. Реализация хука в модулях очень проста.

Принципы работы системы

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

Получив HTTP-запрос Drupal ищет не сопадает ли он с имеющимися в распоряжении системы данными. Совпадение может быть, как полным, так и по маске. 

 

Устройство базы данных Drupal

Продолжение следует...

Код системы пишется с соблюдением стандартов кодирования. Как ядро, так и модули выдают готовый HTML-код, но он всегда может быть перекрыт.

Принципов этого я коснусь ниже, пока замечу, что системным именем является не название папки модуля или темы, а название находящегося внутри info-файла. Например, находящийся в папке cck модуль Content Construction Kit, в системе называется content.

 

Устройство файловой системы Drupal 6

Посмотрим, что мы увидим открыв корневую папку нашего уже работающего проекта сайта (для компактности изображения, некоторые системные папки и README-файлы удалены).

Начну с файлов внизу изображения.

Коротко о Drupal 6

Drupal 6 - это гибкая модульная система управления содержанием сайта, написанная на PHP. Для хранения данных применяются БД MySQL или Postgre SQL. Механизмы кеширования могут использовать базу данных (по умолчанию), файловую систему сайта или кеширование в оперативной памяти сервера (memcached и пр.) как по отдельности, так и в комбинации в зависимости от вида кеша. На Drupal 6 легко реализуется многоязычность (включая разные домены), мультисайтинг (как с общим кодом, так и с общей БД), а также общие пользователи для разных сайтов.

Вводный курс Drupal 6 для разработчика

Потребовалось ввести пару человек в работу над моими проектами на Drupal 6, которые были до этого с ним незнакомы. С друпалом. Поэтому решил написать для специалистов уже хорошо знакомых с веб-разработкой и программированием на других CMS/CMF, но новичков в Drupal. Эта статья поможет вам войти в курс дела и узнать с чем вы столкнетесь на любом большом или не очень Drupal-сайте, если вам вдруг привалило счастье его поддерживать. А также узнать, как все это работает. А для меня это обобщение своего опыта, связанного с поддержкой и разработкой как своих, так и чужих проектов.

Быстрый способ оптимизации параллельных загрузок на Друпал и nginx

Однажды разглядывая «водопадный» дисплей работы сети в Опере по мере того, как в него грузился один из моих проектов, я понял, что пора и на нем сделать оптимизацию того типа, который указан в заголовке статьи. При довольно быстром в пол-секунды получении кода страницы, полсотни вставленных в нее картинок секунд на пять оттягивали заветное событие DOM loaded, да и разница между DOM loaded и Page loaded тоже была того же порядка. Растём-с.

Программное создание CCK-поля в Drupal 7

Для того чтобы программно создать своё CCK-поле при установке своего модуля, вам нужно использовать хук install/uninstall в файле .install.

Порядок такой: сначала создаётся поле, а только потом его экземпляр. Удаляется в обратной последовательности.

Если использовать хуки enable/disable, то экземпляры поля будут создаваться при каждом включении модуля.

Вот здесь хорошо расписаны типы всех полей и типы виджетов Working programmatically with fields in Drupal 7

Модуль клонирования типов страниц (нод, контента, содержимого) в Drupal 6

Модуль дополняет функционал CCK, связанный с экспортом настроек типов нод в пределах одного Drupal-проекта. Функционад импорта-экспорта в модуле Content copy довольно неудобен для конечного пользователя, которому хочется одной волшебной кнопки, вместо копирования кода из окошка в окошко. Для того и сделан этот модуль. Я весьма удивился, что не нашел подобного функционала на www.drupal.org. Плохо искал?