Возвращаем ссылку "Включить Theme Developer"

Раньше, когда проект Theme Developer был в составе Devel, в меню Development была удобнейшая ссылка, которая включала/выключала этот модуль:

Восстановить пункт меню можно так:

Drupal 6

/**
 * Реализация hook_menu()
 */
function mymodule_menu() {
  $items['toggle_themer_developer'] = array(
    'title' => 'Toggle Theme Developer',
    'page callback' => 'mymodule_toggle_themer_developer',
    'access arguments' => array('access devel information'),
    'menu_name' => 'devel',
  );
  return $items;
}
 
/**
 * Menu callback для url "toggle_themer_developer"
 */
function mymodule_toggle_themer_developer() {
  if (module_exists('devel_themer')) {
    module_disable(array('devel_themer'));
  }
  else {
    include_once('./includes/install.inc');
 
    if (!drupal_get_schema_versions('devel_themer')) {
      drupal_install_modules(array('devel_themer'));
    }
    else {
      module_enable(array('devel_themer'));
    }
  }
 
  drupal_rebuild_theme_registry();
  menu_rebuild();
  drupal_goto();
}


Drupal 7

/**
 * Реализация hook_menu()
 */
function mymodule_menu() {
  $items['toggle_themer_developer'] = array(
    'title' => 'Toggle Theme Developer',
    'page callback' => 'mymodule_toggle_themer_developer',
    'access arguments' => array('access devel information'),
    'menu_name' => 'devel',
  );
  return $items;
}
 
/**
 * Menu callback для url "toggle_themer_developer"
 */
function mymodule_toggle_themer_developer() {
  if (!module_exists('devel_themer')) {
    module_enable(array('devel_themer'), FALSE);
  }
  else {
    module_disable(array('devel_themer'), FALSE);
  }
  drupal_flush_all_caches();
  drupal_goto();
}


Написанное актуально для
Drupal 6, Drupal 7
Теги:
работа с меню
Добавлено: 25 Июля 2018 08:19:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...