Код, который возвращает в переменную $output
форму создания материала типа article
:
Drupal 7:
module_load_include('inc', 'node', 'node.pages');
$type = 'article';
$node = (object)array(
'uid' => $GLOBALS['user']->uid,
'name' => isset($GLOBALS['user']->name) ? $GLOBALS['user']->name : '',
'type' => $type,
'language' => LANGUAGE_NONE
);
$form = drupal_get_form($type . '_node_form', $node);
$output = render($form);
или:
module_load_include('inc', 'node', 'node.pages');
$form = node_add('article');
$output = render($form);
Drupal 6:
module_load_include('inc', 'node', 'node.pages');
$type = 'article';
$node = array(
'uid' => $GLOBALS['user']->uid,
'name' => isset($GLOBALS['user']->name) ? $GLOBALS['user']->name : '',
'type' => $type,
'language' => ''
);
$output = drupal_get_form($type . '_node_form', $node);
Написанное актуально для
Drupal 6, Drupal 7
Похожие записи
- Модуль Auto-Dialog — показываем контент и формы в jQuery диалоге
- Как изменить сообщение, выводимое после создания материала
- Модуль References dialog — расширение возможностей виджета у полей типа entity reference
- Уведомление пользователя об удалении его материала с указанием причины
- Человечные заголовки у форм создания материалов
Комментарии
А почему не
global $user;
вместо $GLOBALS['user'] ?без разницы
а возможно как-то создать объект $form, а не уже готовую к показу html-форму?
node_form()
А можно как-то вывести в эту форму в поле Body дефолтный предустановленный текст, если стоит TinyMCE?
Добавляю в массив $node строчку
, и на долю секунды при открытии формы я вижу этот текст в поле body, но потом прогружается редактор, и поле очищается.. Как этого избежать?
Возможно, это тема для отдельной статьи, но очень интересует вопрос:
Как программно вывести форму создания entiy_type entity_bungle
то есть для типа сущности созданного с помощью модуля Entity API?
Здесь: Работа с сущностями с помощью Entity metadata wrappers почитал, но ответа не нашел.
пытался так:
но не работает, то ли надо какой-то файлик подключить, то ли другой id формы, то ли надо ещё какую-то сущность типа $node получить...
Решил:
Хочу сказать, что в этом способе не будут работать дефолтные ajax виджеты, типа аплоада файлов и т.д..
о спасибо!!! не понимал почему у меня форма не отображалось, оказываться надо было include делать эххх
Добрый день
Пытаюсь использовать тип материала в качестве "отзыва".
Видел в некоторых проектах возможность оставлять отзыв, только один раз в каждой ноде.
Отзывы можно комментировать без ограничений.
Как пример можно взять тостер.
Попробовал вывести как вы предложили, но вероятно нужно еще связать ноды.
Не могли бы вы подсказать, как это сделать ?
Спасибо
с чем связать? какие ноды?
Не ноды, а типы материала.
Основные и те которые в качестве отзыва.
как сделать чтобы работали дефолтные ajax виджеты, типа аплоада файлов и т.д.. ?
А как это сделать в 8 друпале?
Добавить комментарий