'. t("Creates a popup for calendar dates.") .'
'; break; } return $output; } // function jcalendar_help /** * Get calendar node for popup * @param integer nid Node id. * @param string id Date field unique id. * @return string HTML for node */ function get_calendar_node($nid, $id) { $GLOBALS['devel_shutdown'] = FALSE; if (is_numeric($nid)) { if ($node = node_load($nid)) { if (node_access("view", $node)) { $node->date_id = $id; $node->date_repeat_show = FALSE; print theme('jcalendar_view', $node); } } }} /** * Implemetation of hook_menu() */ function jcalendar_menu() { $items['jcalendar/getnode'] = array( 'title' => 'Get Calendar Node', 'page callback' => 'get_calendar_node', 'page arguments' => array(2, 3), 'access callback' => TRUE, 'type' => MENU_CALLBACK, ); return $items; } /** * Override the calendar view to inject javascript. * @param view Which view we are using. * @return unknown as of yet. */ function jcalendar_views_pre_view(&$view, &$display_id) { static $js_added = false; if ($js_added) { return; } foreach ($view->display as $display) { if ($display->display_plugin == 'calendar') { $js_added = true; $path = drupal_get_path('module', 'jcalendar'); $settings['jcalendar']['path'] = base_path() . $path; drupal_add_js($settings, 'setting'); drupal_add_js($path .'/jcalendar.js'); drupal_add_css($path .'/jcalendar.css'); } } } /** * Implementation of hook_theme(). */ function jcalendar_theme() { return array( 'jcalendar_view' => array('arguments' => array('node' => NULL)), ); } /** * Overrideable theme for the jcalendar popup view. * * Defaults to show the standard teaser view of the node. */ function theme_jcalendar_view($node) { $output = node_view($node, TRUE); $output .= '