Views

Если при включении 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...

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

Надо в файле views/includes/admin.inc строке 88 (функция views_ui_preview) поставить return; при этом превью автоматически вызываться не будет и ваша вьюсина откроется для редактирования, и можно будет исправить ошибку в вашем php-поле

Мне понадобилось изменить аргумент, передаваемый во вьюс, используя пхп, и уменьшить таким образом результат выдачи вьюсины. Конкретный пример: передается аргумент года (например 2010) и нужно выдать все ноды, у которых сск-поле "дата создания журнала" - в 2010 году.
Итак, создаем вьюсину, создаем "Контекстный фильтр" (для Друпал 7) (для 6го друпала это будет аргумент), выбираем его тип "Содержимое: Nid". Далее ставим галку в секции "Если аргумент содаржится в урл, выполнить проверку", выбираем тип проверки php-code, и в нём мы можем выполнить любой пхп-код, использовать в нем...

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

Сначала естественно пробовал просто создать вьюс, ей указать поле отображения - эти фотки, но они тогда цеплялись не списком ul, а просто раздельными блоками field-photo , и к этому jCarusel у меня не получалось прикрутить.

Что я сделал...

Решил немного перелопатить модули, расширяющие вьюс, вот что из этого получилось:

http://drupal.org/project/views_accordion - добавляет стиль вывода вьюсины "аккордеон", т.е. открыта только одна вкладка, всо остальные свернуты (http://drupal.org/node/366258)

http://drupal.org/project/views_popup

Возникла задача сделать вывод страницы node/% (страницы содержимого ноды) , используя вьюс. Причем только для одного типа материала (product). Для остальных типов материала (например, page) вывод должен продолжать выводиться стандартным способом.

Решение:
Скопировать файлик node.tpl.php к себе в тему оформления, и там добавить в начало файлика следущее:

<?php if ($node->...

Это статья про Drupal 6, в Drupal 7 немного изменилось, но некоторые советы будут полезны и для 7ки.

Обалденное очень подробное видео о том, как использовать внешние фильтры для списка, находится здесь:
http://www.youtube.com/watch?v=9-sKG1bplx0

Дополнительных модулей не нужно, просто модуль views.

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

...

UPD: Теперь для этого лучше использовать темизацию поля вывода вьюсины. В свойствах самой вьсины при ее редиктировании есть поле Theme information , там можно посмотреть название файла, который надо создать в теме (например views-fields--имя_вьюсины), и в нем уже добавлять проверку if (условие) print поле; Подробнее ищите по запросу "Темизация Views"

Прекрасный модуль, который позволяет отображать в красивом пролистывающемся блоке все, что угодно (не только фотки), называется viewscarousel http://drupal.org/project/viewscarousel
Включаем модуль, создаем вьюсину, ставим ей стиль отображения jCarusel, выбираем что показывать. Создаем новое отображение "блок", выводим его в нужный регион.
Он поддерживает темизацию , скины подключаются из админки друпала.
Все это подробно описано в реадми к модулю

UPD: Используйте лучше файлы-шаблоны в своей теме, который переопределяют вывод вьюсины. Гуглите на тему views theme information
----------------
Для этого нужно сделать следущее: добавить необходимые поля в вьюс как обычно, но всем указывать "exclude from dislay" т.е. не показывать их пользователю, потом в самый низ добавить любое дополннительное поле, и в его настройках указать "Переопределить вывод этого поля", а в том переопределении уже добавить необходимый html-код, в котором использовать replacement'ы, соответсвующие невидимым полям. Например:

...