modules[] = $module; } public function getTabHeadersHTML(){ $html = ""; foreach($this->modules as $module){ $html .= $module->getHTML()."\r\n"; } return $html; } public function getTabPagesHTML(){ $html = ""; foreach($this->modules as $module){ if(get_class($module) == "ModuleTab"){ $html .= $module->getPageHTML()."\r\n"; }else{ foreach($module->modules as $mod){ $html .= $mod->getPageHTML()."\r\n"; } } } return $html; } public function getModJsHTML(){ $html = "var modJsList = new Array();\r\n"; $activeModule = ""; foreach($this->modules as $module){ if(get_class($module) == "ModuleTab"){ $html .= $module->getJSObjectCode()."\r\n"; if($module->isActive){ $activeModule = $module->name; } }else{ foreach($module->modules as $mod){ if($module->isActive && $activeModule == ""){ $activeModule = $mod->name; } $html .= $mod->getJSObjectCode()."\r\n"; } } } $html .= "var modJs = modJsList['tab".$activeModule."'];\r\n"; return $html; } } class ModuleTab{ public $name; var $class; var $label; var $adapterName; var $filter; var $orderBy; public $isActive = false; public $isInsideGroup = false; var $options = array(); public function __construct($name, $class, $label, $adapterName, $filter, $orderBy, $isActive = false, $options = array()){ $this->name = $name; $this->class = $class; $this->label = $label; $this->adapterName = $adapterName; $this->filter = $filter; $this->orderBy = $orderBy; $this->isActive = $isActive; $this->options = $options; } public function getHTML(){ $active = ($this->isActive)?"active":""; if(!$this->isInsideGroup) { return '
  • ' . $this->label . '
  • '; }else{ return '
  • ' . $this->label . '
  • '; } } public function getPageHTML(){ $active = ($this->isActive)?" active":""; $html = '
    '. '
    '. ''. '
    '; return $html; } public function getJSObjectCode() { $js = ''; if (empty($this->filter)) { $js.= "modJsList['tab" . $this->name . "'] = new " . $this->adapterName . "('" . $this->class . "','" . $this->name . "','','".$this->orderBy."');"; } else { $js.= "modJsList['tab" . $this->name . "'] = new " . $this->adapterName . "('" . $this->class . "','" . $this->name . "'," . $this->filter . ",'".$this->orderBy."');"; } foreach($this->options as $key => $val){ $js.= "modJsList['tab" . $this->name . "'].".$key."(".$val.");"; } return $js; } } class ModuleTabGroup{ var $name; var $label; var $isActive = false; public $modules = array(); public function __construct($name, $label){ $this->name = $name; $this->label = $label; } public function addModuleTab($moduleTab){ if($moduleTab->isActive){ $this->isActive = true; $moduleTab->isActive = false; } $moduleTab->isInsideGroup = true; $this->modules[] = $moduleTab; } public function getHTML(){ $html = ""; $active = ($this->isActive)?" active":""; $html.= '"; return $html; } }