[РЕШЕНО] Программно вывести форму профиля пользователя

Главные вкладки

Аватар пользователя spectra spectra 3 декабря 2013 в 23:39

В ноде необходимо программно вывести форму профиля пользователя.
Но вариант

<?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).

и т.д.

Дело в том, что используется Profile2, и с помощью него созданы 3 типа. Соответственно 3 формы имеют один и тот же id - user_profile_form..
Как в таком случае вывести нужную форму?

Комментарии

Аватар пользователя spectra spectra 4 декабря 2013 в 0:17

Вывелась учетная запись, а как другой тип профиля вывести?
Ошибки:
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).
...

Аватар пользователя spectra spectra 4 декабря 2013 в 0:33

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).

Аватар пользователя drupby drupby 4 декабря 2013 в 0:37

"spectra" wrote:
Вывелась учетная запись, а как другой тип профиля вывести?
Ошибки:
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).
...

во-первых надо было передать в drupal_get_form объект пользователя ($account)
во-вторых profile2 должен выводить формы с другим form_id - посмотри какие там id

http://drupal.stackexchange.com/questions/63727/drupal-render-profile-2-...

Аватар пользователя drupby drupby 4 декабря 2013 в 0:42

"spectra" wrote:
Получилось вывести нужное, но почему-то вылазит 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).

потому что я уже говорил , что вторым аргументом надо передавать объект пользователя , а не строку