В ноде необходимо программно вывести форму профиля пользователя.
Но вариант
<?php
$form = drupal_get_form('user_profile_form');
$form = drupal_render($form);
echo $form;
?>
не прокатывает.
Пишет
Notice: Undefined index: user_profile_form в функции drupal_retrieve_form() (строка 764 в файле /home/srv38584/htdocs/includes/form.inc).
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'user_profile_form' not found or invalid function name в функции drupal_retrieve_form() (строка 799 в файле /home/srv38584/htdocs/includes/form.inc).
Notice: Undefined index: #user_category в функции block_form_user_profile_form_alter() (строка 563 в файле /home/srv38584/htdocs/modules/block/block.module).
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'user_profile_form' not found or invalid function name в функции drupal_retrieve_form() (строка 799 в файле /home/srv38584/htdocs/includes/form.inc).
Notice: Undefined index: #user_category в функции block_form_user_profile_form_alter() (строка 563 в файле /home/srv38584/htdocs/modules/block/block.module).
и т.д.
Дело в том, что используется Profile2, и с помощью него созданы 3 типа. Соответственно 3 формы имеют один и тот же id - user_profile_form..
Как в таком случае вывести нужную форму?
Комментарии
надо приинклюдить файл , в котором описывается форма
module_load_include('pages.inc', 'user');
Вывелась учетная запись, а как другой тип профиля вывести?
Ошибки:
Notice: Trying to get property of non-object в функции user_account_form() (строка 1019 в файле /home/srv38584/htdocs/modules/user/user.module).
Notice: Trying to get property of non-object в функции user_profile_form() (строка 281 в файле /home/srv38584/htdocs/modules/user/user.pages.inc).
...
module_load_include('pages.inc', 'user');
$form = drupal_get_form('user_profile_form','profile_NAMETYPE','NAMETYPE');//получаем поля формы
$form = drupal_render($form);
echo $form;
Получилось вывести нужное, но почему-то вылазит 1 ошибка:
Notice: Trying to get property of non-object в функции profile2_form_user_profile_form_alter() (строка 352 в файле /home/srv38584/htdocs/sites/all/modules/profile2/profile2.module).
во-первых надо было передать в drupal_get_form объект пользователя ($account)
во-вторых profile2 должен выводить формы с другим form_id - посмотри какие там id
http://drupal.stackexchange.com/questions/63727/drupal-render-profile-2-...
потому что я уже говорил , что вторым аргументом надо передавать объект пользователя , а не строку
Спасибо, получилось.
module_load_include('pages.inc', 'user');
$form = drupal_get_form('user_profile_form',$user,'NAMETYPE');//получаем поля формы
$form = drupal_render($form);
echo $form;