07. เพิ่มส่วนของการตั้งค่า (Create a module configuration (settings) page)
Submitted by wd on Wed, 2008-01-16 12:17
- ทำให้ตั้งค่าได้ด้วยฟังก์ชั่น
onthisdate_admin
- ทำเป็นฟอร์มโดยบรรจุอาเรย์ในรูปของ
array( '#name => 'value', ... )
<?php function onthisdate_admin() { $form['onthisdate_maxdisp'] = array( '#type' => 'textfield', '#title' => t('Maximum number of links'), '#default_value' => variable_get('onthisdate_maxdisp', 3), '#size' => 2, '#maxlength' => 2, '#description' => t("The maximum number of links to display in the block."), '#required' => TRUE, ); return system_settings_form($form); } ?>
- ใช้ฟังก์ชั่น
t()
ในการแสดงผลอักขระ - ใช้ฟังก์ชั่น
variable_get('variable_name',default_value)
ในการรับค่าตัวแปรจากระบบ ซึ่งในที่นี้เรากำหนดค่าปริยายให้onthisdate_maxdisp
เป็น 3 - ต้องคืนค่าให้ระบบด้วยฟังก์ชั่น
system_settings_form()
เอาส่วนของการตั้งค่านี้ คือตัวเลข
onthisdate_maxdisp
ไปใส่ในฟังก์ชั่นonthisdate_block()
ดังนี้//--- onthisdate_block function --- ... $limitnum = variable_get("onthisdate_maxdisp", 3); $query = "SELECT nid, title, created FROM " . "{node} WHERE created >= %d " . "AND created <= %d"; $queryResult = db_query_range($query, $start_time, $end_time, 0, $limitnum); ...
- ใช้ฟังก์ชั่น
- ทำให้เรียกใช้งานตั้งค่า ผ่านเมนูได้ด้วยฮุก
onthisdate_menu
-
<?php function onthisdate_menu() { $items = array(); $items['admin/settings/onthisdate'] = array( 'title' => 'On this date module settings', 'description' => 'Description of your On this date settings control', 'page callback' => 'drupal_get_form', 'page arguments' => array('onthisdate_admin'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); return $items; } ?>
- กรองความถูกต้องของการป้อนข้อมูลด้วยฟังก์ชั่น
onthisdate_admin_validate
-
<?php function onthisdate_admin_validate($form, &$form_state) { $maxdisp = $form_state['values']['onthisdate_maxdisp']; if (!is_numeric($maxdisp)) { form_set_error('onthisdate_maxdisp', t('You must select a number for the maximum number of links.')); } else if ($maxdisp <= 0) { form_set_error('onthisdate_maxdisp', t('Maximum number of links must be positive.')); } } ?>
ดูเพิ่ม
- Printer-friendly version
- Log in or register to post comments
- 4869 reads
Recent comments