2011-07-04 4 views
0

페이지에 user_profile_form을 삽입하려고했습니다. 코드는 다소 단순합니다 :Drupal 7, 페이지에 user_profile_form 삽입

글로벌 $ 사용자; module_load_include ('inc', 'user', 'user.pages'); 인쇄 drupal_render (drupal_get_form ('user_profile_form', $ user, 'account'));

모든 이미지 업로드가 표시하는 경우를 제외하고 잘 작동 :

"경고 : call_user_func_array() [function.call 사용자 - FUNC - 배열] : 첫 번째 인수가 유효한 콜백, 'user_profile_form'이 될 것으로 예상된다 drupal_retrieve_form에 주어졌다() "

모든 아이디어, 들으

답변

3

당신이 /로드 양식을 구축 할 module_load_include 대신 form_load_include()를 사용해야합니다, 당신은 $의 form_state 내부 인수를 전달해야 할 많은.

당신의 모습을 찾고있는 코드 :

$form_id = 'user_profile_form'; 
    $form_state = array(); 
    //passing arguments to form. 
    $form_state['build_info']['args'] = array($account, 'account'); 

    form_load_include($form_state, 'inc', 'user', 'user.pages'); 

    $form = drupal_build_form($form_id, $form_state); 
+0

$ account 변수를 빌드하려면 다음 코드를 사용하십시오. global $ user; $ account = user_build_content ($ user); –

+0

이것은 작동하지만 다음과 같이 나타납니다. Notice : user_account_form()의 비 객체 속성을 얻으려고합니다 (/var/www/modules/user/user.module의 1019 행) –

0

통지 또는 경고 방지하려면 다음의

이 user_account_form에 비 객체의 속성을 얻기 위해 노력하는() (라인 1019/var에/www가/모듈/사용자/user.module)

변경에 마지막 두 줄 :

,
<?php 
    $output_form = drupal_get_form($form_id); 
    print render($output_form); 
?>