array( "name"=>"List", "description"=>__("Display products in a list of items with thubnails"), "link"=>"http://yahoo.com", "image"=>"list.png" ), "grid"=>array( "name"=>"Grid", "description"=>__("Display products in a grid of multiple columns"), "link"=>"http://yahoo.com", "image"=>"grid.png" ) ); class AMZRP_UNIT { public $id; public $name; public $description; public $prefix = "amzrp_unit_"; public $options = array(); function __construct( $id, $name, $description, $options ) { $this->id = $id; $this->name = $name; $this->description = $description; $this->options = $options; } public function form(){ exit ("Must be over-ridden in a sub-class"); } public function pre_render($id){ exit ("Must be over-ridden in a sub-class"); } public function render($options){ exit ("Must be over-ridden in a sub-class"); } public function get_name($elem){ return $this->prefix.$this->id."[".$elem."]"; } public function get_id($elem){ return $this->prefix.$this->id."_".$elem; } public function get_option($elem){ global $amzrp_units; $options = $amzrp_units->get_options($this->id); if (array_key_exists($elem,$options)){ return $options[$elem]; } else { return false; } } public function is_enabled(){ if (array_key_exists('enable',$this->options) && $this->options['enable']){ return true; } else { return false; } } public function unit_enable(){ $this->options['enable'] = true; } public function unit_disable(){ $this->options['enable'] = false; } } class AMZRP_UNITS_FACTORY { public $units = array(); public $default_unit = 'list'; function __construct() { $this->load_units(); } public function register($unit_class) { $unit = new $unit_class(); if ($this->is_register($unit->id)){ unset($unit); } else { $this->units[$unit->id] = $unit; $this->units[$unit->id]->options = $this->get_options($unit->id); } } public function is_register($id){ if (array_key_exists($id, $this->units)){ return true; } else { return false; } } public function load_units() { $amzrp_units_list = array (); $units_root = AMZRP_PLUGIN_DIR."/units"; $units_dir = @ opendir( $units_root); $units_files = array(); if ( $units_dir ) { while (($file = readdir( $units_dir ) ) !== false ) { if ( substr($file, 0, 1) == '.' ) continue; if ( is_dir( $units_root.'/'.$file ) ) { $units_subdir = @ opendir( $units_root.'/'.$file ); if ( $units_subdir ) { while (($subfile = readdir( $units_subdir ) ) !== false ) { if ( substr($subfile, 0, 1) == '.' ) continue; if ( substr($subfile, -4) == '.php' ) $amzrp_units_list[] = "$file"; } closedir( $units_subdir ); } } } closedir( $units_dir ); } if ( count($amzrp_units_list) > 0 ) { foreach ($amzrp_units_list as $unit) { $fn_file = $units_root."/".$unit."/functions.php"; if (file_exists($fn_file)){ require_once ($fn_file); } } return $amzrp_units_list; } } public function render(){ global $amzrp_units_preview; echo "
".$unit->description."
"; $unit->form(); if($unit->is_enabled()){ echo " "; if ( $unit->id != $this->default_unit) { echo "get_name('disable')."\" class=\"button disable\" value=\"".__("Disable")."\" />"; } } else { echo "get_name('enable')."\" class=\"button\" value=\"".__("Enable")."\" /> "; } echo "".$unit_preview['description']."
"; echo $link."