menu_overview_tree_rows
modules/menu/menu.module, строка 634
- Версии
- 5
menu_overview_tree_rows($pid = 0, $depth = 0)
Код
<?php
function menu_overview_tree_rows($pid = 0, $depth = 0) {
$parent_item = menu_get_item($pid);
$rows = array();
if (isset($parent_item) && isset($parent_item['children'])) {
usort($parent_item['children'], '_menu_sort');
foreach ($parent_item['children'] as $mid) {
$item = menu_get_item($mid);
// Populate the title field.
$title = '';
if ($pid == 0) {
// Top-level items are menu names, and don't have an associated path.
$title .= check_plain($item['title']);
}
else {
$title .= l($item['title'], $item['path']);
}
if ($depth > 0) {
$title = '- '. $title;
}
for ($i = 1; $i < $depth; $i++) {
$title = ' '. $title;
}
// Populate the operations field.
$operations = array();
if (!($item['type'] & MENU_MODIFIABLE_BY_ADMIN)) {
$operations[] = array('data' => t('locked'), 'colspan' => '3', 'align' => 'center');
}
else {
// Set the edit column.
if ($item['type'] & (MENU_VISIBLE_IN_TREE | MENU_VISIBLE_IF_HAS_CHILDREN)) {
$operations[] = array('data' => l(t('edit'), 'admin/build/menu/item/edit/'. $mid));
}
else {
$operations[] = array('data' => '');
}
// Set the disable column.
if ($item['type'] & (MENU_IS_ROOT | MENU_VISIBLE_IF_HAS_CHILDREN)) {
// Disabling entire menus is done from block admin page.
// MENU_VISIBLE_IF_HAS_CHILDREN menus are always enabled so hide this operation.
$operations[] = array('data' => '');
}
else if ($item['type'] & MENU_VISIBLE_IN_TREE) {
$operations[] = array('data' => l(t('disable'), 'admin/build/menu/item/disable/'. $mid));
}
else {
$operations[] = array('data' => l(t('enable'), 'admin/build/menu/item/edit/'. $mid));
}
// Set the reset column.
if ($item['type'] & MENU_CREATED_BY_ADMIN) {
$operations[] = array('data' => l(t('delete'), 'admin/build/menu/item/delete/'. $mid));
}
else if ($item['type'] & MENU_MODIFIED_BY_ADMIN) {
$operations[] = array('data' => l(t('reset'), 'admin/build/menu/item/reset/'. $mid));
}
else {
$operations[] = array('data' => '');
}
}
// Call out disabled items.
if ($item['type'] & (MENU_VISIBLE_IN_TREE | MENU_VISIBLE_IF_HAS_CHILDREN)) {
$class = 'menu-enabled';
}
else {
$title .= ' ('. t('disabled') .')';
$class = 'menu-disabled';
}
if ($item['type'] & (MENU_MODIFIABLE_BY_ADMIN | MENU_VISIBLE_IN_TREE)) {
$row = array(array('data' => $title, 'class' => $class), array('data' => ($item['children'] ? (($item['type'] & MENU_EXPANDED) ? t('Yes') : t('No')) : ''), 'class' => $class));
foreach ($operations as $operation) {
$operation['class'] = $class;
$row[] = $operation;
}
$rows[] = $row;
$rows = array_merge($rows, menu_overview_tree_rows($mid, $depth + 1));
}
else {
// Skip items that are hidden and locked; admins will never care about them.
$rows = array_merge($rows, menu_overview_tree_rows($mid, $depth));
}
}
}
return $rows;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии