मैं मानों की निर्धारित राशि को 11 में कैसे निर्धारित करूं?


14

मैं कई मूल्यों के साथ एक क्षेत्र स्थापित कर रहा हूं। मेरे द्वारा कॉन्फ़िगर किए जा सकने वाले मानों की अधिकतम निश्चित राशि 10 है।

अगर मुझे और चाहिए तो मुझे इसे असीमित पर सेट करना होगा।

वहाँ एक तरह से 11 मूल्यों के लिए एक क्षेत्र पर मूल्यों की निर्धारित राशि निर्धारित है?

जवाबों:


20

कार्डिनिटी विकल्प field_ui_field_edit_form()कोड की इन पंक्तियों का उपयोग करके फ़ंक्शन में हार्ड- कोड किए गए हैं:

$form['field']['cardinality'] = array(
  '#type' => 'select',
  '#title' => t('Number of values'),
  '#options' => array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + drupal_map_assoc(range(1, 10)),
  '#default_value' => $field['cardinality'],
  '#description' => $description,
);

यह वह drupal_map_assoc(range(1, 10))रेखा है जो संख्या को 10 तक सीमित कर रही है।

ऐसा नहीं लगता कि अधिकतम कार्डिनैलिटी कहीं और मान्य है (या आगे सीमित है), हालांकि (कम से कम कोर द्वारा नहीं), इसलिए फॉर्म परिवर्तन हुक का उपयोग करके उस मूल्य के लिए अधिक विकल्पों की पेशकश करना बहुत आसान होगा:

function MYMODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state, $form_id) {
  // Increase the max cardinality to 20
  $range = drupal_map_assoc(range(1, 20));
  $new_options =  array(FIELD_CARDINALITY_UNLIMITED => t('Unlimited')) + $range;

  // Change the options
  $form['field']['cardinality']['#options'] = $new_options;
}

मैंने अभी इसे आज़माया है और ऐसा लगता है कि इसका कोई दुष्प्रभाव नहीं है। फ़ील्ड सिस्टम आपके द्वारा निर्धारित किसी भी कार्डिनैलिटी का सम्मान करता है, जो 10 से अधिक है, और जब आप व्यवस्थापक UI में फ़ील्ड को संपादित करते हैं, तो समस्या के बिना इसे सहेजता है।


0

मैंने उसी मुद्दे को हल करने के लिए इस सैंडबॉक्स प्रोजेक्ट का उपयोग किया है: https://www.drupal.org/sandbox/ydahi/2421885

यह मूल्यों की संख्या के लिए सीमा निर्धारित करने के लिए एक यूआई प्रदान करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.