Как открыть редактирование ноды в модальном окне

Открыть можно любую форму в модальном окне с помощью модуля ctools. Вот пример редактирования ноды.

<?php
function mymodule_menu() {
 $items['node/%node/custom-edit'] = array(
 'title' => 'Edit node',
 'type' => MENU_LOCAL_TASK,
 'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
 'access...

Создание своего типа поля

Для создания своего поля необходимо реализовать три обязательные функции. hook_element_info(), hook_theme() и theme_hook().

К примеру, реализуем тип формы number (пример работы):

hook_element_info()

<?php
/**
 * Implementation of hook_element_info()
 */
function MYMODULE_element_info() {
 $types = array();

 $types['number'] = array(
 ...

Таблица с перетаскиванием строк

Draggable table

Таблицы с перетаскиванием строк создаются немного сложнее чем простые таблицы. Вся логика создания такой таблицы заключается в том, чтобы вручную произвести рендеринг формы и разложить элементы формы по строкам. После чего запустить функцию drupal_add_tabledrag() с какими-то параметрами. И вот как это делается (комментарии в коде). Создание...

Ajax фильтрация и сортировка таблиц

При работе форм через ajax callback функция вызывается по пути system/ajax. Если в форме есть таблица с сортировкой, то все ссылки в хидере таблицы и пагинаторе будут начинаться с system/ajax. Чтобы избежать этого можно сделать так:

<?php
// Если есть сортировка - запоминаем ее.
$get = drupal_get_query_parameters();
if (isset($get[...