home | career | drupal | java | mac | mysql | perl | php | scala | uml | unix

Drupal example source code file (xmlsitemap_modal.module)

This example Drupal source code file (xmlsitemap_modal.module) is included in the DevDaily.com "Drupal Source Code Warehouse" project. The intent of this project is to help you "Learn Drupal by Example".

PHP - Drupal tags/keywords

ajax, args, array, commands, ctools_js, empty, form_id, function, if, items, nojs, path, php, string

The xmlsitemap_modal.module Drupal example source code

<?php
// $Id: xmlsitemap_modal.module,v 1.1.2.3 2010/08/24 18:22:58 davereid Exp $

/**
 * 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,
      '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']);
      }
    }
    return ctools_ajax_render($commands);
  }
  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 http://drupal.org/node/565808 is fixed.
    if (substr($link['href'], -4) === 'nojs') {
      $link['href'] .= '/';
    }
  }
}

Other Drupal examples (source code examples)

Here is a short list of links related to this Drupal xmlsitemap_modal.module source code file:

new blog posts

"Drupal" is a registered trademark of Dries Buytaert.

my drupal tutorials and examples  

Copyright 1998-2016 Alvin Alexander, alvinalexander.com
All Rights Reserved.

Beginning in 2016, a portion of the proceeds from pages under the '/drupal-code-examples/' URI will be donated to charity.