Задача Нужно на страницу ноды, где по умолчанию есть табы "Смотреть" ("View") и "Редактировать" ("Edit") добавить произвольный таб.
Решение
Добавление таба в Drupal 6
Таб для всех нод и без ограничения доступа: $items['node/%node/new_tab']=array( 'title'=>'New Tab', 'page callback'=>'mycallback', 'page arguments'=>array(1), 'access callback'=>TRUE,
Нужно вывести (внедрить) форму создания ноды на странице, которая не совпадает со стандартным URL для создания нод (node/add/[тип нод]). То есть на произвольной странице показать ноду создания контента одного из типов. При этом нужно сохранить весь функционал этой формы - AHAH, валидацию и корректное сохранение.
Иногда бывает нужно встроить (embed) форму редактирования ноды.
Drupal 5
Для 5й версии можно использовать модуль subform element (), который позволяет это легко сделать.
Drupal 6
В 6й версии Drupal формы стали сложнее (активно используется AHAH), поэтому при при неаккуратном использовании формы могут перестать работать. Создадим модуль, который будет показывать внедрённую форму на произвольной странице.
Чтобы не нарушить работу AHAH нужно просто не менять структуру массива $form.
После сохранения ноды пользователь переходит на страницу просмотра только что сохранённой ноды (вкладка 'View'). Нужно сделать редирект на произвольный URL.
Нужно создать (если нужно) модуль и в файл MODULENAME.module добавить: function MODULENAME_form_alter(&$form,&$form_state,$form_id){ if('page'==$form['#node']->type){ $form['#redirect']='thanks_page'; } }
Данный код сработает перед выводом формы редактирования в браузер пользователя и в этой форме будет изменён стандартный редирект. Это делается для нод определённого типа - page. Можно использовать любые другие условия.
Если нужно в пути использовать спец. символы, то нужно использовать конструкцию подобную этой:
Если PHP-сниппет содержит ошибку, то весь сайт может стать недоступен после сохранения блока/страницы. Поэтому нужно убедиться, что сниппет работает корректно перед сохранением.
Нужно програмно пересохранить документы. Это может быть нужно в таких случаях:
После изменения количества символов в анонсе нужно пересоздать анонс (teaser), который формируется автоматически при сохранении документа (node).
После установки модуля CCK Computed Field заново сгенерировать все значения вычисляемых полей CCK для всех документов.
После операций с URL в модуле Pathauto или Path модуль XML Sitemap некорректно показывает пути - показываются системные (типа 'node/123') вместо ЧПУ (типа '/sohranit-statiu'). При пересохранении модуль XML Sitemap использует ЧПУ вместо системных.