node_filter_form()
คุณสามารถใช้รหัสคล้ายกับหนึ่งต่อไปนี้โดยใช้โมดูลโหนดใน
// Build the 'Update options' form.
$form['options'] = array(
'#type' => 'fieldset',
'#title' => t('Update options'),
'#attributes' => array('class' => array('container-inline')),
'#access' => $admin_access,
);
// ...
$form['options']['operation'] = array(
'#type' => 'select',
'#title' => t('Operation'),
'#title_display' => 'invisible',
'#options' => $options,
'#default_value' => 'approve',
);
กุญแจสำคัญคือการตั้งค่าบรรทัดแอตทริบิวต์ "#attributes" เพื่อ "container-inline"
รหัสนั้นสำหรับ Drupal 7; รหัสเทียบเท่าสำหรับ Drupal 6 เริ่มต้นด้วยรหัสต่อไปนี้:
$form['options'] = array(
'#type' => 'fieldset',
'#title' => t('Update options'),
'#prefix' => '<div class="container-inline">',
'#suffix' => '</div>',
);
สมมติว่าคุณกำลังใช้ Drupal 6 ดังนั้นรหัสของคุณควรเปลี่ยนเป็นสิ่งที่คล้ายกับรหัสต่อไปนี้:
function contact_register_form($form, &$form_state) {
$form['description'] = array(
'#type' => 'item',
'#title' => t('Sign up to be notified when your community launches:'),
);
$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Email'),
'#prefix' => '<div class="container-inline">',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Add me',
'#suffix' => '</div>',
);
return $form;
}
ฉันไม่ได้ใส่คำอธิบายไว้ในบรรทัดเนื่องจากไม่สามารถแสดงผลได้อย่างถูกต้องเพราะใช้ช่องแบบฟอร์ม "รายการ" ฉันยังพบว่าการใส่คำอธิบายลงในนั้นจะทำให้แบบฟอร์มใช้พื้นที่มากเกินไป (ลองนึกภาพว่าจะเกิดอะไรขึ้นหากคำอธิบายแบบอินไลน์จะยาวขึ้นและวางไว้ในบรรทัดเดียว)
สไตล์ CSS ที่ Drupal 7 เพิ่มให้กับองค์ประกอบคอนเทนเนอร์แบบอินไลน์มีดังต่อไปนี้
/**
* Inline items.
*/
.container-inline div,
.container-inline label {
display: inline;
}
/* Fieldset contents always need to be rendered as block. */
.container-inline .fieldset-wrapper {
display: block;
}
พวกเขาจะเพิ่มจากsystem.base.css
float
CSS ในcontainer-inline
คลาส