Полезные советы

Рекомендации и советы, которые облегчают работу и понимание Drupal

Drupal: Подмена аргументов в Views

Дано — представление с дисплеем Page, адресом user/%/content и контекстным фильтром по Content: Author uid:

представление, как нетрудно догадаться, выводит материалы определённого пользователя.

Drupal: Вывести с помощью Views самое осбуждаемое за последнюю неделю

Задача — вывести в блок материалы, в которых за последнюю неделю оставлено больше всех комментариев.

Решение:

1. Создаём представление по материалам, без сортировки и с дисплеем Block:

Читать дальше →

Drupal: Отдельный шаблон для тизеров (анонсов)

1. Добавить в template.php:

/**
* Preprocess function for node.tpl.php
*/
function [THEMENAME]_preprocess_node(&$vars) {
$vars['theme_hook_suggestions'][] = 'node__' . $vars['type'] . '__' . $vars['view_mode'];
}

2. Создать в папке темы шаблон с именем node--[TYPE]--teaser.tpl.php.

3. Сбросить кэш.

Экспорт и импорт данных из своей таблицы с помощью Chaos Tools

Наверняка многие из вас сталкивались с задачей переноса данных с одного сайта на другой. Например, создали локально представление вьюса - и надо быстро его перенести на рабочий сайт. И вы явно обратили внимание, что в каждом представлении есть вкладка "Экспорт". Благодаря такой возможности вы можете перенести это представление на рабочий сайт буквально за 10 секунд.

Как поменять направление списка комментариев и вынести форму комментариев наверх

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

Вывод названия роли при помощи запроса в БД

  global $user;

  $role = db_result(db_query('SELECT r.name FROM {users_roles} ur LEFT JOIN {role} r ON r.rid=ur.rid WHERE ur.uid=%d LIMIT 1', $user->uid));

  print $role; // выведет название вашей роли

Либо вариант №2

Drupal: Вывести на одной карте несколько точек по данным из Geolocation Field

Пример, как с помощью OpenLayers и Views можно вывести на одной карте несколько точек из Geolocation Field.

Необходимые модули: Geolocation Field, OpenLayers, OpenLayers UI, OpenLayers Views, Views, Views UI.

Drupal: Поиск с помощью Views

Стандартный поиск достаточно уныл и плохо поддаётся изменению. Немного скрашивает ситуацию модуль Custom Search, но например изменить количество результатов на страницу не способен даже он.

Выход — оставить модулю Search функцию индексирования, а поиск по индексу и вывод результатов возложить на Views:

Корректная работа с полями в седьмом Друпале. Entity metadata wrappers.

В седьмой версии Друпала вывод полей был несколько изменён в связи с усовершенствованием многоязычной системы. Если раньше для вывода содержимого поля достаточно было написать так:

Drupal: Тонкая настройка прав материалов с помощью hook_node_access()

Хук hook_node_access() предназначен для тонкой настройки прав пользователей при работе с материалами. Например с помощью него можно дать одному из пользователей права на редактирование определённого типа материалов (в то время, как другие пользователи такого права не имеют):

RSS-материал