i_steps; $i ++ ){ $class= "setup_step_".$i; $this->o_steps[$i] = new $class(); } } function execute() { $smarty = get_smarty(); $this->o_steps[$this->i_last]->set_active(FALSE); $this->o_steps[$this->i_current]->set_active(); $content = $this->o_steps[$this->i_current]->execute(); return($content); } /* Save posted attributes */ function save_object() { /* Call save_object for current setup step */ $this->o_steps[$this->i_current] -> save_object(); /* Get attributes from setup step */ $tmp = $this->o_steps[$this->i_current]->get_attributes(); foreach($tmp as $name => $value){ $this->captured_values[$name] = $value; } /* check if current setup step is completed now and activate the next step if possible */ for($i = 1 ; $i <= $this->i_steps ; $i ++ ){ if($this->o_steps[$i]->is_completed()){ if(isset($this->o_steps[($i+1)])){ $this->o_steps[($i+1)]->set_enabled(); } } } /* Check if step was selected */ if(isset($_GET['step'])){ $step = $_GET['step']; if($this->selectable_step($step)){ $this->i_last = $this->i_current; $this->i_current = $_GET['step']; } } } /* Create navigation menu */ function get_navigation_html() { $str = ""; foreach($this->o_steps as $key => $step){ $s_title = $step -> get_title(); $s_info = $step -> get_small_info(); $b_active = $step -> is_active(); $b_enabled = $step -> is_enabled(); $str .="
"; if($b_enabled){ if($b_active){ $str .= ""; $str .= "".$s_title.""; $str .= "
"; $str .= "".$s_info.""; $str .= "

\n"; }else{ $str .= ""; $str .= "".$s_title.""; $str .= "
\n"; } }else{ $str .= ""; } $str .= "
" ; } return($str); } /* Create header entry */ function get_header_html() { $str =""; $str.= $this->o_steps[$this->i_current]->get_long_title(); $str.=""; return ($str); } /* Check if the given step id is valid and selectable */ function selectable_step($id) { if(isset($this->o_steps[$id]) && $this->o_steps[$id]->is_enabled()){ return(true); } return(false); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>