first import
This commit is contained in:
108
sites/all/modules/mb/mb_extra/mb_extra.module
Normal file
108
sites/all/modules/mb/mb_extra/mb_extra.module
Normal file
@@ -0,0 +1,108 @@
|
||||
<?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';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user