1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- /**
- * @file
- * Main file for XML sitemap Modal.
- */
- /**
- * Implements hook_menu_alter().
- */
- function xmlsitemap_modal_menu_alter(&$items) {
- foreach ($items as $path => $item) {
- if (!empty($item['modal']) && strpos($path, '%ctools_js') === FALSE && $item['page callback'] === 'drupal_get_form') {
- $items["$path/%ctools_js"] = $item;
- $items["$path/%ctools_js"]['page callback'] = 'xmlsitemap_modal_get_form';
- $items["$path/%ctools_js"]['page arguments'][] = substr_count($path, '/') + 1;
- }
- }
- }
- /**
- * Display a Drupal form using CTools modal or normal page display.
- */
- function xmlsitemap_modal_get_form() {
- $args = func_get_args();
- $form_id = array_shift($args);
- $ajax = array_pop($args);
- if ($ajax) {
- ctools_include('ajax');
- ctools_include('modal');
- $form_state = array(
- 'ajax' => TRUE,
- 'build_info' => array('args' => $args),
- );
- $commands = ctools_modal_form_wrapper($form_id, $form_state);
- if (empty($commands)) {
- $commands[] = ctools_modal_command_loading();
- if (!empty($_GET['destination'])) {
- $commands[] = ctools_ajax_command_redirect($_GET['destination']);
- }
- }
- print ajax_render($commands);
- exit;
- }
- else {
- array_unshift($args, $form_id);
- return call_user_func_array('drupal_get_form', $args);
- }
- }
- /**
- * Implements hook_xmlsitemap_operation_link_alter().
- */
- function xmlsitemap_modal_xmlsitemap_operation_link_alter(array &$link) {
- static $ctools_modal_included;
- // Process modal frame links.
- if (!empty($link['modal'])) {
- unset($link['modal']);
- if (!isset($ctools_modal_included)) {
- // Only process a few includes once per request.
- ctools_include('ajax');
- ctools_include('modal');
- ctools_modal_add_js();
- drupal_add_css(drupal_get_path('module', 'xmlsitemap_modal') . '/xmlsitemap_modal.css');
- }
- $link['attributes']['class'][] = 'ctools-use-modal';
- if (strpos($link['href'], 'nojs') === FALSE) {
- $link['href'] .= '/nojs';
- }
- else {
- $link['href'] = trim($link['href'], '/');
- }
- // @todo Remove when https://www.drupal.org/node/565808 is fixed.
- if (substr($link['href'], -4) === 'nojs') {
- $link['href'] .= '/';
- }
- }
- }
|