function menu_unserialize in Drupal 6
Same name and namespace in other branches
- 7 includes/menu.inc \menu_unserialize()
The menu system uses serialized arrays stored in the database for arguments. However, often these need to change according to the current path. This function unserializes such an array and does the necessary change.
Integer values are mapped according to the $map parameter. For example, if unserialize($data) is array('view', 1) and $map is array('node', '12345') then 'view' will not be changed because it is not an integer, but 1 will as it is an integer. As $map[1] is '12345', 1 will be replaced with '12345'. So the result will be array('node_load', '12345').
Parameters
@data: A serialized array.
@map: An array of potential replacements.
Return value
The $data array unserialized and mapped.
Related topics
3 calls to menu_unserialize()
- menu_get_item in includes/
menu.inc - Get a router item.
- _menu_check_access in includes/
menu.inc - Check access to a menu item using the access callback
- _menu_item_localize in includes/
menu.inc - Localize the router item title using t() or another callback.
File
- includes/
menu.inc, line 258 - API for the Drupal menu system.
Code
function menu_unserialize($data, $map) {
if ($data = unserialize($data)) {
foreach ($data as $k => $v) {
if (is_int($v)) {
$data[$k] = isset($map[$v]) ? $map[$v] : '';
}
}
return $data;
}
else {
return array();
}
}