• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List

E:/E/GEAMP/www/openbiz/openbiz/others/ZendX/JQuery/View/Helper/TabContainer.php

00001 <?php
00026 require_once "ZendX/JQuery/View/Helper/UiWidget.php";
00027 
00037 class ZendX_JQuery_View_Helper_TabContainer extends ZendX_JQuery_View_Helper_UiWidget
00038 {
00044     protected $_tabs = array();
00045 
00055     public function addPane($id, $name, $content, array $options=array())
00056     {
00057         if(!isset($this->_tabs[$id])) {
00058             $this->_tabs[$id] = array();
00059         }
00060         if(strlen($name) == 0 && isset($options['title'])) {
00061             $name = $options['title'];
00062         }
00063 
00064         $this->_tabs[$id][] = array('name' => $name, 'content' => $content, 'options' => $options);
00065         return $this;
00066     }
00067 
00081     public function tabContainer($id=null, $params=array(), $attribs=array())
00082     {
00083         if(func_num_args() === 0) {
00084             return $this;
00085         }
00086 
00087         if(!isset($attribs['id'])) {
00088             $attribs['id'] = $id;
00089         }
00090 
00091         $content = "";
00092         if(isset($this->_tabs[$id])) {
00093             $list = '<ul class="ui-tabs-nav">'.PHP_EOL;
00094             $html = '';
00095             $fragment_counter = 1;
00096             foreach($this->_tabs[$id] AS $k => $v) {
00097                 $frag_name = sprintf('%s-frag-%d', $attribs['id'], $fragment_counter++);
00098                 $opts = $v['options'];
00099                 if(isset($opts['contentUrl'])) {
00100                     $list .= '<li class="ui-tabs-nav-item"><a href="'.$opts['contentUrl'].'"><span>'.$v['name'].'</span></a></li>'.PHP_EOL;
00101                 } else {
00102                     $list .= '<li class="ui-tabs-nav-item"><a href="#'.$frag_name.'"><span>'.$v['name'].'</span></a></li>'.PHP_EOL;
00103                     $html .= '<div id="'.$frag_name.'" class="ui-tabs-panel">'.$v['content'].'</div>'.PHP_EOL;
00104                 }
00105             }
00106             $list .= '</ul>'.PHP_EOL;
00107 
00108             $content = $list.$html;
00109             unset($this->_tabs[$id]);
00110         }
00111 
00112         if(count($params)) {
00113             $params = ZendX_JQuery::encodeJson($params);
00114         } else {
00115             $params = '{}';
00116         }
00117 
00118         $js = sprintf('%s("#%s").tabs(%s);',
00119             ZendX_JQuery_View_Helper_JQuery::getJQueryHandler(),
00120             $attribs['id'],
00121             $params
00122         );
00123         $this->jquery->addOnLoad($js);
00124 
00125         $html = '<div'
00126               . $this->_htmlAttribs($attribs)
00127               . '>'.PHP_EOL
00128               . $content
00129               . '</div>'.PHP_EOL;
00130         return $html;
00131     }
00132 }

Generated on Thu Apr 19 2012 17:01:18 for openbiz by  doxygen 1.7.2