我尝试将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'”
任何想法,很多
答案 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);
?>