Drupal 7,将user_profile_form插入页面

时间:2011-07-04 14:36:45

标签: drupal-7

我尝试将user_profile_form插入到页面中。代码很简单:

全球$用户; module_load_include('inc','user','user.pages'); print drupal_render(drupal_get_form('user_profile_form',$ user,'account'));

一切正常,除非上传图片时显示:

“警告:call_user_func_array()[function.call-user-func-array]:第一个参数应该是一个有效的回调,drupal_retrieve_form()中给出'user_profile_form'”

任何想法,很多

2 个答案:

答案 0 :(得分:3)

您需要使用form_load_include()而不是module_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);

答案 1 :(得分:0)

防止发出通知或警告:

  

尝试在user_account_form()中获取非对象的属性(/var/www/modules/user/user.module的第1019行)

将最后两行更改为:

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