Редактировать:Drupal - Включить более одного user_profile_form на странице
Я думаю, что это потому, что действие такое же или что-то в этом роде. Я пытался изменить действие с помощью этого:
function mytheme_user_profile_form($form) {
global $user;
$uid = $user->uid;
//print '<pre>'; print_r($form); print '</pre>';
$category = $form['_category']['#value'];
switch($category) {
case 'account':
$form['#action'] = '/user/'.$uid.'/edit?destination=user/'.$uid;
break;
case 'education':
$form['#action'] = '/user/'.$uid.'/edit/education?destination=user/'.$uid;
break;
case 'experience':
$form['#action'] = '/user/'.$uid.'/edit/experience?destination=user/'.$uid;
break;
case 'publications':
$form['#action'] = '/user/'.$uid.'/edit/publications?destination=user/'.$uid;
break;
case 'conflicts':
$form['#action'] = '/user/'.$uid.'/edit/conflicts?destination=user/'.$uid;
break;
}
//print '<pre>'; print_r($form); print '</pre>';
//print $form['#action'];
$output .= drupal_render($form);
return $output;
}
Но, вид действия, когда форма на самом деле оказывается не меняется. Они все/пользователь /% uid
Могу ли я изменить действие формы?
Я включаю несколько разных «категорий» формы профиля пользователя на одной странице, и код будет правильно выводить формы, которые я указываю. Каждая форма находится в отдельном разборном div.
Моя проблема двоякая.
(1) Существующие значения для полей предварительно не заселены и
(2) При нажатии на «Сохранить» для одной секции приведет предупреждение: поле Email требуется, независимо от того, какой формы вы фактически сохраняете
Я уверен, что для проблемы №2 это потому, что имя кнопки одинаково во всех случаях, равно как и идентификатор формы.
print '<h3>– Account Settings</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'account'));
print '</div>';
print '<h3>– My Info</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'Personal'));
print '</div>';
print '<h3>– Experience</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'experience'));
print '</div>';
print '<h3>– Education</h3>';
print '<div class="expand">';
print(drupal_get_form('user_profile_form', $user, 'education'));
print '</div>';
Вы любили источник, чтобы узнать, действительно ли эти формы уникальны? – mikewaters