उपयोगकर्ता प्रोफ़ाइल में अतिरिक्त फ़ील्ड कैसे जोड़ें?


22

मैं उपयोगकर्ता प्रोफ़ाइल में अतिरिक्त फ़ील्ड जोड़ना चाहूंगा। मैं चाहूंगा कि उपयोगकर्ता डेटाबेस में उसके बारे में मेरे द्वारा संग्रहीत लगभग सभी जानकारी को संपादित करने में सक्षम हो। मेरे पास कुछ विचार हैं: हो सकता है कि फॉर्म एपी का उपयोग करना संभव हो।


: विस्तार ब्लॉग यहाँ है goo.gl/zxBTBY
सुरेश Kamrushi

जवाबों:


23

कोड द्वारा उपयोगकर्ता फ़ील्ड जोड़ने का एक तरीका ताकि आप इसे अपने मॉड्यूल में डाल सकें।

मुझे यह मिल गया है: फ़ील्ड_क्रिएट_फील्ड टिप्पणियों में अपने मॉड्यूल को सक्षम करने पर आपके उपयोगकर्ता के लिए फ़ील्ड बनाने का एक तरीका है:

/**
 * 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 के साथ इस्तेमाल किया जा सकता है
व्हिस्की

धन्यवाद, यह बहुत उपयोगी था - एक विचार है कि ऑटो कैसे वजन असाइन करें?
जड़त्वीय

आप 'weight' => '1',विजेट सरणी में जोड़ सकते हैं $instanceमैं इसे अपने जवाब में जोड़ दूंगा।
FLY

जटिल मामलों के लिए, यह पहले मैन्युअल पर क्षेत्र को जोड़ने के लिए उपयोगी है /admin/config/people/accounts/fields, तो का उपयोग फील्ड इंस्पेक्टर पर /admin/config/development/field-inspectorऊपर की तरह कोड में उपयोग के लिए क्षेत्र और क्षेत्र उदाहरण परिभाषा सरणियों निर्यात करने के लिए।
तानीस

DB को साफ रखने के लिए, आप फ़ील्ड को हटाने के लिए एक हुक_इंस्टॉल लागू करना चाह सकते हैं। function MYMODULE_uninstall() {field_delete_field('field_myField');}
dxvargas

35

मुझे पेज खोजने में मुश्किल हुई, लेकिन / व्यवस्थापक / कॉन्फिग / लोग / खाते / फ़ील्ड में आप उपयोगकर्ताओं के लिए फ़ील्ड जोड़ सकते हैं।


2
धन्यवाद, लेकिन क्या मैं इसे फॉर्म एपी का उपयोग कर सकता हूं? मुझे और अधिक कार्यक्षमता की आवश्यकता है।
एलेक्सी

ऐसा क्या है जो आप करना चाहते हैं, यह खेतों के साथ संभव नहीं है?
Attiks

मैंने पहले से ही ड्रुपल तालिका में अपने क्षेत्र बनाए users। "फ़ील्ड" तालिका के बाहर नए फ़ील्ड बनाते हैं users
एलेक्सी

यह है कि ड्रुपल कैसे काम करता है, आप फ़ील्ड को उपयोगकर्ताओं की तालिका में क्यों संग्रहीत करना चाहते हैं?
Attiks

यह मेरी राय में करने के लिए अधिक सुविधाजनक तरीका है। वैसे मैं अतिरिक्त क्षेत्रों को जोड़ने के लिए उपयोग करता हूंhook_form_alter(&$form, &$form_state, $form_id)
एलेक्सी


4

Drupal 7 में, इस प्रक्रिया का उपयोग उपयोगकर्ता प्रोफ़ाइल में विभिन्न फ़ील्ड प्रकारों (जैसे छवि, टैग फ़ील्ड आदि) के साथ एक नया या मौजूदा फ़ील्ड जोड़ने के लिए करें:

  1. फ़ील्ड UI मॉड्यूल सक्षम करें ।
  2. व्यवस्थापक मेनू में " व्यवस्थापक → कॉन्फ़िगरेशन → लोग: खाता सेटिंग्स " पर जाएं, और फिर " फ़ील्ड प्रबंधित करें " (दूसरा टैब) पर जाएं।

    (वैकल्पिक रूप से, URL में प्रत्यक्ष पथ का उपयोग करें:) /admin/config/people/accounts/fields

  3. फ़ॉर्म के निचले भाग में "नया फ़ील्ड जोड़ें" या "मौजूदा फ़ील्ड जोड़ें" पंक्ति भरें और "सहेजें" पर क्लिक करें।

1

आप किस तरह के क्षेत्र जोड़ना चाहते हैं?

  • यदि यह एक सोशल नेटवर्किंग साइट है और आप गोपनीयता सेटिंग्स फ़ील्ड जोड़ रहे हैं, तो गोपनीयता प्रति उपयोगकर्ता मॉड्यूल का उपयोग करें ।
  • यदि आप टैब या अकॉर्डियन फ़ील्ड जोड़ना चाहते हैं, तो उपयोगकर्ता खाते फ़ील्ड (URL: / admin / config / people / accounts / फ़ील्ड) पर नए समूह जोड़ने के लिए field_group मॉड्यूल का उपयोग करें।
  • और यदि आप अलग-अलग भूमिकाओं के लिए अलग-अलग फ़ील्ड चाहते हैं, तो प्रोफ़ाइल 2 मॉड्यूल का उपयोग करें ।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.