templates_object = &$templates; $this->get_templates(); } protected function get_templates(){ if( NULL === $this->templates_object ) throw new Exception( 'No templates defined' ); $this->templates = &$this->templates_object->get_templates(); } public function get_list( $type = '', $data = array() ){ // get templates if not already set if( empty( $this->templates ) ) $this->get_templates(); // check if the requested list-typ is defined if( ! in_array( $type, array_keys( $this->templates ) ) ) return FALSE; // create list $inner = new stdClass(); $values = new stdClass(); foreach( $data as $key => $value ){ $values->key = $key; $values->item = $value; $inner->inner .= self::sprintf( $this->templates[$type]['inner'], $values ); } return self::sprintf( $this->templates[$type]['outer'], $inner ); } } $data = array( 'Eins', 'Zwei', 'Drei' ); $list = new Lister( new Simple_List_Templates ); echo $list->get_list( 'ol', $data ); echo $list->get_list( 'ul', $data ); echo $list->get_list( 'div', $data );