%PDF- %PDF-
Direktori : /var/www/cwg/wp-content/plugins/codepress-admin-columns/classes/ |
Current File : //var/www/cwg/wp-content/plugins/codepress-admin-columns/classes/View.php |
<?php namespace AC; class View implements Renderable { /** * @var array */ private $data = []; /** * @var string */ private $template; public function __construct( array $data = [] ) { $this->set_data( $data ); } public function get( $key ) { if ( ! isset( $this->data[ $key ] ) ) { return null; } return $this->data[ $key ]; } public function __get( $key ) { return $this->get( $key ); } public function __set( $key, $value ) { return $this->set( $key, $value ); } /** * @param $key * @param $value * * @return $this */ public function set( $key, $value ) { $this->data[ $key ] = $value; return $this; } public function get_data() { return $this->data; } public function set_data( array $data ) { foreach ( $data as $key => $value ) { $this->set( $key, $value ); } return $this; } /** * Will try to resolve the current template to a file * @return false|string */ public function resolve_template() { /** * Returns the available template paths for column settings * * @param array $paths Template paths * @param string $template Current template path */ $paths = apply_filters( 'ac/view/templates', [ AC()->get_dir() . 'templates' ], $this->template ); foreach ( $paths as $path ) { $file = $path . '/' . $this->template . '.php'; if ( is_readable( $file ) ) { include $file; return true; } } return false; } /** * Get a string representation of this object * @return string */ public function render() { ob_start(); $this->resolve_template(); return ob_get_clean(); } /** * @return string */ public function get_template() { return $this->template; } /** * @param string $template * * @return $this */ public function set_template( $template ) { $this->template = $template; return $this; } /** * Should call self::render when treated as a string * @return string */ public function __toString() { return $this->render(); } }