Свои модули

Проверить наличие видео YouTube. PHP-скрипт проверки битых ссылок YouTube

Существует ли видео YouTube, или ссылка уже стала нерабочей?
Следующий скрипт проверяет наличие видео и разрешение публичного доступа по ссылкам двух типов: youtube.com/watch?v=... и youtu.be/...
Так можно проверить все вставленные на сайт видео, в специальном поле или внутри статей.
Закрыто ли видео от просмотра в стране, скрипт не проверяет.
Наследовано: http://stackoverflow.com/questions/1383073/how-do-i-check-if-a-video-exi...

Защита Контактной формы Drupal от надоедливого спамера (php-скрипт)

IP-адрес — идентификатор узла компьютерной сети. Это код, который присваивается каждому пользователю Интернета, поэтому посетителей сайтов можно считать, различать между собой и создавать персональные взаимодействия, даже если пользователь не предпринимает к этому усилий (не вводит логин и пароль).

Раскрытые фильтры Views: Изменить элемент списка выбора по умолчанию в раскрытой форме с "- Любой -" - Any - на "Мою фразу"

Если у вас есть Представление с раскрытым фильтром по полю типа ссылка на термин таксономии, то элемент по умолчанию называется - Any -, в русском переводе: - Любой -.
Это не всегда логично, например, когда вы предлагаете выбрать тип недвижимости: - Любой -, Дом, Квартира.

Поменять это слово на "Все предложения" или "Вся недвижимость" поможет хук_form_FORM_ID_alter() в теме, в файле mytheme.theme.

Модуль обновления стиля картинки при каждом редактировании материала

Допустим, у вас сложный Вид показа изображений (в официальном переводе - Стиль изображений), применяемый для отображения картинок в материалах Фото. Например, вы вставляете в картинку текст из другого поля с помощью Image Effects Text или другие действия с модулем Imagecache Actions. Если содержимое картинки зависит от нескольких полей материала, то при редактировании материала стилизованная картинка не будет обновляться, если файл картинки остался прежним. То есть, если вы поменяли текст, который должен быть на картинке, то останется старый текст.

Программно изменить название материала в тегах title и h1

Допустим, вы хотите создавать материалы, в которых название должно складываться из двух полей. Работать с тегами title можно при помощи модуля Page Title, в котором можно задавать шаблоны с токенами для тега title разных типов страниц, но он не работает с тегами h1. Для работы с обоими тегами title и h1 существуют Title field UI, Title Override, но если вдумчиво прочитать страницы этих модулей или попробовать, то можно не найти решение этой конкретной проблемы.

Свой модуль User Field Access with Entity reference - Показывать поле материала только определённым пользователям, указанным в поле Доступ

Этот модуль разграничивает доступ к содержимому материалов для определённых пользователей. Автор материала при создании может указывать в поле Доступ имена пользователей, которые будут иметь доступ к полю body (Текст). Все другие пользователи не будут видеть это поле.

По умолчанию всегда показывается это поле для ролей: administrator, editor - а также для самого автора материала.

Хелперы для многопользовательского сайта с премодерацией материалов

Друпал отличается от других систем надёжностью и удобным разграничением ролей пользователей. Однако, право публиковать статьи сразу после регистрации создаёт риск засорить сайт спамом и рекламой. Для защиты сайта от нежелательной активности зарегистрированных пользователей нужна премодерация материалов.

Тут вы найдёте код модуля publish_helpers, который решает задачу премодерации Друпал.

Language Switcher сделать языки ссылками на главную страницу языка или на перевод страницы, если есть

Многоязычный сайт с модулем Internationalization и, возможно, Entity Translation обязательно имеет блок перехода на языковые версии. Этот блок обычно создают модулем Language Switcher или надстройкой над ним - модулем Language Switcher Dropdown. В двух этих случаях ссылки на переводы работают по-разному, сделать как надо позволит хук.

Стилизация меню. Добавить всем ссылкам меню уникальный id

