drupal 6

Модуль клонирования типов страниц (нод, контента, содержимого) в Drupal 6

Модуль дополняет функционал CCK, связанный с экспортом настроек типов нод в пределах одного Drupal-проекта. Функционад импорта-экспорта в модуле Content copy довольно неудобен для конечного пользователя, которому хочется одной волшебной кнопки, вместо копирования кода из окошка в окошко. Для того и сделан этот модуль. Я весьма удивился, что не нашел подобного функционала на www.drupal.org. Плохо искал?

Модуль Content clone при включении добавляет ко всем типам содержимого (кроме заблокированных от удаления и от модификации системного имени) дополнительную вкладку Clone (Клонировать). Перейдя по ней, администратор сайта может указать новое уникальное машинное имя типа контента, новое уникальное человекочитаемое имя и опциональное описание. После подтверждения формы и валидации, новый тип ноды создаётся со всеми настройками, полями и группами полей CCK.

Думаю данный модуль будет полезен для разработчиков.

Скачать модуль

Хитрости hook_menu()

В Drupal всегда радует возможность лаконично и просто разработать иногда очень серьезные вещи.

Пусть в вашем модуле требуется отобразить на отдельной странице некий объект хранящийся в базе данных, например, Gorilla. Идентификатор объекта передается в строке запроса. Модуль, соответственно тоже называется gorilla.
А теперь, 10 строк очень универсального кода в студию:

function gorilla_menu() {
  $items = array();
  $items['gorilla/%gorilla'] = array(
    'title' => 'Gorilla item',
    'page callback' => 'theme',
    'access arguments' => array('view gorilla'),
    'page arguments' => array('gorilla_view', 1),
  );
  return $items;
}

Произойдет тут следующее...

CCK поле вида «Величина-Значение»

В процессе работы над одним проектом родился модуль CCK-поля с примерно таким выводом данных в ноду:

TAPIr - Dynamic Tables API

A baby tapir.A tapir is a funny animal that happens to be this project's mascot. TAPIr is an API developed for Drupal developers to allow the easy creation and configuration of dynamic tables. In fact, we've made it so dynamic, that even the name is flexible! It stands for Tables API, and you get to decide what the r means. Eye-wink (Our favorites include by Ryan, rocks, and renegades.)

Так случилось, что именно такое смешное животное, как тапир стало маскотом этого проекта. TAPIr - это интерфейс, предназначенный для разработки под Drupal и позволяющий создавать и конфигурировать динамические таблицы. Фактически, мы сделали его настолько динамическим, что даже его название изменяемо. Это сокращение от Tables API, но вам самим решать, что означает r на конце. Eye-wink Наиболее популярными расшифровками являются Ryan, rocks, и renegades.

The Tables API mimics the Forms API by building tables based on a Table ID. For now, the Table ID refers to the function used to build the table, though it's not impossible for TAPIr to define a hook like Drupal's hook_forms. The builder function operates on an $op variable to first build the fieldset and then grab the data for the rows for each field. The term fields refers to a column in the table. Fields will be configurable from a settings page for each table so the user can adjust the title of a column, its order in the table, and whether or not it should be shown when the table is rendered.

Интегрированный с ЖЖ блог на Drupal за полчаса совершенно бесплатно

Закончил заявленную пару дней назад разработку.

Инсталляционный профиль NewsMaker предназначен как для ЖЖ блогеров, так и для владельцев независимых сайтов. Он позволяет в автоматическом режиме дублировать сообщения из Вашего stand-alone блога, сделанного на Drupal в Ваш блог или комьюнити на площадке LiveJournal. Аналогично Вы можете сохранять сообщения из Вашего ЖЖ в Ваш блог на Drupal, то есть зеркалить их.

Буду делать сборку Drupal для блогеров

По просьбе коллеги [info]newsmaker_su изобретшего свое собственное решение для standalone-блога объединённого с ЖЖ (актуально ввиду перманентных атак) занимаюсь изготовлением сборки его проекта на Drupal, в смысле создания нормального профиля установки, доступного даже для чайников. Сборка и профиль будут доступны свободно и бесплатно.

Табличная темизация многозначных полей CCK

С такой задачей я сталкиваюсь, когда приходится использовать многозначное поле imagefield для построения фотогалерей. Вывод иконок изображений в таблице лучше заполняет пространство веб-страницы да и выглядит аккуратнее, чем какой-либо другой способ. Конечно, есть и CSS-правила, позводляющие отображать любой тег HTML, как табличный, но работают они не во всех браузерах. И чем пытаться написать кроссбраузерный CSS, иногда проще вывести поля CCK в таблицу явно.

Быстрый хак модуля Livejournal Crossposter (ljxp) для работы с полями CCK

Довольно распространенный модуль Livejournal Crossposter (ljxp) предназначен для автоматической публикации материалов Drupal-сайтов на Livejournal-совместимых сервисах. Я уже как-то писал о его установке и настройке у себя в блоге и на Drupal.ru. Но у модуля есть один существенный недостаток - он кросспостит в ЖЖ только стандартные заголовки ноды и ее тело (body) в виде тизера или полного текста. Поля CCK в нем полностью игнорируются. И устранить этот недостаток пока можно только хаком.

Программный вывод блоков в Drupal

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

К моему удивлению в API Drupal отсутствует функция block_load(), которая бы позволяла получить нужный блок целиком без лишних телодвижений. Этому, видимо, есть какая-то причина (историческая или функциональная), но мне как-то лень копаться в предыстории вопроса. Поэтому принимаю как данность, что программно, произвольный блок можно получить только прямым вызовом хука hook_block().

Обновлено до Drupal 6

Таки обновился... Не без проблем. Пришлось повозится с модулем Image: одно из его обновлений надо проводить до обновления системного модуля System. В Geshi пришлось заново включить языки с подсветкой синтаксиса. Заголовки некоторых блоков слетели. Пришлось в одном формате ввода отключить фильтр HTML-корректор. Кроспосстинг в ЖЖ работает. Так что, нормально. Но выбранная тема nitobe глючит в IE6. Ищу новую. Вроде aurora вкатила.

О проблемах с сайтом просьба писать в комментариях здесь.

Синдикация материалов