사용자 프로필에 추가 필드를 추가하는 방법은 무엇입니까?


22

사용자 프로필에 다른 필드를 추가하고 싶습니다. 사용자가 데이터베이스에 저장 한 거의 모든 정보를 편집 할 수 있기를 바랍니다. 몇 가지 아이디어가 있습니다. 아마 양식 api를 사용하는 것이 가능할 수 있습니다.


상세 블로그는 여기에 있습니다 : goo.gl/zxBTBY
수레 쉬 Kamrushi

답변:


23

코드로 사용자 필드를 추가하여 모듈에 넣을 수있는 방법입니다.

나는 이것을 발견했다 : 의견에 모듈을 활성화 할 때 사용자를위한 필드를 만드는 방법을 가진 field_create_field :

/**
 * Implementation of hook_enable().
 */
function MYMODULE_enable() {
  // Check if our field is not already created.
  if (!field_info_field('field_myField')) {
    $field = array(
        'field_name' => 'field_myField', 
        'type' => 'text', 
    );
    field_create_field($field);

    // Create the instance on the bundle.
    $instance = array(
        'field_name' => 'field_myField', 
        'entity_type' => 'user', 
        'label' => 'My Field Name', 
        'bundle' => 'user', 
        // If you don't set the "required" property then the field wont be required by default.
        'required' => TRUE,
        'settings' => array(
           // Here you inform either or not you want this field showing up on the registration form.
            'user_register_form' => 1,
        ),
        'widget' => array(
            'type' => 'textfield',
            'weight' => '1',
        ), 
    );
    field_create_instance($instance);
  }
}

1
UI로 만든 필드를 내보내는 방법을 설명하는 이 매우 유용한 페이지 를 찾았 습니다. 그런 다음이 내보내기를 field_create_field 및 field_create_instance와 함께 사용하여 프로그래밍 방식으로 모든 작업을 수행 할 수 있습니다
Whisky

고마워, 이것은 매우 유용했습니다-무게를 자동으로 할당하는 방법을 알고 있습니까?
inertialmedia

'weight' => '1',위젯 배열에 추가 할 수 있습니다 $instance. 내 대답에 추가하겠습니다.
FLY

복잡한 경우를 위해, 먼저 수동에 필드를 추가하는 데 유용합니다 /admin/config/people/accounts/fields다음, 사용 필드 속성을/admin/config/development/field-inspector위 같은 코드에서 사용하기 위해 필드와 필드 인스턴스 정의 배열을 내 보냅니다.
tanius

DB를 깨끗하게 유지하기 위해 필드를 삭제하기 위해 hook_uninstall을 구현할 수도 있습니다. function MYMODULE_uninstall() {field_delete_field('field_myField');}
dxvargas

35

페이지를 찾기 어렵다는 것을 알았지 만 / admin / config / people / accounts / fields에서 사용자에게 필드를 추가 할 수 있습니다.


2
고맙지 만 양식 API를 사용하여 할 수 있습니까? 더 많은 기능이 필요합니다.
Alexey

당신이하고 싶은 것은 무엇입니까, 필드로는 불가능합니까?
Attiks

나는 Drupal 테이블에 이미 나만의 필드를 만들었습니다 users. "필드"는 테이블 외부에 새 필드를 만듭니다 users.
Alexey

그것이 drupal의 작동 방식입니다. 왜 users 테이블 안에 필드를 저장하고 싶습니까?
Attiks

내 의견으로는 더 편리한 방법입니다. 덧붙여서 내가 사용하는 추가 필드를 추가하기 위해hook_form_alter(&$form, &$form_state, $form_id)
Alexey


4

Drupal 7에서이 프로세스를 사용하여 다른 필드 유형 (예 : 이미지, 태그 필드 등)을 가진 새 필드 나 기존 필드를 사용자 프로파일에 추가하십시오.

  1. 필드 UI 모듈을 활성화하십시오 .
  2. 관리자 메뉴에서 " 관리자 → 구성 → 사람 : 계정 설정 "으로 이동 한 다음 " 필드 관리 "(두 번째 탭)로 이동하십시오.

    (또는 URL에 직접 경로를 사용하십시오 :) /admin/config/people/accounts/fields.

  3. 양식 하단의 "새 필드 추가"또는 "기존 필드 추가"줄을 작성하고 "저장"을 클릭하십시오.

1

어떤 종류의 필드를 추가 하시겠습니까?

  • 이 사이트가 소셜 네트워킹 사이트이고 개인 정보 설정 필드를 추가하는 경우 개인 사용자 개인 정보 모듈을 사용하십시오 .
  • 탭 또는 아코디언 필드를 추가하려면 field_group 모듈을 사용하여 사용자 계정 필드 (URL : / admin / config / people / accounts / fields)에 새 그룹을 추가하십시오.
  • 역할별로 다른 필드를 원할 경우 profile2 모듈을 사용하십시오 .
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.