'Drupal Goto', 'page callback' => 'common_test_drupal_goto_land', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/drupal_goto/fail'] = array( 'title' => 'Drupal Goto', 'page callback' => 'common_test_drupal_goto_land_fail', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/drupal_goto/redirect'] = array( 'title' => 'Drupal Goto', 'page callback' => 'common_test_drupal_goto_redirect', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/drupal_goto/redirect_advanced'] = array( 'title' => 'Drupal Goto', 'page callback' => 'common_test_drupal_goto_redirect_advanced', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/drupal_goto/redirect_fail'] = array( 'title' => 'Drupal Goto Failure', 'page callback' => 'drupal_goto', 'page arguments' => array('common-test/drupal_goto/fail'), 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/destination'] = array( 'title' => 'Drupal Get Destination', 'page callback' => 'common_test_destination', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); $items['common-test/query-string'] = array( 'title' => 'Test querystring', 'page callback' => 'common_test_js_and_css_querystring', 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); return $items; } /** * Redirect using drupal_goto(). */ function common_test_drupal_goto_redirect() { drupal_goto('common-test/drupal_goto'); } /** * Redirect using drupal_goto(). */ function common_test_drupal_goto_redirect_advanced() { drupal_goto('common-test/drupal_goto', array('query' => array('foo' => '123')), 301); } /** * Landing page for drupal_goto(). */ function common_test_drupal_goto_land() { print "drupal_goto"; } /** * Fail landing page for drupal_goto(). */ function common_test_drupal_goto_land_fail() { print "drupal_goto_fail"; } /** * Implements hook_drupal_goto_alter(). */ function common_test_drupal_goto_alter(&$path, &$options, &$http_response_code) { if ($path == 'common-test/drupal_goto/fail') { $path = 'common-test/drupal_goto/redirect'; } } /** * Print destination query parameter. */ function common_test_destination() { $destination = drupal_get_destination(); print "The destination: " . check_plain($destination['destination']); } /** * Implements hook_TYPE_alter(). */ function common_test_drupal_alter_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) { // Alter first argument. if (is_array($data)) { $data['foo'] = 'Drupal'; } elseif (is_object($data)) { $data->foo = 'Drupal'; } // Alter second argument, if present. if (isset($arg2)) { if (is_array($arg2)) { $arg2['foo'] = 'Drupal'; } elseif (is_object($arg2)) { $arg2->foo = 'Drupal'; } } // Try to alter third argument, if present. if (isset($arg3)) { if (is_array($arg3)) { $arg3['foo'] = 'Drupal'; } elseif (is_object($arg3)) { $arg3->foo = 'Drupal'; } } } /** * Implements hook_TYPE_alter() on behalf of Bartik theme. * * Same as common_test_drupal_alter_alter(), but here, we verify that themes * can also alter and come last. */ function bartik_drupal_alter_alter(&$data, &$arg2 = NULL, &$arg3 = NULL) { // Alter first argument. if (is_array($data)) { $data['foo'] .= ' theme'; } elseif (is_object($data)) { $data->foo .= ' theme'; } // Alter second argument, if present. if (isset($arg2)) { if (is_array($arg2)) { $arg2['foo'] .= ' theme'; } elseif (is_object($arg2)) { $arg2->foo .= ' theme'; } } // Try to alter third argument, if present. if (isset($arg3)) { if (is_array($arg3)) { $arg3['foo'] .= ' theme'; } elseif (is_object($arg3)) { $arg3->foo .= ' theme'; } } } /** * Implements hook_theme(). */ function common_test_theme() { return array( 'common_test_foo' => array( 'variables' => array('foo' => 'foo', 'bar' => 'bar'), ), ); } /** * Theme function for testing drupal_render() theming. */ function theme_common_test_foo($variables) { return $variables['foo'] . $variables['bar']; } /** * Implements hook_library_alter(). */ function common_test_library_alter(&$libraries, $module) { if ($module == 'system' && isset($libraries['farbtastic'])) { // Change the title of Farbtastic to "Farbtastic: Altered Library". $libraries['farbtastic']['title'] = 'Farbtastic: Altered Library'; // Make Farbtastic depend on jQuery Form to test library dependencies. $libraries['farbtastic']['dependencies'][] = array('system', 'form'); } } /** * Implements hook_library(). * * Adds Farbtastic in a different version. */ function common_test_library() { $libraries['farbtastic'] = array( 'title' => 'Custom Farbtastic Library', 'website' => 'http://code.google.com/p/farbtastic/', 'version' => '5.3', 'js' => array( 'misc/farbtastic/farbtastic.js' => array(), ), 'css' => array( 'misc/farbtastic/farbtastic.css' => array(), ), ); return $libraries; } /** * Adds a JavaScript file and a CSS file with a query string appended. */ function common_test_js_and_css_querystring() { drupal_add_js(drupal_get_path('module', 'node') . '/node.js'); drupal_add_css(drupal_get_path('module', 'node') . '/node.css'); // A relative URI may have a query string. drupal_add_css('/' . drupal_get_path('module', 'node') . '/node-fake.css?arg1=value1&arg2=value2'); return ''; }