/** * Create the snippets content * * This is a stub function either override getHtmlOutput() or override render() * * @param \Zend_View_Abstract $view Just in case it is needed here * @return \MUtil_Html_HtmlInterface Something that can be rendered */ public function getHtmlOutput(\Zend_View_Abstract $view) { $tabs = $this->getTabs(); $tabCount = count($tabs); if ($tabs && ($this->displaySingleTab || $tabCount > 1)) { // Is there a better helper to include JS? $view->headScript()->appendFile($this->basepath->getBasePath() . '/gems/js/jquery.horizontalScrollMenu.js'); $script = '(function($) {$(".' . $this->class . '").horizontalScrollMenu();}(jQuery));'; $view->inlineScript()->appendScript($script); // Set the correct parameters $this->getCurrentTab(); $scrollContainer = \MUtil_Html::create()->div(); if ($tabCount > $this->scrollFromSize) { $scrollContainer->a('#', $this->prevLabel, array('class' => 'prev')); } else { $scrollContainer->span(array('class' => 'prev disabled'))->raw(str_repeat(' ', strlen($this->prevLabel))); } $tabRow = $scrollContainer->div(array('class' => 'container'))->ul(); foreach ($tabs as $tabId => $content) { $li = $tabRow->li(array('class' => $this->tabClass)); if (strlen($content) > $this->tabLabelLength) { $content = substr($content, 0, $this->tabLabelLength) . $this->tabLabelCutOffString; } $li->a($this->getParameterKeysFor($tabId) + $this->href, $content); if ($tabId == $this->currentTab) { $li->appendAttrib('class', $this->tabActiveClass); } } if ($tabCount > $this->scrollFromSize) { $scrollContainer->a('#', $this->nextLabel, array('class' => 'next')); } else { $scrollContainer->span(array('class' => 'next disabled'))->raw(str_repeat(' ', strlen($this->nextLabel))); } return $scrollContainer; } else { return null; } }