Example 2 for Formatter
<?php | |
require_once 'class-formatter.php'; | |
class Lister extends Formatter | |
{ | |
public $templates = array(); | |
public function __construct(){ | |
$this->templates = $this->get_templates(); | |
} | |
public function get_templates(){ | |
return array( | |
'ol' => array( | |
'outer' => "<ol>\n%inner%</ol>\n", | |
'inner' => "<li>%item%</li>\n" | |
), | |
'ul' => array( | |
'outer' => "<ul>\n%inner%</ul>\n", | |
'inner' => "<li>%item%</li>\n" | |
), | |
'div' => array( | |
'outer' => "<div>\n%inner%</div>\n", | |
'inner' => "<p>%item%</p>\n" | |
), | |
); | |
} | |
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(); | |
echo $list->get_list( 'ol', $data ); | |
echo $list->get_list( 'ul', $data ); | |
echo $list->get_list( 'div', $data ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment