Статьи о Drupal

Однажды мне понадобилось добавить новую кнопку сохранения ноды в Друпале, при нажатии на которую выполняется моя собственная функция, и затем нода должна сохраняться как обычно (как будто бы нажали как обычно кнопку "Сохранить")

В результате исследований обнаружилось, что $form['#submit'] в друпале используется для того, чтобы записывать функции, которые должны выполняться при нажатии на любую кнопку '#type'=>'submit'.

Однако, в ней нет функции сохранения ноды.

Соответсвенно, если я просто добавлю новую кнопку с '#type'=>'submit', то при нажатии на нее форма...

Везде в интернете предлагают использоваться скрипт с share42.ru . Но я бы не советовал этого делать: он работает крайне скудно - не вставляет заголовки во многие сети (например вконтакте), не вставляет автоматически изображение, иллюстрирующее закладку и пр.

Я нашел прекрасный сервис от Яндекса: http://api.yandex.ru/share/

Использование в миллион раз проще: просто вставляешь код и все. Конечно, некоторые скажут что это лишняя подгрузка стороннего скрипта, но я вам отвечу - во первых, если...

Для того, чтобы настроить BuEditor для Drupal и получить такой замечательный визуальный редактор текста, похожий на Word:

нужно сделать следущее:
Скачать и установить модули
http://drupal.org/project/bueditor
http://drupal.org/project/imce
http://drupal.org/project/imce_mkdir

Зайти в настройки BuEditor
admin/settings/bueditor/
Напротив настроек Default нажать ссылку "изменить" (перейдем на страницу...

Просто обалденный модуль http://drupal.org/project/menu_position

Например, у вас есть динамическая страница, которая принимает аргумент из URL, и отображает разные результаты - например, URL у нее такой: site.ru/photo/authors/%UID

Соответсвенно, нам нужно чтобы подсвечивались пункты меню "Фотография"->"Авторы" из primary links.

При этом такой странице нельзя присвоить друпаловский пункт меню - для динамических страниц этого делать нельзя; соответсвенно, вариант...

<?php
function MY_THEME_theme() {
  return array(
    'user_profile_form' => array(
      // Forms always take the form argument....

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

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

http://drupal.org/project/views_popup

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

ul.tabs
{
    font-family: Tahoma, Arial, sans-serif;
    font-size: 11px;...

Для Drupal 6:

print theme('blocks', 'имя_региона'); 

Для Drupal 7:

print render(block_get_blocks_by_region('имя_региона'))...

Скачиваем и устанавливаем два модуля: i18n и languageicons
Активируем их в админке, выставляем галки напротив того, что нам нужно переводить - блоки, термины таксономии, контент. Затем заходим на страницу языков admin/settings/language/add и добавляем нужные нам языки (я добавил чешский)
Затем там же на странице языков admin/settings/language/ нажимаем "настроить" напротив каждого языка, стираем там поле "Языковой домен" и прописываем код языка в поле "Префикс пути" ( я написал там cz, в английском - en).
Далее заходим на страницу настроек переводов admin/settings/...

Возникла задача сделать вывод страницы 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();

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

  $(...

Страницы