ฉันจะตั้งค่าจำนวนคงที่เป็น 11 ได้อย่างไร


14

ฉันกำลังตั้งค่าฟิลด์ที่มีหลายค่า จำนวนค่าคงที่สูงสุดที่ฉันสามารถกำหนดได้คือ 10

ถ้าฉันต้องการมากกว่านี้ฉันต้องตั้งค่านี้ไม่ จำกัด

มีวิธีที่จะตั้งค่าจำนวนคงที่ของเขตข้อมูลเป็น 11 ค่า

คำตอบ:


20

ตัวเลือก cardinality นั้นยากที่จะเขียนลงใน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

ดูเหมือนว่าจะไม่ได้รับการตรวจสอบความถูกต้องสูงสุด (หรือ จำกัด เพิ่มเติม) ที่อื่น แต่อย่างน้อยไม่ใช่แกน (Core) ดังนั้นจึงเป็นเรื่องง่ายที่จะเสนอทางเลือกเพิ่มเติมสำหรับค่านั้นโดยใช้แบบฟอร์ม hook hook

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 ผู้ดูแลระบบ


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.