Главная » Drupal (Page 2)

Drupal

Drupal 7. Социальные закладки без сторонних модулей.

Включите стандартный модуль ядра Drupal 7, — PHP filter, по умолчанию-то он выключен.

Добавим блок в нужный нам регион, формат ввода «PHP код». Нужно только получить url и заголовок просматриваемой посетителем ноды. Смотрим код:

Читать далее »

Темизация Drupal 7. Вывод произвольных полей в ноде без стандартной CSS-обёртки.

На днях возникла необходимость вытащить в ноде произвольного типа материала содержимое CCK-поля без друпаловской обертки вида:

<div class="field field-name-field-mytext field-type-text field-label-above">
...
</div>

— просто FancyBox без использования дополнительных модулей настраивал. Читать далее »

Drupal 7 и файловый браузер IMCE. Решение проблемы с кодировкой.

На днях после переноса N-ого сайта на хостинг случилась оказия с неправильной кодировкой и как следствие вот такими «кракозябрами» в файловом браузере IMCE на Drupal 7.

Проблема была решена прямым указанием utf-8 в «.htaccess», используя нижеследующее:

AddDefaultCharset utf-8

Читать далее »

Drupal 7. Блоки в ноде перед комментариями.

По умолчанию регионы в Drupal доступны для вызова в шаблоне страницы (page.tpl.php), но комментарии-то в ноде. Блок будет выведен после них. Обойти данное ограничение можно, используя препроцессы (хуки).

Заготавливаем регион в info-файле темы:

regions[имя_региона] = Подвал содержимого

Теперь сообщаем об этом ноде в файле «template.php»: Читать далее »

Drupal: BUEditor. Сниппеты для кнопок.

Итак, сделаем использование модуля BUEditor на Drupal ещё удобней: напишем немного своих кнопок для редактора.

Итак, начну с простого: произвольный HTML-тег, пусть это будет <strong>:

<strong>%TEXT%</strong>

Без проблем. В «%TEXT%» окажется вставленный текст, а по бокам нужное нам обрамление. Читать далее »

BUEditor на Drupal: как включить автозаполнение тегов.

Для того, чтобы активировать данную возможность понадобится всего лишь подключить-приписать 2 расширения редактора:

%BUEDITOR/library/bue.autocomplete.js
%BUEDITOR/library/bue.li.js

Читать далее »

Drupal 7: JavaScript, как подключить для типа материала. Препроцесс на ноду.

Итак, подключение JavaScript к Drupal 7 только на страницах определённого типа материала можно осуществить, выставив препроцесс на ноду. Просто пропишите в файле «template.php» (тот, что в папке вашей активной темы) нижеследующий код, к примеру:

<?php
function ИмяТемы_preprocess_node(&$variables) {
  $my_node_type = $variables['node']->type;  // получим тип ноды

Читать далее »

Drupal 7. Текст в блоке формы поиска, исчезающий по клику.

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

Вот рабочий код, далее вникаем в суть комментариев:

function модуль_или_тема_preprocess_search_block_form(&$vars) {
    // Устанавливаем значение поля формы
    $vars['form']['search_block_form']['#value'] = t('Что будем искать?');

Читать далее »

Drupal — если полетел кэш в базе данных и CMS пишет Warning!

Предисловие. Итак, в один прекрасный день зайдя на N-й сайт я обнаружил, что Drupal обкладывает меня своими «Warning…». Наглядные скриншоты к сожалению не сохранились, потому опишу суть ошибок словами. Полетела таблица «префикс__cache_form». Где «префикс» — «приставка», заданная мной при установке системы. Сообщения на первый взгляд выглядели очень пугающе, — на каждой странице и почти на весь экран моего монитора с кучей символов.

Но по сути данное явление «чуда» оказалось не столь страшным, — это же обычные таблицы кэша системы. Отсюда простое решение, — всего лишь удалить битую таблицу (crashed). Далее пересоздать её с теми же полями, — структура должна быть прежней. И все будет хорошо. Читать далее »

Drupal формы и пара хуков для их изменения

Итак, рассмотрим буквально два простых конкретных примера работы с формами на Drupal 7. Поехали.

Example 1. Добавим в «register form» поле-галочку вида «Я прочёл условия регистрации и т.п.». Пусть данное поле будет обязательным для заполнения. Использую hook_form_FORM_ID_alter.

<?php
function MyRegForm_form_user_register_form_alter(&$form, &$form_state, $form_id) {

Читать далее »