Элементы

Для того, чтобы у ваших пользователей была возможность вставить какой-нибудь код в качестве текста на ваш сайт (например, вам надо вставить в статью примеры написанного кода на пхп, а Друпал по умолчанию все теги из текста удаляет) - нужно установить и настроить модуль GeShi.
Устанавливаем модуль как всегда: https://www.drupal.org/project/geshifilter
в папку sites/all/libraries/geshi копируем библиотеку geshi (ссылка на нее есть в описании модуля на друпал.орг)
Заходим в нужный текстовый форма /admin/config/content/...

Если вас заказчик просит, чтобы некоторые пункты меню являлись группирующими, т.е. не вели ни на какую страниу, а просто раскрывали дочерние пункты меню, но некоторые всё же должны вести на какую-то страницу при нажатии на них, даже если там есть дочерние пункты меню - в таком случае на всё равно не надо ничего кодировать, есть модуль https://www.drupal.org/project/special_menu_items
Устанавливаем его, и у тех пунктов, что не должны являться ссылками просто выставляем в поле "Путь" адрес . Порядок! Еще может понадобиться...

Производить отладку через XDebug очень легко - стоит лишь добавить определенную строчку типа ?XDEBUG_SESSION_START=15137 к адресу запроса, и мы можем ставить breakpoint'ы в нужных местах кода чтобы посмотреть значение переменных. Однако что же делать, если на странице вызывается какой-то ajax-скрипт (например, при нажатии на кнопку), и в нём почему-то не срабатывают выставленные breakpoint'ы? Всё дело в том, что к ajax-запросам не добавляется нужной нам переменной XDEBUG_SESSION_START, и наш сервер просто не знает, что нужно останавливаться.
Для решения этой проблемы я пошёл прямым...

Я использую модуль Insert для вставки изображений в текст (при включенном визуальном реакторе или без - не важно)
При этом я добавляю поле "Картинки для текста" к каждому типу материала, в которое пользователь загружает картинки. После загрузки пользователь может выбрать, в каком размере ему вставлять картинку в сам текст (наборы "стилей изображения" ядра друпала), нажимает кнопку "вставить" и картинка сразу появляется в тексте на месте курсора.

Но есть проблема - он не настроен по умолчанию для интеграции с lightbox или colorbox. Для настройки интеграции надо сделать следущее...

Если вам нужно выставить значения по умолчанию для некоторых раскрытых фильтров во вьюс программно, то вам не поможет хук _form_alter, потому что раскрытые фильтры не оттуда берут default_value.
Оказывается, нужно использовать хук _views_pre_build(&$view), в котором изменять handler нужного фильтра, примерно так:

function zz_np_views_pre_build(&$view) {...

Столкнулся с необходимостью не просто программного добавления комментария, но и так же чтобы у родительской ноды при этом изменилось поле (статус задачи), а у этого комментария отображалось соответсвующая запись о том, что при этом комментарии было обновлено поле ноды.
Всё это делает модуль comment_alter, но беда в том, что делает он это через альтер формы, и программно это использовать сложно.

Решение найдено здесь:
https://drupal.org/node/2157421
а именно:
сначала созраняем новую РЕВИЗИЮ ноды с изменённым полем,...

К сожалению, сущность entityform не является нормальной нодой, соответсвенно её вывод нельзя переопределить как обычно через node--entityform.tpl.php
Для того, чтобы справиться с этой задачей, надо прописать:
В template.php:

function THEMENAME_theme($existing, $type, $theme, $path...

Постоянно в работе сталкиваюсь с проблемой необходимости вывода своей формы, которую создал в своем модуле, во всплывающем окне.
На текущий момент есть несколько модулей для отображения форм во всплывающем окне, такие как popups, modal_form, colorbox, lightbox2, но они все заточены под конкретные стандартные формы друпала (такие как форма логина или регистрации), или же под модуль webform (чем я, собственно, и обходился в прошлых проектах).
На самом деле нам не нужны никакие лишние модули.
Весь нужный функционал есть в модуле ctools, который и так всегда стоит на всех...

Для того, чтобы подставть значение по умолчанию в какое-то из полей формы Entityform (d7 замены webform), нужно использовать модуль Prepopulate
Устанавливаем его, создаем свою entityform type, добавляем туда любое поле.
Затем заходим на эту форму (в списке созданных entityform есть ссылка submission link).
Открываем код страницы и смотрим тег name у нужного нам поля:
2_1.jpg
в моем примере это ...

С модулем Select2 произошла беда - первый, кто заапрувил свой проект под таким названием, видимо, потерял к нему свой интерес, и даже не залил кода, не говоря уже о передаче прав на разработку модуля кому-то другому.
Позже появилось несколько sandbox-проектов по интеграции этой библиотеки в друпал, но у каждого из них есть свои недостатки.
Самый адекватный из них на данный момент: https://drupal.org/sandbox/agpsoftdev/...

На многих корпоративных сайтах вверху есть блок выбора своего города, и при его изменении на сайте уже отображаются статьи или какой-то материал, специфичный именно для этого места.
Примеры таких блоков: на сайте Альфа-банка или Эльдорадо, даже Сбербанк не отстаёт и перенаправляет пользователя сразу на нужный раздел сайта.

Итак, чтобы сделать такое на Друпале, нам понадобится:
Модуль Smart IP: https://drupal.org/project/...

В полях формы друпал подставляет красный символ звездочки (*), если поле обязательно к заполнению. Чтобы заменить этот символ, необходимо в шаблоне template.php вашей темы оформления реализовать следующий хук:

<?php
function THEME_form_required_marker($variables) {
  // This is also used in the installer, pre-database setup.
  $t...

Я несколько раз сталкивался с проблемой, что Webform вообще никак не хочет обрабатываться, если он находится во всплывающем окне (lightbox или colorbox).

Решением данной проблемы оказалось следующее: во-первых, надо использовать дополнительный модуль colorbox_node

Во-вторых, надо использовать версию colorbox_node 7x-2.6 (желтым цветом), а не итоговый релиз 3.0 - потому что итоговый релиз с вебформами пока не научился нормально работать!

После этого просто создаете как всегда веб-форму, пишете в ней что в результате надо переводить на confirmation message, сообщение...

Казалось бы, проблем нет - просто добавить якорь #new к ссылке на ноду, и при заходе в ноду будет пролистывать сразу до нового комментария. Однако это неверно - если комментариев много и они разделены постранично, то вместо того, чтобы попадать на нужную страницу с непрочитанным сообщением вы всегда будете оставаться на первой.
Чтобы решить эту проблему, нужно воспользоваться функцией comment_new_page_count. http://api.ubercart.me/api/drupal/drupal%21modules%...

Чтобы на странице термина таксономии вместо стандартного вывода тизеров материлов показывалась нужная вам вьюсина, нужно всего лишь воспользоваться модулем taxonomy_display
Просто включаете его, затем заходите в словарь таксономии, закладка "Управлять отображением", там появится новая закладка "Таксономи терм пейдж", в ней вы можете выставить ту вьюсину, которая вам нужна для отображения. Удачи!
https://drupal.org/project/taxonomy_display

Страницы