ฉันต้องการเพิ่มเขตข้อมูลเพิ่มเติมลงในโปรไฟล์ผู้ใช้ ฉันต้องการให้ผู้ใช้สามารถแก้ไขข้อมูลเกือบทั้งหมดที่ฉันเก็บไว้ในฐานข้อมูลเกี่ยวกับเขา ฉันมีความคิดบางอย่าง: อาจเป็นไปได้ที่จะใช้แบบฟอร์ม API
ฉันต้องการเพิ่มเขตข้อมูลเพิ่มเติมลงในโปรไฟล์ผู้ใช้ ฉันต้องการให้ผู้ใช้สามารถแก้ไขข้อมูลเกือบทั้งหมดที่ฉันเก็บไว้ในฐานข้อมูลเกี่ยวกับเขา ฉันมีความคิดบางอย่าง: อาจเป็นไปได้ที่จะใช้แบบฟอร์ม API
คำตอบ:
วิธีเพิ่มเขตข้อมูลผู้ใช้ด้วยรหัสเพื่อให้คุณสามารถใส่ในโมดูลของคุณ
ฉันได้พบสิ่งนี้: 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);
}
}
'weight' => '1',
ในอาร์เรย์วิดเจ็ตใน$instance
ฉันจะเพิ่มในคำตอบของฉัน
/admin/config/people/accounts/fields
แล้วใช้ตรวจสอบภาคสนามใน/admin/config/development/field-inspector
การส่งออกภาคสนามและสนามอาร์เรย์นิยามเช่นสำหรับการใช้งานในรหัสเหมือนข้างต้น
function MYMODULE_uninstall() {field_delete_field('field_myField');}
ฉันพบหน้ายากที่จะหา แต่ที่ / admin / config / people / accounts / field คุณสามารถเพิ่มเขตข้อมูลให้กับผู้ใช้
users
แล้ว "ทุ่ง" users
สร้างช่องใหม่นอกตาราง
hook_form_alter(&$form, &$form_state, $form_id)
โปรไฟล์ใน D7 ค่อนข้างแปลก profile2โมดูลอาจจะทำสิ่งที่คุณต้องการ
ใน Drupal 7 ให้ใช้กระบวนการนี้เพื่อเพิ่มฟิลด์ใหม่หรือที่มีอยู่ซึ่งมีประเภทฟิลด์ที่แตกต่างกัน (เช่นฟิลด์รูปภาพแท็ก ฯลฯ ) ไปยังโปรไฟล์ผู้ใช้:
ไปที่ "ผู้ดูแลระบบ→การกำหนดค่า→ผู้คน: การตั้งค่าบัญชี " ในเมนูผู้ดูแลระบบจากนั้นไปที่ " จัดการฟิลด์ " (แท็บที่สอง)
(หรือใช้เส้นทางที่ตรงใน URL: /admin/config/people/accounts/fields
)
ฟิลด์ใดที่คุณต้องการเพิ่ม