prof-labs.ru

Делись своими знаниями - это путь к бессмертию!

drupal 7

Задача: нужно чтобы термины таксономии из разных словарей обслуживались различными views (представлениями).

Очевидно, что стандартные Views этого не умеют. Встроенное представление Taxonomy Term просто переопределяет системный путь taxonomy/term/% и не позволяет сделать такой процессинг контекстным.

Решения, на мой вгляд, два.

Решение первое - Taxonomy Display

Работа с двумя и более различными базами данных в Drupal 7 в небольшом примере для памяти. Сначала, в settings.php нужно внести имя подключения со всеми данными, например:

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

Всё хорошо только в Блоке, который показывает Taxonomy Menu словаря, видны все термины, а по факту доступны для просмотра не все. Что делать? Хукать!

Модуль Calendar очень хорош и стабилен для новых проектов. В целом всё просто и работает "из коробки", но кое-какую красоту нужно было навести. В том числе хотелось, чтобы при создании Мероприятия можно было выбрать цвет для маркера в календаре. Вот так:

Начём с простого - создадим поле (field_color) выбора цвета используя Jquery Colorpicker. Должно получиться как-то так:

После чего в представлении календаря выведем поле field_color в Raw hex виде и включим опцию "Исключить из вывода":

Итак, существует View - Hotel, в котором реализован блок - block_hotels с контекстным фильтром. Допустим, нужно выводит этот блок программно в определённую область и изменять содержимое в зависимости от типа страницы.

Уверен, что многие видели эту надпись только установленного Drupal 7.

drupal-front.png

"Содержимое главной страницы еще не создано."

или по-английски:

No front page content has been created yet.

Удобный и простой механизм шаблонов в CKeditor позволяет представлять контент в удобном предустановленном виде. Пример:

В Drupal 7, как обычно, всё просто! Идём в управление Ckeditor:

Управление » Конфигурация » Работа с содержимым

или

Столкнулся с задачей:
Есть нода с картинками. Картинок много, нужно вывести в блоке одну картинку, название ноды и дату изменения.
Схема базы такова, что ноды, поля и описания (путь к файлам) файлов хранятся в 3х таблицах. В кратце так:

Чтобы построить блок такого вида:

Используя функцию template_preprocess_block можно переопределить\добавить классы для любого блока следующим образом:
/*
* Implements template_preprocess_block
*/
function template_preprocess_block(&$variables) {
// забираем уже существующие классы
$classes = &$variables['classes_array'];
if ($variables['block']->delta === 'special_offers') {
// добавим класс(ы)
$classes[] = 'special-offers-desing';
}
if ($variables['block']->delta === 'main') {
$classes[] = 'clearfix';

Опишу процесс установки и настройки модуля fancybox для Drupal 7.
1 Jquery Update
Качаем и устанавливаем модуль Jquery Update версии 7.x-2.x-dev:

drush dl jquery_update-7.x-2.x-dev

И включаем:

drush en jquery_update

или в админке:

После чего включим jQuery 1.7 для сайта (если использовать jQuery 1.8 не работает системный jQuery UI):

admin/config/development/jquery_update

Предполагается, что у вас настроена среда (как описано здесь). Или хотя бы просто установлен xampp, wamp, denwer или что-то такое.
1. Хост
Создаём новый хост (в xampp создаём папку drupal в папке htdocs)
2. Дистрибутив Drupal 7
Скачиваем в папку архив в Drupal 7 и распаковываем содержимое архива в корень папки таким образом, чтобы index.php лежал в:

htdocs\drupal\index.php

3. Перевод на русский
Качаем перевод для Drupal 7 тут и сохраняем его в:

Бывает нужно переопределить стандартное поведение страницы термина таксономии (taxonomy term page) не только шаблоном входящих в неё нод (как я предлагал тут), но и глобально логикой вывода. В данном примере реализована страница таксономии с выводом самого термина и его дочерних терминов.

Для этого предлагаю следующее решение.

Drupal → Drupal 7 шаблон ноды для страницы таксономии

drupal 7 темизация taxonomy

Функция позволяет не только передавать переменные в node.tpl.php, но и совершать манипуляции вроде описанной ниже.
Мне нужен был отдельный шаблон для темизации ноды на страницах таксономии:

Очень полезная вещь!

maskedinput.png

Сначала скачаем скрипт

Теперь у нас есть два варианта:

1. Подключить в свой модуль

Подключаем:

drupal_add_js(drupal_get_path('module', 'my_module').'jquery.maskedinput.min.js');

2. Подключить в свою тему

В info файле вашей темы:

Для расширения возможностей шаблона весьма полезным будет семантически развёрстывать не только элементы в контейнере, но и сам контейнер. В Drupal 7 можно использовать хук template_preprocess_region в template.php активного шаблона.
function mytheme_preprocess_region(&$vars) {
// Проверим, что мы работаем в регионом "footer"
if ($vars['region'] == 'footer') {
// посчитаем количество дочерних элементов ( блоков )
$count = count(element_children($vars['elements']));
// Если их 2, то зададим контейнеру класс "two-blocks"

  • 1