danielebarchiesi@2: settings; danielebarchiesi@2: $form = array(); danielebarchiesi@2: $form['block']['bid'] = array( danielebarchiesi@2: '#type' => 'select', danielebarchiesi@2: '#options' => quicktabs_get_blocks(), danielebarchiesi@2: '#default_value' => isset($tab['bid']) ? $tab['bid'] : '', danielebarchiesi@2: '#title' => t('Select a block'), danielebarchiesi@2: ); danielebarchiesi@2: $form['block']['hide_title'] = array( danielebarchiesi@2: '#type' => 'checkbox', danielebarchiesi@2: '#title' => t('Hide the title of this block'), danielebarchiesi@2: '#default_value' => isset($tab['hide_title']) ? $tab['hide_title'] : 1, danielebarchiesi@2: ); danielebarchiesi@2: return $form; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: public function render($hide_empty = FALSE, $args = array()) { danielebarchiesi@2: if ($this->rendered_content) { danielebarchiesi@2: return $this->rendered_content; danielebarchiesi@2: } danielebarchiesi@2: $output = array(); danielebarchiesi@2: $item = $this->settings; danielebarchiesi@2: if (!empty($args)) { danielebarchiesi@2: // The args have been passed in from an ajax request. danielebarchiesi@2: $qt_name = array_shift($args); danielebarchiesi@2: list($item['bid'], $item['hide_title']) = $args; danielebarchiesi@2: danielebarchiesi@2: // Ensure the block is assigned to the requested quicktabs block. This test prevents danielebarchiesi@2: // AJAX access to blocks that have not been added to an AJAX-enabled quicktabs block. danielebarchiesi@2: $break = TRUE; danielebarchiesi@2: $quicktabs = quicktabs_load($qt_name); danielebarchiesi@2: // Ensure AJAX is enabled for the quicktabs block. danielebarchiesi@2: if (!empty($quicktabs) && $quicktabs->ajax == 1) { danielebarchiesi@2: // Ensure the requested tab has been added to the quicktabs block. danielebarchiesi@2: foreach ($quicktabs->tabs as $quicktab) { danielebarchiesi@2: if (isset($quicktab['bid']) && ($quicktab['bid'] == $item['bid'])) { danielebarchiesi@2: $break = FALSE; danielebarchiesi@2: break; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: if ($break == TRUE) { danielebarchiesi@2: if (!$hide_empty) { danielebarchiesi@2: $output['#markup'] = theme('quicktabs_tab_access_denied', $item); danielebarchiesi@2: } danielebarchiesi@2: return $output; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: if (isset($item['bid'])) { danielebarchiesi@2: if (module_exists('block')) { danielebarchiesi@2: $pos = strpos($item['bid'], '_delta_'); danielebarchiesi@2: $module = drupal_substr($item['bid'], 0, $pos); danielebarchiesi@2: $delta = drupal_substr($item['bid'], $pos + 7); danielebarchiesi@2: danielebarchiesi@2: $block = block_load($module, $delta); danielebarchiesi@2: $block->region = 'quicktabs_tabpage'; danielebarchiesi@2: danielebarchiesi@2: if ($block_arr = _block_render_blocks(array($block))) { danielebarchiesi@2: if ($item['hide_title']) { danielebarchiesi@2: $block_arr["{$block->module}_{$block->delta}"]->subject = FALSE; danielebarchiesi@2: } danielebarchiesi@2: if (!empty($block_arr["{$block->module}_{$block->delta}"]->content)) { danielebarchiesi@2: $build = _block_get_renderable_array($block_arr); danielebarchiesi@2: $output = $build; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: elseif (!$hide_empty) { danielebarchiesi@2: $output['#markup'] = t('Block module is not enabled, cannot display content.'); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: $this->rendered_content = $output; danielebarchiesi@2: return $output; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: public function getAjaxKeys() { danielebarchiesi@2: return array('bid', 'hide_title'); danielebarchiesi@2: } danielebarchiesi@2: }