Модули

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

По умолчанию в визуальном редакторе CKEditor у тегов P, SPAN, UL LI и некоторых других обрезаются все html-атрибуты, например class, rel и так далее. Чтобы этого избежать, нужно зайти в редактирование вашего профиля CKEditor http://agent.all-poland.travel/admin/config/content/ckeditor/ (ссылка "изменить"), там зайти в самый низ "Дополнительные настройки" и туда добавить
config.extraAllowedContent = 'span(*); p(*); ul(*); li(*); ';...

Часто стандартных наборов правил для Rules не хватает и возникает необходимость выполнить свой php-код. Включать на сайте модуль php нельзя! Ибо это черевато соблазнами добавить какой-то код в базу данных, а это не drupal-way и черевато проблемами и ошибками. Итак, для того чтобы выполнить какое-то своё действие при срабатывании события по Rules, надо реализовать ряд хуков:

/**
 * Implement hook_rules_action_info()
 
 * Declare any meta data about actions for Rules
 */
 
function...

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

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

Если вам нужно улучшить форму корзины, например, добавлением удобных кнопок "плюс" и "минус" для увеличения/уменьшения количества товаров, добавленных в корзину, вам нужно использовать модуль https://drupal.org/project/commerce_extra и включить модуль Commerce Extra Quantity

Если при включении ajax в вашей вьюс всё работает только один раз, а в консоль браузера выпадает ошибка:
Uncaught TypeError: Object [object Array] has no method 'replace'
то это значит, что вам нужно установить следующий патч: https://drupal.org/files/drupal-ajax_javascript_error-1715508-2.patch
конкретно, в файле misc/ajax.js надо заменить...

Если в результате настройки вьюс у вас стали дублироваться строки, и вы уже пробовали зайти в настройках вьюсины в раздел "Прочее" -> "Настройки запроса" -> "Уникальность", поставить там галочку, но она всё равно не помогает - тогда можно использовать этот хитрый сниппет для решения проблемы:
Заходите туда же, в "Прочее" -> "Настройки запроса"

там в поле "Комментарий запроса" пишете "groupby:node.nid" без кавычек...

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

function zz_np_views_pre_build(&$view) {...

Например, у вас есть вьюс в виде таблицы, в которой есть столбец "статус", и вам нужно подсвечивать строку в зависимости от того, какое значение поля "Статус" у каждой строки, то вам нужно использовать хук _preprocess_views_view_table:

function THEME_preprocess_views_view_table(&$vars) {
  $view = $vars...

Если вы используете модуль Fivestars для голосования пользователями за ноды на сайте (например, статьи или какой-то продукт), но хотите, чтобы комментарии превратились в отзывы - т.е. оценка продукта + текст отзыва были вместе (как обычно делается, например, на яндекс.маркете и тому подобных сайтах), то сделать это очень просто: надо следовать инструкции отсюда https://drupal.org/node/1308114, а именно - добавить fivestar рейтинг к комментариям этого типа материалов, выставить ему тип виджета "голосовать...

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

В каждом проекте я закладывал довольно приличное время на перенос сделанной мною работы с тестового сайта на живой. При этом такая работа меня жутко напрягала своей глупостью и по большому счёту ненужностью. При этом я знал про модуль features, но почему-то его не использовал!
Но жизнь всё расставляет по своим местам, и в одном проекте, который выводил меня на новый, международный уровень среднего масштаба, мне ничего другого не оставалось, как научиться работать с этим модулем. Боже, как я ошибался, не используя его! Конечно, есть небольшие опасения, что "магия" в этом модуле когда...

Я написал патч для модуля One click upload (очень удобная вставка фотографий в wysiwyg editor - действительно одним кликом), который добавляет атрибут "rel" = "lightbox" в добавленные картинки так, что кликнув на неё, откроется оригинал в lightbox.
Через шаблоны настроек это сделать нельзя, к сожалению, так что пришлось писать патч.
После его установки появится дополнительная настройка на странице настроек /admin/config/content/ocupload/edit/1
В разделе "Параметры изображений" надо поставить галочки "Добавлять ссылку на...

Существует старая громадная Issue на друпал.орг о том, что Rules не умеет работать с nodereference, т.е. все правила Rules не видят объекты, на которые ссылается какое-то поле - соответственно мы не можем, например, получить tid термина таксономии, на который ссылается наше cck-поле "Ссылка на термин".
Но есть возможность это обойти - это создание "Компонент" в Rules, по сути это "правило, вложенное в правило".
Суть проста - мы создаем новый компонент, в котором в качестве входного значения указываем объект, на который ссылается наше поле (например, термин таксономии). И потом...

Оказывается, в Drupal 7 уже нельзя, как раньше, просто написать
return array('node' => $node); и он бы сохранил все изменения, сделанные нами через php-код; в Drupal 7 так делать нельзя, еще не доработали эту фишку (http://drupal.org...

Страницы