| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | 
							- <?php
 
- /**
 
-  * Implementation of hook_init().
 
-  */
 
- function cobalt_init() {
 
-   if (user_access('use cobalt')) {
 
-     global $user;
 
-     if (variable_get('cobalt_jquery_hotkeys', 1)) {
 
-       drupal_add_library('cobalt', 'jquery.hotkeys');
 
-     }
 
-     drupal_add_js(drupal_get_path('module', 'cobalt') . '/js/cobalt.js');
 
-     drupal_add_js(drupal_get_path('module', 'cobalt') . '/js/cobalt.menu.js');
 
-     $settings = array(
 
-       'state' => $user->uid,
 
-       'path' => $_GET['q'],
 
-       'bindings' => preg_split('/,\s*/', variable_get('cobalt_shortcuts', 'Alt+space, Ctrl+space')),
 
-     );
 
-     drupal_add_js(array('cobalt' => $settings), 'setting');
 
-     $themes = cobalt_themes();
 
-     $theme_key = variable_get('cobalt_theme', '');
 
-     foreach ($themes as $key => $info) {
 
-       if ($key==$theme_key) {
 
-         $theme = $info;
 
-         break;
 
-       }
 
-     }
 
-     if (!isset($theme) || !isset($theme['css']) || !isset($theme['replace']) || !$theme['replace']) {
 
-       drupal_add_css(drupal_get_path('module', 'cobalt') . '/css/cobalt.css');
 
-     }
 
-     if (isset($theme) && isset($theme['css'])) {
 
-       if (is_array($theme['css'])) {
 
-         foreach ($theme['css'] as $css) {
 
-           drupal_add_css($css);
 
-         }
 
-       }
 
-       else {
 
-         drupal_add_css($theme['css']);
 
-       }
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Implements hook_library().
 
-  */
 
- function cobalt_library() {
 
-   // Use the original version by John Resig since the latest version at
 
-   // https://github.com/tzuryby/jquery.hotkeys doesn't work, probably due
 
-   // to incompatibility with jQuery 1.4.4.
 
-   $libraries['jquery.hotkeys'] = array(
 
-     'title' => 'jQuery Hotkeys',
 
-     'website' => 'https://github.com/jeresig/jquery.hotkeys',
 
-     'version' => '0.8',
 
-     'js' => array(
 
-       drupal_get_path('module', 'cobalt') . '/js/jquery.hotkeys.js' => array(),
 
-     ),
 
-   );
 
-   return $libraries;
 
- }
 
- function cobalt_themes() {
 
-   static $themes;
 
-   if (!$themes) {
 
-     $themes = array(
 
-       '' => array(
 
-         'name' => t('Default theme'),
 
-       ),
 
-     );
 
-     drupal_alter('cobalt_themes', $themes);
 
-   }
 
-   return $themes;
 
- }
 
- function cobalt_cobalt_themes_alter(&$themes) {
 
-   $themes['cobalt_blue'] = array(
 
-     'name' => t('Cobalt blue'),
 
-     'css' => drupal_get_path('module', 'cobalt') . '/css/cobalt_blue.css',
 
-     'replace' => FALSE,
 
-   );
 
- }
 
- /**
 
-  * Implementation of hook_perm().
 
-  */
 
- function cobalt_permissions() {
 
-   return array(
 
-     'use cobalt' => array(
 
-       'title' => t('Enables Cobalt for the user'),
 
-     ),
 
-   );
 
- }
 
- /**
 
-  * Implementation of hook_menu().
 
-  */
 
- function cobalt_menu() {
 
-   $items = array();
 
-   $items['cobalt/alias'] = array(
 
-     'title' => 'Forward to the correct alias',
 
-     'page callback' => 'cobalt_forward_to_alias',
 
-     'access arguments' => array('use cobalt'),
 
-     'type' => MENU_CALLBACK,
 
-   );
 
-   $items['cobalt/data/menu_json'] = array(
 
-     'title' => 'Serialized menu',
 
-     'page callback' => 'cobalt_menu_json',
 
-     'access arguments' => array('use cobalt'),
 
-     'type' => MENU_CALLBACK,
 
-   );
 
-   $items['admin/config/system/cobalt'] = array(
 
-     'title' => 'Cobalt',
 
-     'description' => 'Configure Cobalt appearance and behaviour.',
 
-     'page callback' => 'drupal_get_form',
 
-     'page arguments' => array('cobalt_settings'),
 
-     'access arguments' => array('administer site configuration'),
 
-     'file' => 'cobalt_admin.inc.php',
 
-     'type' => MENU_NORMAL_ITEM,
 
-     'weight' => 0,
 
-   );
 
-   $items['cobalt/update'] = array(
 
-     'title' => 'Cobalt update',
 
-     'page callback' => 'cobalt_js_update',
 
-     'page arguments' => array('cobalt_settings'),
 
-     'access arguments' => array('use cobalt'),
 
-     'file' => 'cobalt_update.inc.php',
 
-     'type' => MENU_CALLBACK,
 
-     'weight' => 0,
 
-   );
 
-   // Menu callback for clearing the cache even when the devel module
 
-   // isn't installed.
 
-   $items['cobalt/clear-cache'] = array(
 
-     'title' => t('Clear cache'),
 
-     'page callback' => '_cobalt_clear_cache',
 
-     'file' => 'cobalt_admin.inc.php',
 
-     'access arguments' => array('administer site configuration'),
 
-     'type' => MENU_CALLBACK,
 
-   );
 
-   // Menuitem for rebuilding content permissions.
 
-   $items['cobalt/rebuild-permissions'] = array(
 
-     'title' => t('Rebuild permissions'),
 
-     'page callback' => '_cobalt_rebuild_permissions',
 
-     'file' => 'cobalt_admin.inc.php',
 
-     'access arguments' => array('administer site configuration'),
 
-     'type' => MENU_CALLBACK,
 
-   );
 
-   return $items;
 
- }
 
- function cobalt_forward_to_alias() {
 
-   $url_parts = array();
 
-   $i = 2;
 
-   while (arg($i)) {
 
-     $url_parts[] = arg($i);
 
-     $i++;
 
-   }
 
-   $path = join('/', $url_parts);
 
-   drupal_goto($path);
 
- }
 
- function cobalt_menu_json() {
 
-   $menu_names = array_keys(menu_get_menus());
 
-   $tree = array();
 
-   foreach ($menu_names as $name) {
 
-     $tree += menu_tree_all_data($name);
 
-   }
 
-   $data = array();
 
-   _cobalt_menu_data_recursive($tree, $data);
 
-   drupal_alter('cobalt_menu', $data);
 
-   print drupal_json_output($data);
 
-   exit;
 
- }
 
- function _cobalt_menu_data_recursive($tree, &$data) {
 
-   foreach ($tree as $key => $item) {
 
-     $link = $item['link'];
 
-     if ($link['hidden'] !== 1 && $link['access'] && !($link['type'] & MENU_LINKS_TO_PARENT) && $link['type'] !== MENU_VISIBLE_IN_BREADCRUMB) {
 
-       $data[$link['mlid']] = array($link['href'], $link['title']);
 
-       if ($item['below']) {
 
-         _cobalt_menu_data_recursive($item['below'], $data);
 
-       }
 
-     }
 
-   }
 
- }
 
- /**
 
-  * Implementation of hook_cobalt_menu_alter().
 
-  */
 
- function cobalt_cobalt_menu_alter(&$menuitems) {
 
-   if (!module_exists('devel') && user_access('administer site configuration')) {
 
-     $menuitems['cobalt-clear-cache'] = array('cobalt/clear-cache', t('Clear cache'));
 
-   }
 
-   if (user_access('administer site configuration')) {
 
-     $menuitems['cobalt-rebuild-permissions'] = array('cobalt/rebuild-permissions', t('Rebuild permissions'));
 
-   }
 
- }
 
 
  |