Если нужно выделить кнопку Заказать или ссылки на отдельные разделы сайта, тогда этим пунктам должны быть прописаны свои стили CSS. Следующий хук в теме добавляет уникальные id всем пунктам всех меню сайта. После этого можно узнать id пункта меню и задать ему свойства в CSS файле.

Хук _menu_link() добавляет id всем элементам всех меню. Если нужно ограничить только одним меню, добавьте проверку в начало кода.

Для мобильных устройств, на которых не работает Ckeditor, устанавливать программно формат ввода Plain Text

При добавлении новостей на сайт через мобильные устройства часто бывает, что текст вытягивается в одну строку, то есть не работают переносы строк. Это происходит, если выбран формат ввода Full HTML, а у пользователя мобильного устройства не грузится CKeditor. CKeditor, действительно, не на всех устройствах грузится, поэтому проще всего для мобильных выбрать plain text по умолчанию.

Решение: для всех мобильных изначально выбирать формат ввода Plain Text, но оставлять для продвинутых устройств возможность выбора Full HTML.

Redirect after registration Показать свою страницу после регистрации пользователя

Сообщение Drupal о регистрации на главной странице - это не самый лучший способ сообщить пользователю о том, что он успешно зарегистрирован и должен проверить e-mail.
Следующий хук показывает ноду номер 76 после регистрации новому пользователю, кроме администратора или редактора при создании учётной записи.
Если у вас мультиязычный сайт, и материал переведён на языки, то Drupal автоматически выбирает язык перевода для текущего языка пользователя (проверка языка не нужна, поддерживается друпал).

Защита форм от спам-ботов модулем Simple Anti-Spam и как включить его автоматически для всех форм WebForm

Если ваш сайт на Drupal имеет много форм обратной связи ( Webform ) или других, тогда возникает задача защитить их все от спама. Отлично с этим справляется модуль Simple Anti-Spam, добавляя галку "Я не спамер" к тем формам, которые вы прописали в настройках этого модуля: Конфигурация - Simple Anti-Spam, то есть тут: /admin/config/system/simpleantispam .
Для ручной настройки модуля для выбранной формы нужно:

Webform термины таксономии как элементы в выборном поле. Свой модуль webform_options

Webform позволяет сделать выборное поле с виджетом выпадающий список или радиокнопки/чекбоксы. Но элементы приходится задавать вручную, есть только автоматическая подгрузка словаря страны, дни недели (разработчики модуля предусмотрели). Если вам нужно сделать поле выбора термина таксономии, как например при создании материала, то для этого есть три пути решения:

Свой модуль user_referenced_taxonomy_terms Отображает при добавлении материала термины, к которым пользователь имеет доступ (доступ задаётся в поле термина таксономии)

Такая задача возникла на многопользовательском Интернет-магазине. Продавцы (пользователи сайта) продают товары разных фирм. И каждый продавец может выставлять только товары разрешённых для него фирм (что задаёт админ). Для админа и редактора этот модуль не должен ничего ограничивать.

Задача: отображать на странице добавления товара для пользователя только те фирмы, к которым у него есть доступ. В поле Фирма материала типа товар будут выводиться не все термины словаря Марки, а только разрешённые.

Свой модуль colorbox_node_view_link Быстрый просмотр материалов во всплывающем окне Colorbox

Когда нужно сделать просмотр некоторых ссылок во всплывающем окне, для этого используется модуль Colorbox Node. Если вы хотите добавить кнопку быстрого просмотра к тизерам, то для этого напишем свой хук ноды: hoode_node_view() в своём модуле. Хук просто будет добавлять ссылку на ноду с нужным классом colorbox-node. Именно на ссылки с классом colorbox-node срабатывает этот модуль и не перелистывает страницу, а открывает во всплывающем окне довольно быстро и красиво.

Свой модуль profile_taxonomy_on_node_addition Отображает на странице создания ноды термины таксономии, выбранные в поле профиля пользователя

Идея состоит в том, что компаний много, а люди пишут только о своих компаниях, тогда зачем им показывать все компании на сайте при создании ноды? Нужно ограничить выбор компании при размещении материала, чтобы людям было удобно работать только со своими компаниями.

Подписаться на Front page feed