annotate sites/all/modules/quicktabs/plugins/QuickQtabsContent.inc @ 2:b74b41bb73f0

-- Google analytics module
author danieleb <danielebarchiesi@me.com>
date Thu, 22 Aug 2013 17:22:54 +0100
parents
children
rev   line source
danielebarchiesi@2 1 <?php
danielebarchiesi@2 2
danielebarchiesi@2 3 /**
danielebarchiesi@2 4 * Class for tab content of type "qtabs" - this is for rendering a QuickSet instance
danielebarchiesi@2 5 * as the tab content of another QuickSet instance.
danielebarchiesi@2 6 */
danielebarchiesi@2 7 class QuickQtabsContent extends QuickContent {
danielebarchiesi@2 8
danielebarchiesi@2 9 public static function getType() {
danielebarchiesi@2 10 return 'qtabs';
danielebarchiesi@2 11 }
danielebarchiesi@2 12
danielebarchiesi@2 13 public function optionsForm($delta, $qt) {
danielebarchiesi@2 14 $tab = $this->settings;
danielebarchiesi@2 15 $form = array();
danielebarchiesi@2 16 $tab_options = array();
danielebarchiesi@2 17 foreach (quicktabs_load_multiple() as $machine_name => $info) {
danielebarchiesi@2 18 // Do not offer the option to put a tab inside itself.
danielebarchiesi@2 19 if (!isset($qt->machine_name) || $machine_name != $qt->machine_name) {
danielebarchiesi@2 20 $tab_options[$machine_name] = $info->title;
danielebarchiesi@2 21 }
danielebarchiesi@2 22 }
danielebarchiesi@2 23 $form['qtabs']['machine_name'] = array(
danielebarchiesi@2 24 '#type' => 'select',
danielebarchiesi@2 25 '#title' => t('Quicktabs instance'),
danielebarchiesi@2 26 '#description' => t('The Quicktabs instance to put inside this tab.'),
danielebarchiesi@2 27 '#options' => $tab_options,
danielebarchiesi@2 28 '#default_value' => isset($tab['machine_name']) ? $tab['machine_name'] : '',
danielebarchiesi@2 29 );
danielebarchiesi@2 30 return $form;
danielebarchiesi@2 31 }
danielebarchiesi@2 32
danielebarchiesi@2 33 public function render($hide_empty = FALSE, $args = array()) {
danielebarchiesi@2 34 if ($this->rendered_content) {
danielebarchiesi@2 35 return $this->rendered_content;
danielebarchiesi@2 36 }
danielebarchiesi@2 37 $item = $this->settings;
danielebarchiesi@2 38 if (!empty($args)) {
danielebarchiesi@2 39 // The args have been passed in from an ajax request.
danielebarchiesi@2 40 // The first element of the args array is the qt_name, which we don't need
danielebarchiesi@2 41 // for this content type.
danielebarchiesi@2 42 array_shift($args);
danielebarchiesi@2 43 $item['machine_name'] = $args[0];
danielebarchiesi@2 44 }
danielebarchiesi@2 45
danielebarchiesi@2 46 $output = array();
danielebarchiesi@2 47 if (isset($item['machine_name'])) {
danielebarchiesi@2 48 if ($quicktabs = quicktabs_load($item['machine_name'])) {
danielebarchiesi@2 49 $contents = $quicktabs->tabs;
danielebarchiesi@2 50 $name = $quicktabs->machine_name;
danielebarchiesi@2 51 unset($quicktabs->tabs, $quicktabs->machine_name);
danielebarchiesi@2 52 $options = (array) $quicktabs;
danielebarchiesi@2 53 if ($qt = QuickSet::QuickSetRendererFactory($name, $contents, $quicktabs->renderer, $options)) {
danielebarchiesi@2 54 $output = $qt->render();
danielebarchiesi@2 55 }
danielebarchiesi@2 56 }
danielebarchiesi@2 57 }
danielebarchiesi@2 58 $this->rendered_content = $output;
danielebarchiesi@2 59 return $output;
danielebarchiesi@2 60 }
danielebarchiesi@2 61
danielebarchiesi@2 62 public function getAjaxKeys() {
danielebarchiesi@2 63 return array('machine_name');
danielebarchiesi@2 64 }
danielebarchiesi@2 65 }