function _menu_router_save
_menu_router_save($menu, $masks)
Saves data from menu_router_build() to the router table.
Related topics
File
- includes/menu.inc, line 3832
- API for the Drupal menu system.
Code
function _menu_router_save($menu, $masks) { // Delete the existing router since we have some data to replace it. db_truncate('menu_router')->execute(); // Prepare insert object. $insert = db_insert('menu_router') ->fields(array( 'path', 'load_functions', 'to_arg_functions', 'access_callback', 'access_arguments', 'page_callback', 'page_arguments', 'delivery_callback', 'fit', 'number_parts', 'context', 'tab_parent', 'tab_root', 'title', 'title_callback', 'title_arguments', 'theme_callback', 'theme_arguments', 'type', 'description', 'position', 'weight', 'include_file', )); $num_records = 0; foreach ($menu as $path => $item) { // Fill in insert object values. $insert->values(array( 'path' => $item['path'], 'load_functions' => $item['load_functions'], 'to_arg_functions' => $item['to_arg_functions'], 'access_callback' => $item['access callback'], 'access_arguments' => serialize($item['access arguments']), 'page_callback' => $item['page callback'], 'page_arguments' => serialize($item['page arguments']), 'delivery_callback' => $item['delivery callback'], 'fit' => $item['_fit'], 'number_parts' => $item['_number_parts'], 'context' => $item['context'], 'tab_parent' => $item['tab_parent'], 'tab_root' => $item['tab_root'], 'title' => $item['title'], 'title_callback' => $item['title callback'], 'title_arguments' => ($item['title arguments'] ? serialize($item['title arguments']) : ''), 'theme_callback' => $item['theme callback'], 'theme_arguments' => serialize($item['theme arguments']), 'type' => $item['type'], 'description' => $item['description'], 'position' => $item['position'], 'weight' => $item['weight'], 'include_file' => $item['include file'], )); // Execute in batches to avoid the memory overhead of all of those records // in the query object. if (++$num_records == 20) { $insert->execute(); $num_records = 0; } } // Insert any remaining records. $insert->execute(); // Store the masks. variable_set('menu_masks', $masks); return $menu; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!menu.inc/function/_menu_router_save/7.x