rendered paste bodyfunction attractions_menu() { $items = array(); $items[BASE_PATH] = array( 'title' => 'Attractions', 'page callback' => 'attractions_list', 'access arguments' => array('access attractions content'), 'file' => 'attractions.pages.inc', ); // admin $items['admin/settings/'. BASE_PATH] = array( 'title' => 'Tunisia Attractions', 'page callback' => 'attractions_admin', 'page arguments' => array('attractions_admin'), 'access arguments' => array('access administration pages'), 'file' => 'attractions.admin.inc', ); $items['admin/settings/'. BASE_PATH .'/new'] = array( 'title' => 'Add New', 'page callback' => 'attractions_new', 'page arguments' => array('attractions_new'), 'type' => MENU_LOCAL_TASK, 'file' => 'attractions.admin.inc', ); $items['admin/settings/'. BASE_PATH .'/manage'] = array( 'title' => 'Manage Attractions', 'description' => 'Manage attraction', 'page callback' => 'attractions_admin', 'page arguments' => array('attractions_admin'), 'type' => MENU_DEFAULT_LOCAL_TASK, 'file' => 'attractions.admin.inc', ); $items['admin/settings/'. BASE_PATH .'/edit/%attraction_id'] = array( 'title' => 'Edit Attraction', 'load arguments' => array(1), 'page arguments' => array(4), 'page callback' => 'attractions_admin_edit', 'file' => 'attractions.admin.inc', 'weight' => -10, ); $items['admin/settings/'. BASE_PATH .'/delete/%attraction_id'] = array( 'title' => 'Edit Attraction', 'load arguments' => array(1), 'page arguments' => array(4), 'page callback' => 'attractions_admin_edit', 'file' => 'attractions.admin.inc', 'weight' => -10, ); // add menu item for each type $rs = get_types(); while ($row = db_fetch_array($rs)) { $items[BASE_PATH .'/'. $row['type']] = array( 'title' => $row['type']. 's', 'page callback' => 'attractions_search', 'weight' => $row['weight'], 'file' => 'attractions.pages.inc', ); $items[BASE_PATH .'/'. $row['type'] .'/%attraction_name'] = array( 'title' => '!name', 'title arguments' => array('!name' => 2), 'load arguments' => array(0), 'page callback' => 'attractions_detail', 'page arguments' => array(1, 2), 'file' => 'attractions.pages.inc', 'parent' => BASE_PATH .'/'. $row['type'], ); $items['admin/settings/'. BASE_PATH .'/'. $row['type']] = array( 'title' => 'Manage '. $row['type']. 's', 'page callback' => 'attractions_admin_search', 'weight' => $row['weight'], 'file' => 'attractions.admin.inc', ); } return $items;}function attraction_name_load($attraction_name) { if (!attraction_exists($attraction_name)) { drupal_set_message('Sorry, the attraction could not be found.'); } return $attraction_name;}function attraction_type_load($attraction_type) { return $attraction_type;}function attraction_id_load($attraction_id) { if (!is_numeric($attraction_id)) { // to do redirect drupal_set_message('Sorry, the attraction could not be found.'); } return $attraction_id;}