제 문제는 등록 양식에 선택 드롭 다운을 추가하여 사용자 유형을 선택하고 싶습니다. 그러나이 코드는 프런트 엔드에 양식 요소를 표시하지 않습니다. 누군가가 코드를보고 해당 코드의 문제점을 알려주십시오. 이 요소를 포함하지만 등록 양식에 표시되지 않는 배열을 볼 수 있습니다. 아래에있는 내 코드는 여기에서 확인하십시오 :Drupal 사용자 정의 등록 폼 요소가 프런트 엔드에 표시되지 않습니다.
<?php
function registration_role_dropdown_form_alter($form, &$form_state, $form_id){
if ($form_id == 'user_register_form') {
/*$query = db_select('role', 'r');
$query->addTag('translatable');
$query->fields('r', array('rid', 'name'));
$query->orderBy('weight');
$query->orderBy('name');
if (!empty($permission)) {
$query->innerJoin('role_permission', 'p', 'r.rid = p.rid');
$query->condition('p.permission', $permission);
}
$result = $query->execute();*/
$form['account']['roles']= array(
'#type' => 'select',
'#title' => t('Register As'),
'#options' => array(
registration_role_dropdown_user_roles()
),
'#description' => t('Select the <em>User type</em> from the dropdown.'),
);
}
}
function registration_role_dropdown_user_roles($membersonly = FALSE, $permission = NULL) {
$query = db_select('role', 'r');
$query->addTag('translatable');
$query->fields('r', array('rid', 'name'));
$query->orderBy('weight');
$query->orderBy('name');
if (!empty($permission)) {
$query->innerJoin('role_permission', 'p', 'r.rid = p.rid');
$query->condition('p.permission', $permission);
}
$result = $query->execute();
$roles = array();
foreach ($result as $role) {
switch ($role->rid) {
// We only translate the built in role names
case DRUPAL_ANONYMOUS_RID:
if (!$membersonly) {
$roles[$role->rid] = t($role->name);
}
break;
case DRUPAL_AUTHENTICATED_RID:
$roles[$role->rid] = t($role->name);
break;
default:
$roles[$role->rid] = $role->name;
}
}
return $roles;
}
?>
아무도 없습니까? 너희들은 몇 가지 아이디어를 공유 할 수 있니? –