Статьи о Drupal

Возникла задача сделать вывод страницы 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 через термины таксономии не катят, хотя думаю если поразбираться, можно найти решение если оч надо будет.

...

Чтобы через php что-то сделать с файлом, который был закачан через модуль webform, нужно сделать следущее:

Установить модуль http://drupal.org/project/webform_php
Зайти в настройки созданной нами веб-формы , в которой мы добавили поле с файлом (адрес похож на node/107/webform/configure ), там внизу настроек появится раздел Additional PHP processing (внутри раздела Advanced settings ), там мы имеем возможность получить file_id загруженного файла через переменную $form_values['submitted_tree']['тут_имя_вашего_поля_с_файлом']...

Если картинка или любой другой элемент подгружаются через ajax, то для них естественно не существует обработчика lightbox'a чтобы при клике возникало всплывающее окошко, даже если там прописан rel=lightbox.
Решение - после подгрузки ajax-элемента заново запускать инициализацию lightbox'a, чтобы он навесил на новый элемент свою обработку. Вызов инициализации в друпале происходит такой функцией:
Drupal.behaviors.initLightbox();

Пример использования:

  $(...

Для того, чтобы при клике на ссылку, ведущую на видео-файл (например с разрешением .flv) показывалось красивое окно lightboxa и в нем медиапроигрыватель, нужно сделать всего две простых вещи:

  1. скачать любой флешплеер для видео (я скачал jwplayer.swf ) и поместить его в любую папку на сайте (я положил в sites/default/files )
  2. включить модуль lightbox2, зайти в его настройки и поставить галку Enable video, рядом прописать путь до файлика с видеоплеером (я написал sites/default/files/player.swf )
  3. написать в любом месте страницы что-то типа...

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

UPD: Более удачное решение описано в комментариях ниже: http://nikita-petrov.com/comment/57#comment-57
--------
Если вы используете тему Zen, и захотели сделать выпадающее меню (любое, я использовал модуль Nice menus) то можете столкнуться с проблемой.

А именно: в теме регион navigation сделан ниже основного контента для лучшей поисковой оптимизации. И это не влияет на работы однострочных меню. Но когда у нас появляются выпадающие див'ы, он прячутся за поле контента. Даже не за контент, а просто остаются...

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

Нашел прекрасный модуль, который позволяет в друпале организовать любой вид контента в виде табов. Модуль называется views tabs http://drupal.org/project/views_tabs
Хоть он сейчас и в бета-версии, но у меня стабильно работает. При создании новой вьюс просто надо указать стиль отображения - табы, и указать по какому полю группировать заголовки табов. Все это описано в реадми, как всегда.

Если необходимо внутри javascript-кода использовать свою собственную переменную, значение которой должно быть уникально для каждого пользователя, а так же изменять эту переменную из того же javascript-кода, то эта статья то, что вам надо :)

Use Case

Модуль отображения фоток на красивом бекграунде (аналог lightbox и ему подобных). При этом пользователь должен иметь возможность выбора цвета и прозрачности бекграунда (затемнения)
Причем пользователь должен не просто залазить в свой профайл чтобы изменить свой цвет, а должны быть небольшие удобные иконки предустановленных...

Есть замечательный хук form_alter , которым можно переопределить любую форму на нашем сайте

function gallery_vkontakte_form_alter(&$form, $form_state, $form_id) 
{
	//print_r($form);
  if (...

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

...

Чтобы вставлять в тело ноды (страницы) онлайн-проигрыватель mp3 музыки, хранящейся у меня на сервере, я установил себе прекрасный модуль http://drupal.org/project/mp3player

Из файла Readme.txt и так все понятно, я все же напишу для тех, у кого туго с английским.

Надо перед включением модуля скачать WordPress Audio Standalone Player отсюда: http://wpaudioplayer.com /download (вторая ссылка), и распаковать внутрь /sites/all/modules/mp3player/ потом переименовать папку, которая получилась...

Если в отчете о соcтоянии Drupal'a вы получаете ошибку, что необходимо поставить одну из библиотек PECL или ACP, то это значит вы установили обновление модуля filefield и для красивого прогрессбара аплоада нужна эта библиотека. Устанавливаем ее:

1. Устанавливаем PEAR из репозиториев:

      sudo apt-get install php-pear

2. При установке, нам будет предложено установить пакеты php5-dev и/или php4-dev. Устанавливаем:

...

Это означает, что при создании какого-то пресета в imagecache модуле не указали xOffset и yOffset . Если они вам не нужны, вы должны вручную поставить там 0.

Страницы