2012-11-20 30 views
5

में मैं सोच रहा था अगर मैं प्रोग्राम के रूप में एक CCK क्षेत्र उदाहरण बना सकते हैं और एक एकल चरण में सम्मिलित "allowed_values" कर सकते हैं। तो मैं इस कोशिश की:जोड़ें अनुमति प्राप्त मान सूची प्रोग्राम के रूप में Drupal 7 CCK क्षेत्र "list_text"

field_create_instance(array(
    'field_name' => 'card number', 
    'entity_type' => 'payment_method', 
    'bundle' => 'debit_card', 
    'label' => t('Debit/Credit card'), 
    'description' => t('Add card\'s number '), 
    'widget' => array(
     'type' => 'options_select', 
     'weight' => 0, 
     'settings' => array('size' => 50), 
    ), 
    'required' => TRUE, 
)); 

मैं कुछ मामले यानी की कोशिश की है 'सेटिंग' => सरणी में स्थापित करने के लिए ('allowed_values' => सरणी (1, 2, 3)) लेकिन कुछ नहीं हुआ। कोई सुझाव?

उत्तर

3

समाधान:

function MY_MODULE_install() { 
    field_create_field(array(
    'field_name' => 'months', 
    'type' => 'list_text', 
    'cardinality' => 1, 
    'settings' => array('allowed_values_function' => 'get_months'), 
    'entity_types' => array('user', 'node'), 
)); 
} 

function get_months() { 
    $months = array('01', '02', '03',...'12'); 
    return $months; 
} 

चेतावनी: कॉलबैक समारोह हमेशा अपने कस्टम मॉड्यूल की * .module फ़ाइल में होना चाहिए।

+1

[लिंक] (https://www.drupal.org/node/876250) से: _This हुक को मॉड्यूल पहली बार सक्षम होने पर बुलाया जाएगा ._ इस प्रकार, आपकी सूची अगले अक्षम/सक्षम मॉड्यूल तक स्थिर हो जाएगी – augusto

+1

जब मॉड्यूल सक्षम किया गया है हुक बुलाया जाएगा। जब भी क्षेत्र प्रदान की गई है फ़ंक्शन कॉल किया जाएगा, ताकि आप संभावना इस सूची में परिवर्तन करना होगा। –