Клонирование типов материалов в Drupal
В статье описывается удобный и быстрый способ клонирования типов материала в Drupal 7 с помощью модуля Bundle Copy.
В статье описывается удобный и быстрый способ клонирования типов материала в Drupal 7 с помощью модуля Bundle Copy.
В типе материала сайта на Drupal создано поле типа «Изображение» с неограниченным количеством значений. Необходимо при добавлении или обновлении ноды этого типа заполнять атрибуты alt для картинок, загруженных в поле «Изображение», заголовком ноды, если значения alt не заданы.
Чтобы получить значение поля типа материала по умолчанию в Drupal 7 (это может понадобиться, например, при программном создании ноды для изменения этого значения перед сохранением), воспользуемся функцией API field_info_instance. Узнаем, например, значение по умолчанию поля body в типе материала с машинным именем content_type:
Для загрузки объекта сущности Field Collection в Drupal 7 можно воспользоваться функцией API entity_load(). Примеры вы найдете здесь.
По умолчанию в Друпале можно ограничить видимость блока по ролям пользователей. Например, выводить блок только для анонимных посетителей. Но часто возникает задача - выводить блок для пользователей всех ролей, кроме администраторов сайта.
В Drupal 7 метки полей по умолчанию выводятся в теге div с классом field-label. Однако нередко возникает задача вывести метку поля ноды или другой сущности в виде заголовка h2 или h3 или в другом теге. Это улучшает семантику кода страницы, а также зачастую связано с потребностями верстки макета сайта. Также иногда целесообразно назначить метке атрибут id для организации ссылки-якоря на конкретное место страницы сайта.
Предположим, у типа содержимого сайта на Drupal есть два поля для хранения цены в разных валютах, например в долларах и гривнах. Пусть поле «Цена в гривнах» является обязательным, т.е. будет заполнено в любом случае при создании ноды с помощью формы в админке сайта. При этом с помощью Views мы создаем страницу каталога, в котором поля стоимости должны выводиться с условием: если поле «Цена в долларах» заполнено, то отображать именно его, а если пусто, то выводить цену в гривнах.
Адаптивная HTML5-тема Omega предоставляет несколько вариантов макета с помощью настройки layot. Стили CSS для макетов располагаются в папке omega/css/layouts. Допустим, мы создали тему, взяв за базовую тему Omega, не копируя при этом все ее файлы настроек и шаблоны (как создать подтему в Drupal – читайте здесь), и нам нужно править стили для выбранного макета, например, simple.
На одном из Drupal-проектов понадобилось определить количество отправлений веб-формы за текущую дату. Собственно, задачка несложная, поэтому далее просто приведу код:
В ходе работы над сайтами нередко приходится заниматься версткой форм, а также написанием JS-скриптов для форм. Естественно возникает потребность в подключении файлов стилей и скриптов для страниц с формами (включать стили и скрипты для форм, особенно если они довольно объемные, в общие CSS- и JS-файлы темы оформления сайта нецелесообразно, так как формы выводятся, как правило, только на определенных страницах сайта).