关于选择选项,显示用户值=真实姓名,但提交不同的相关名称=姓名。
为了向组中添加多个成员(opigno中的课程),我在选择选项上实现了所选模块以获得更好的UX,但是而不是显示我想要显示实名的用户名。< /强>
在用户加载循环中使用 $ account-realname 会显示它们,但在提交后它会中断并且不会添加用户。 我认为它希望收到名称。
$ form ['massadd'] ['#options'] [$ account-&gt; uid] = $ account-&gt; realname
$gid = current($form['group_ids']['#value']);
$node = node_load($gid);
$form['massadd'] = array(
'#type' => 'select',
'#title' => t('Select students to add to the group'),
'#required' => TRUE,
'#multiple' => TRUE,
);
$users = entity_load('user');
foreach ($users as $uid => $account) {
if ($uid && !in_array($uid, $exclude)) {
$form['massadd']['#options'][$account->uid] = $account->name; // tried realname instead
}
}
...
$form['submit']['#weight'] = 0;
// We validate our own way.
unset($form['#validate']);
$form['#submit'][] = 'opigno_simple_ui_form_og_massadd_massadd_form_add_roles';
$form['#submit'][] = 'opigno_simple_ui_form_og_massadd_massadd_form_add_state';
$form['#submit'] = array_merge(array('opigno_simple_ui_form_og_massadd_massadd_form_prepare'), $form['#submit']);
任何方式我都可以在提交之前替换内容 - >&gt;将realname作为 - &gt;名称发送到后端或保持原样,以便表单有效但显示真实姓名而不是名字?
更新
现在才意识到这是使用og_massadd模块,该模块仅使用带有propertyCondition的EntityFieldQuery检查用户名并打开separate question if there is a way to cross check with realname
$query->entityCondition('entity_type', 'user')
->propertyCondition('name', check_plain($mail));
因此我认为最好的方法可能是在提交内容之前更改内容,因此它可以显示实名,但实际上提交名称,而不是任何想法?