function menu_get_menu_router_item_from_db
Search API
7.x menu.inc | menu_get_menu_router_item_from_db($path) |
6.x menu.inc | menu_get_menu_router_item_from_db($path) |
4.x menu.inc | menu_get_menu_router_item_from_db($path) |
5.x menu.inc | menu_get_menu_router_item_from_db($path) |
Return array from menu_router for this item. *
1 call to menu_get_menu_router_item_from_db()
- menu_get_item in includes/
menu.inc - Figure out which menu_router path matches the supplied path and return it.
File
- includes/
menu.inc, line 318
Code
function menu_get_menu_router_item_from_db($path) {
$res = db_query("SELECT * FROM menu_router WHERE path = ?", array($path));
$cur = db_fetch_array($res);
if ($cur ["path"] != $path) {
// It was not found!
return NULL;
}
// Unserialize the things which are supposed to be unserialized.
$cur ["page_arguments"] = unserialize($cur ["page_arguments"]);
if (!is_array($cur ["page_arguments"])) {
$cur ["page_arguments"] = array();
}
// If any of the page_arguments is a number by itself, we will instead
// use the number of the URL args.
// For example, if the URL path is "node/edit/apple"
// and there is a page_argument for the number 2, we will replace
// it with "apple". This is how the menu system can use wildcards from the url
// for the page arguments.
foreach ($cur ["page_arguments"] as $c => $arg) {
if (is_numeric($arg)) {
$temp = explode("/", $_REQUEST ["q"]);
$cur ["page_arguments"][$c] = @$temp [$arg];
}
}
$cur ["access_arguments"] = unserialize($cur ["access_arguments"]);
if (!is_array($cur ["access_arguments"])) {
$cur ["access_arguments"] = array();
}
// Same situation for access_arguments as the page_arguments above.
foreach ($cur ["access_arguments"] as $c => $arg) {
if (is_numeric($arg)) {
$temp = explode("/", $_REQUEST ["q"]);
$cur ["access_arguments"][$c] = @$temp [$arg];
}
}
//fpm($_REQUEST);
//fpm($cur);
$cur ["page_settings"] = unserialize($cur ["page_settings"]);
if (!is_array($cur ["page_settings"])) {
$cur ["page_settings"] = array();
}
// If there is a title property, run it through t()
if ($cur ["title"] != "") {
$cur ["title"] = t($cur ["title"]);
}
// If there is a description, run through t()
if ($cur ["description"] != "") {
$cur ["description"] = t($cur ["description"]);
}
// If the page_settings has menu links, run their texts through t().
foreach ($cur ["page_settings"] as $key => $val) {
if ($key == "menu_links" && is_array($val)) {
foreach ($val as $c => $mitems) {
if ($mitems ["text"] != "") {
$cur ["page_settings"]["menu_links"][$c]["text"] = t($mitems ["text"]);
}
}
}
}
return $cur;
}