menu_editor.module 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Implementation of hook_menu().
  4. */
  5. function menu_editor_menu() {
  6. $items['admin/structure/menu/manage/%menu/poweredit'] = array(
  7. 'title' => 'Power Edit',
  8. 'page callback' => 'drupal_get_form',
  9. 'page arguments' => array('menu_editor_overview_form', 4),
  10. // 'title callback' => 'menu_editor_overview_title',
  11. // 'title arguments' => array(3),
  12. 'access callback' => 'menu_editor_form_access',
  13. 'access arguments' => array(4),
  14. 'type' => MENU_LOCAL_TASK,
  15. 'file' => 'menu_editor.admin.inc',
  16. );
  17. return $items;
  18. }
  19. /**
  20. * Implements hook_permission().
  21. */
  22. function menu_editor_permission() {
  23. $menus = menu_get_menus(TRUE);
  24. $perm = array();
  25. foreach ($menus as $menu_machine_name => $menu_display_name) {
  26. $perm["menu edit $menu_machine_name"] = array(
  27. 'title' => t("Menu editor: Edit @menu", array('@menu' => $menu_display_name)),
  28. );
  29. }
  30. return $perm;
  31. }
  32. function menu_editor_form_access($menu) {
  33. return
  34. user_access('administer menu') ||
  35. user_access("menu edit $menu[menu_name]")
  36. ;
  37. }
  38. // function menu_editor_admin_menu() {
  39. // $result = db_query("SELECT * FROM {menu_custom} ORDER BY title");
  40. // $items = array();
  41. // while ($menu = db_fetch_array($result)) {
  42. // $items[] = array(
  43. // 'title' => $menu['title'],
  44. // 'path' => 'admin/build/menu-customize/'. $menu['menu_name'] . '/poweredit',
  45. // 'parent_path' => 'admin/build/menu/list',
  46. // 'weight' => 100,
  47. // );
  48. // }
  49. // return $items;
  50. // }
  51. /**
  52. * Implemenation of hook_theme().
  53. */
  54. function menu_editor_theme() {
  55. return array(
  56. 'menu_editor_overview_form' => array(
  57. 'file' => 'menu_editor.admin.inc',
  58. 'render element' => 'form',
  59. ),
  60. );
  61. }
  62. /**
  63. * Title callback for the menu overview page and links.
  64. */
  65. function menu_editor_overview_title($menu) {
  66. return $menu['title'];
  67. }
  68. function menu_editor_get_placeholders() {
  69. static $placeholders;
  70. if (!isset($placeholders)) {
  71. $placeholders = module_invoke_all('menu_editor_placeholders');
  72. }
  73. return $placeholders;
  74. }
  75. function menu_editor_get_path_for_placeholder($placeholder, $mlid) {
  76. $placeholders = menu_editor_get_placeholders();
  77. if (isset($placeholders[$placeholder])) {
  78. return str_replace('%mlid', $mlid, $placeholders[$placeholder]);
  79. }
  80. return $placeholder;
  81. }