123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * @file
- * Provides various functions for the expansion of core modules.
- *
- * Implemented:
- * - Alter menu local task links from node to insert destination parameter.
- * Children tabs supported to level 1.
- * - Alter the confirm form cancel link to display the link as button.
- */
- /**
- * Implements hook_menu().
- */
- function mb_extra_menu() {
- $items = array();
- $items['admin/config/mb/buttons/more-buttons-extra'] = array(
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('mb_extra_admin'),
- 'title' => 'Extras',
- 'access arguments' => array('administer site configuration'),
- 'file' => 'mb_extra.admin.inc',
- 'type' => MENU_LOCAL_TASK,
- 'weight' => 15
- );
- $items['admin/config/mb/buttons/more-buttons-extra/reset'] = array(
- 'page callback' => 'drupal_get_form',
- 'page arguments' => array('mb_extra_reset'),
- 'access arguments' => array('administer site configuration'),
- 'type' => MENU_CALLBACK,
- 'file' => 'mb_extra.admin.inc'
- );
- return $items;
- }
- /**
- * Alter the local tasks to use an destination parameter.
- */
- function mb_extra_menu_local_tasks_alter(&$data, $router_item, $root_path) {
- if (module_exists('overlay')) {
- return;
- }
- global $base_url;
- $module = 'mb_extra';
- if ($router_item['tab_root'] == 'node/%') {
- if (variable_get($module . '_destination_tabs', 0) == TRUE && count($data['tabs']) > 0) {
- $destination = drupal_get_destination();
- foreach (element_children($data['tabs'][0]['output']) as $key) {
- if ($data['tabs'][0]['output'][$key]['#link']['tab_root_href'] != $destination['destination'] && !stristr($destination['destination'], $data['tabs'][0]['output'][$key]['#link']['tab_root_href'])) {
- $params = $data['tabs'][0]['output'][$key]['#link'];
- $data['tabs'][0]['output'][$key]['#link']['href'] = $base_url . '/' . $params['href'] . '?destination=' . $destination['destination'];
- //$data['tabs'][0]['output'][$key]['#link']['tab_root_href'] = $base_url . '/' . $params['tab_root_href'] . '?destination=' . $destination['destination'];
- //$data['tabs'][0]['output'][$key]['#link']['tab_parent_href'] = $base_url . '/' . $params['tab_parent_href'] . '?destination=' . $destination['destination'];
- }
- }
- // Children tabs level 1.
- if (isset($data['tabs'][1])) {
- foreach (element_children($data['tabs'][1]['output']) as $key) {
- if ($data['tabs'][1]['output'][$key]['#link']['tab_root_href'] != $destination['destination']) {
- $params = $data['tabs'][1]['output'][$key]['#link'];
- $data['tabs'][1]['output'][$key]['#link']['href'] = $base_url . '/' . $params['href'] . '?destination=' . $destination['destination'];
- //$data['tabs'][0]['output'][$key]['#link']['tab_root_href'] = $base_url . '/' . $params['tab_root_href'] . '?destination=' . $destination['destination'];
- //$data['tabs'][0]['output'][$key]['#link']['tab_parent_href'] = $base_url . '/' . $params['tab_parent_href'] . '?destination=' . $destination['destination'];
- if (isset($data['tabs'][1]['output'][$key]['#active'])) {
- $data['tabs'][1]['output'][$key]['#link']['localized_options'] = array(
- 'attributes' => array(
- 'class' => 'active'
- )
- );
- }
- }
- }
- }
- }
- }
- }
- /**
- * Implements hook_theme().
- */
- function mb_extra_theme() {
- return array(
- 'mb_extra_admin' => array(
- 'variables' => array('form' => NULL),
- )
- );
- }
- /**
- * Implements hook_form_alter().
- */
- function mb_extra_form_alter(&$form, &$form_state, $form_id) {
- $module = 'mb_extra';
- // Alter the confirm form cancel link to display the link as button.
- if (isset($form['confirm']) && variable_get($module . '_confirm_cancel', 0) == TRUE) {
- $form['actions']['cancel']['#attributes']['class'][] = 'button';
- }
- }
|