You are here

menu_editor.module in Menu Editor 7

Same filename and directory in other branches
  1. 6.3 menu_editor.module
  2. 6 menu_editor.module
  3. 6.2 menu_editor.module

File

menu_editor.module
View source
<?php

/**
 * Implementation of hook_menu().
 */
function menu_editor_menu() {
  $items['admin/structure/menu/manage/%menu/poweredit'] = array(
    'title' => 'Power Edit',
    /* @see drupal_get_form() */
    'page callback' => 'drupal_get_form',
    /* @see menu_editor_overview_form() */
    'page arguments' => array(
      'menu_editor_overview_form',
      4,
    ),
    // 'title callback' => 'menu_editor_overview_title',
    // 'title arguments' => array(3),

    /* @see menu_editor_form_access() */
    'access callback' => 'menu_editor_form_access',
    'access arguments' => array(
      4,
    ),
    'type' => MENU_LOCAL_TASK,
    'file' => 'menu_editor.admin.inc',
  );
  return $items;
}

/**
 * Implements hook_permission().
 */
function menu_editor_permission() {
  $menus = menu_get_menus(TRUE);
  $perm = array();
  foreach ($menus as $menu_machine_name => $menu_display_name) {
    $perm["menu edit {$menu_machine_name}"] = array(
      'title' => t("Menu editor: Edit @menu", array(
        '@menu' => $menu_display_name,
      )),
    );
  }
  return $perm;
}

/**
 * @param array $menu
 *
 * @return bool
 */
function menu_editor_form_access($menu) {
  return user_access('administer menu') || user_access("menu edit {$menu['menu_name']}");
}

// function menu_editor_admin_menu() {
//   $result = db_query("SELECT * FROM {menu_custom} ORDER BY title");
//   $items = array();
//   while ($menu = db_fetch_array($result)) {
//     $items[] = array(
//       'title' => $menu['title'],
//       'path' => 'admin/build/menu-customize/'. $menu['menu_name'] . '/poweredit',
//       'parent_path' => 'admin/build/menu/list',
//       'weight' => 100,
//     );
//   }
//   return $items;
// }

/**
 * Implements hook_theme().
 *
 * @return array[]
 */
function menu_editor_theme() {
  return array(
    'menu_editor_overview_form' => array(
      'file' => 'menu_editor.admin.inc',
      'render element' => 'form',
    ),
  );
}

/**
 * Implements hook_preprocess_THEMEHOOK
 *
 * @param array $variables
 *
 * @see theme_form()
 */
function menu_editor_preprocess_form(array &$variables) {
  $form =& $variables['element'];
  if (0 || !isset($form['#form_id']) || 'menu_editor_overview_form' !== $form['#form_id']) {
    return;
  }
  $form['#children'] = '' . '<input type="hidden" name="menu_editor:max_input_vars_reached" value="1"/>' . $form['#children'] . '<input type="hidden" name="menu_editor:max_input_vars_reached" value="0"/>';
}

/**
 * Title callback for the menu overview page and links.
 *
 * @param array $menu
 *
 * @return string
 */
function menu_editor_overview_title(array $menu) {
  return $menu['title'];
}

/**
 * @return string[]
 */
function menu_editor_get_placeholders() {
  static $placeholders;
  if (!isset($placeholders)) {

    /* @see hook_menu_editor_placeholders() */
    $placeholders = module_invoke_all('menu_editor_placeholders');
  }
  return $placeholders;
}

/**
 * @param string $placeholder
 * @param string|int $mlid
 *
 * @return string
 */
function menu_editor_get_path_for_placeholder($placeholder, $mlid) {
  $placeholders = menu_editor_get_placeholders();
  if (isset($placeholders[$placeholder])) {
    return str_replace('%mlid', $mlid, $placeholders[$placeholder]);
  }
  return $placeholder;
}

Functions

Namesort descending Description
menu_editor_form_access
menu_editor_get_path_for_placeholder
menu_editor_get_placeholders
menu_editor_menu Implementation of hook_menu().
menu_editor_overview_title Title callback for the menu overview page and links.
menu_editor_permission Implements hook_permission().
menu_editor_preprocess_form Implements hook_preprocess_THEMEHOOK
menu_editor_theme Implements hook_theme().