ฉันกำลังตั้งค่าฟิลด์ที่มีหลายค่า จำนวนค่าคงที่สูงสุดที่ฉันสามารถกำหนดได้คือ 10
ถ้าฉันต้องการมากกว่านี้ฉันต้องตั้งค่านี้ไม่ จำกัด
มีวิธีที่จะตั้งค่าจำนวนคงที่ของเขตข้อมูลเป็น 11 ค่า
ฉันกำลังตั้งค่าฟิลด์ที่มีหลายค่า จำนวนค่าคงที่สูงสุดที่ฉันสามารถกำหนดได้คือ 10
ถ้าฉันต้องการมากกว่านี้ฉันต้องตั้งค่านี้ไม่ จำกัด
มีวิธีที่จะตั้งค่าจำนวนคงที่ของเขตข้อมูลเป็น 11 ค่า
คำตอบ:
ตัวเลือก 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 ผู้ดูแลระบบ
ฉันใช้โครงการ sandbox นี้เพื่อแก้ปัญหาเดียวกัน: https://www.drupal.org/sandbox/ydahi/2421885
มันมี UI เพื่อตั้งช่วงสำหรับจำนวนของค่า