> ------------------------------------------------------------------------------ :: HISTORY | release | date | | 1.0.0 | 2010/04/18 | * create class | | | | 1.1.0 | 2010/06/20 | * add possibility to manage the class names for tabs | | | | 1.1.1 | 2010/10/01 | * add attribute 'id' for tabs (
  • items) | | | | 1.1.2 | 2012/08/14 | * bug:2723 - set select() function to be compatible with | | | piwigo 2.4.3 | | | | | | ------------------------------------------------------------------------------ this class provides base functions to manage tabsheet navigation this class extends the Piwigo tabsheet class ---------------------------------------------------------------------- */ include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php'); class GPCTabSheet extends tabsheet { protected $classes; protected $id; protected $tplFile; protected $selectedTabClasses='selected_tab'; protected $unselectedTabClasses='normal_tab'; protected $normalTabClasses=''; /* $name is the tabsheet's name inside the template .tpl file $titlename in the template is affected by $titlename value */ public function __construct($name = 'TABSHEET', $titlename = 'TABSHEET_TITLE', $classes="", $id="", $tplFile="") { parent::tabsheet($name, $titlename); $this->classes=$classes; $this->id=$id; $this->set_id($this->id); $this->setTplFile($tplFile); } function add($name, $caption, $url, $selected = false, $onClick='') { if(parent::add($name,$caption,$url,$selected)) { $this->sheets[$name]['onClick'] = $onClick; return(true); } return(false); } public function setClasses($classes) { $this->classes=$classes; return($this->classes); } public function getClasses() { return($this->classes); } public function setTabsClasses($state, $classes) { if($state=='unselected') { $this->unselectedTabClasses=$classes; return($this->unselectedTabClasses); } elseif($state=='selected') { $this->selectedTabClasses=$classes; return($this->selectedTabClasses); } elseif($state=='normal') { $this->normalTabClasses=$classes; return($this->normalTabClasses); } return(""); } public function getTabsClasses($state) { if($state=='unselected') { return($this->unselectedTabClasses); } elseif($state=='selected') { return($this->selectedTabClasses); } elseif($state=='normal') { return($this->normalTabClasses); } return(""); } public function setId($id) { $this->id=$id; return($this->id); } public function getId() { return($this->id); } public function setTplFile($fileName) { if(file_exists($fileName) or $fileName=="") { $this->tplFile=$fileName; } return($this->tplFile); } public function getTplFile() { return($this->tplFile); } public function select($name) { /* * override the tabsheet->select() function (to fix bug:2723) */ if($this->id!='') { $this->sheets = trigger_event('gpc_tabsheet_before_select', $this->sheets, $this->id); if (!array_key_exists($name, $this->sheets)) { $keys = array_keys($this->sheets); if(isset($keys[0])) $name = $keys[0]; } } $this->selected = $name; } function set_id($id) { /* * override the tabsheet->select() function (to fix bug:2723) */ if(method_exists('tabsheet', 'set_id')) { parent::set_id($id); } else { $this->uniqid = $id; } } /* * Build TabSheet and assign this content to current page * * Fill $this->$name {default value = TABSHEET} with HTML code for tabsheet * Fill $this->titlename {default value = TABSHEET_TITLE} with formated caption of the selected tab */ function assign() { global $template; if($this->tplFile=="") { $tplFile=dirname(dirname(__FILE__)).'/templates/GPCTabSheet.tpl'; } else { $tplFile=$this->tplFile; } $template->set_filename('tabsheet', $tplFile); $template->assign('tabsheet', $this->sheets); $template->assign('tabsheet_selected', $this->selected); $selected_tab = $this->get_selected(); if (isset($selected_tab)) { $template->assign( array($this->titlename => '['.$selected_tab['caption'].']')); } if($this->classes!="") $template->assign('tabsheet_classes', $this->classes); if($this->id!="") $template->assign('tabsheet_id', $this->id); $template->assign('tab_classes', array( 'unselected' => $this->getTabsClasses('unselected'), 'selected' => $this->getTabsClasses('selected'), 'normal' => $this->getTabsClasses('normal') ) ); $template->assign_var_from_handle($this->name, 'tabsheet'); $template->clear_assign('tabsheet'); } } ?>