annotate sites/all/modules/quicktabs/plugins/QuickCallbackContent.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents b74b41bb73f0
children
rev   line source
danielebarchiesi@2 1 <?php
danielebarchiesi@2 2
danielebarchiesi@2 3 /**
danielebarchiesi@2 4 * Class for tab content of type "callback" - this is for rendering the contents
danielebarchiesi@2 5 * of some menu callback function as tab content.
danielebarchiesi@2 6 */
danielebarchiesi@2 7 class QuickCallbackContent extends QuickContent {
danielebarchiesi@2 8
danielebarchiesi@2 9 public static function getType() {
danielebarchiesi@2 10 return 'callback';
danielebarchiesi@2 11 }
danielebarchiesi@2 12
danielebarchiesi@2 13 public function __construct($item) {
danielebarchiesi@2 14 parent::__construct($item);
danielebarchiesi@2 15
danielebarchiesi@2 16 if (isset($item['path'])) {
danielebarchiesi@2 17 $url_args = arg();
danielebarchiesi@2 18 $path = $item['path'];
danielebarchiesi@2 19
danielebarchiesi@2 20 foreach ($url_args as $id => $arg) {
danielebarchiesi@2 21 $path = str_replace("%$id", $arg, $path);
danielebarchiesi@2 22 }
danielebarchiesi@2 23 $path = preg_replace(',/?(%\d),', '', $path);
danielebarchiesi@2 24 if (!empty($path)) {
danielebarchiesi@2 25 $this->settings['ajax_path'] = rawurlencode($path);
danielebarchiesi@2 26 }
danielebarchiesi@2 27 else {
danielebarchiesi@2 28 $this->settings['ajax_path'] = '';
danielebarchiesi@2 29 }
danielebarchiesi@2 30 $this->settings['actual_path'] = $path;
danielebarchiesi@2 31 }
danielebarchiesi@2 32 }
danielebarchiesi@2 33
danielebarchiesi@2 34 public function optionsForm($delta, $qt) {
danielebarchiesi@2 35 $tab = $this->settings;
danielebarchiesi@2 36 $form = array();
danielebarchiesi@2 37 $form['callback']['path'] = array(
danielebarchiesi@2 38 '#type' => 'textfield',
danielebarchiesi@2 39 '#default_value' => isset($tab['path']) ? $tab['path'] : '',
danielebarchiesi@2 40 '#title' => t('Path'),
danielebarchiesi@2 41 '#element_validate' => array('quicktabs_callback_element_validate'),
danielebarchiesi@2 42 );
danielebarchiesi@2 43 return $form;
danielebarchiesi@2 44 }
danielebarchiesi@2 45
danielebarchiesi@2 46 public function render($hide_empty = FALSE, $args = array()) {
danielebarchiesi@2 47 if ($this->rendered_content) {
danielebarchiesi@2 48 return $this->rendered_content;
danielebarchiesi@2 49 }
danielebarchiesi@2 50 $item = $this->settings;
danielebarchiesi@2 51 if (!empty($args)) {
danielebarchiesi@2 52 // The args have been passed in from an ajax request.
danielebarchiesi@2 53 // The first element of the args array is the qt_name, which we don't need
danielebarchiesi@2 54 // for this content type.
danielebarchiesi@2 55 array_shift($args);
danielebarchiesi@2 56 $item['actual_path'] = rawurldecode($args[0]);
danielebarchiesi@2 57 $_GET['q'] = $item['actual_path'];
danielebarchiesi@2 58 }
danielebarchiesi@2 59
danielebarchiesi@2 60 $output = array();
danielebarchiesi@2 61 if (isset($item['actual_path'])) {
danielebarchiesi@2 62 // Retain the current page title as we'll need to set it back after
danielebarchiesi@2 63 // calling menu_execute_active_handler().
danielebarchiesi@2 64 $page_title = drupal_get_title();
danielebarchiesi@2 65 $response = menu_execute_active_handler($item['actual_path'], FALSE);
danielebarchiesi@2 66 // Revert the page title.
danielebarchiesi@2 67 drupal_set_title($page_title);
danielebarchiesi@2 68
danielebarchiesi@2 69 if (!is_array($response)) {
danielebarchiesi@2 70 if (is_int($response)) {
danielebarchiesi@2 71 if (MENU_ACCESS_DENIED == $response && !$hide_empty) {
danielebarchiesi@2 72 $output['#markup'] = theme('quicktabs_tab_access_denied', array('tab' => $item));
danielebarchiesi@2 73 }
danielebarchiesi@2 74 // For any other integer response form the menu callback, we'll just
danielebarchiesi@2 75 // return an empty array.
danielebarchiesi@2 76 }
danielebarchiesi@2 77 else {
danielebarchiesi@2 78 $output = array('#markup' => $response);
danielebarchiesi@2 79 }
danielebarchiesi@2 80 }
danielebarchiesi@2 81 else {
danielebarchiesi@2 82 $output = $response;
danielebarchiesi@2 83 }
danielebarchiesi@2 84 }
danielebarchiesi@2 85 $this->rendered_content = $output;
danielebarchiesi@2 86 return $output;
danielebarchiesi@2 87 }
danielebarchiesi@2 88
danielebarchiesi@2 89 public function getAjaxKeys() {
danielebarchiesi@2 90 return array('ajax_path');
danielebarchiesi@2 91 }
danielebarchiesi@2 92 }