CI =& get_instance(); } /** * MY_Template::set_layout() * * Define el view para el layout * * @param string $layout * @return void */ public function set_layout($layout) { $this->layout = $layout; } /** * MY_Template::set_view() * * Escribir un View en una zona del template * * @param string $destination * @param string $view_name * @param array $view_data * @return void */ public function set_view($destination = null, $view_name = null, $view_data = array()) { if (isset($destination) && isset($view_name)) { $this->partials[] = array( "type" => "view", "destination" => $destination, "view_name" => $view_name, "view_data" => $view_data ); } else { show_error("Destination y View Name deben ser especificados"); } } /** * MY_Template::set_value() * * Escribir un valor en una zona del template * * @param string $destination * @param mixed $value * @return void */ public function set_value($destination = null, $value = null) { if (isset($destination) && isset($value)) { $this->partials[] = array( "type" => "value", "destination" => $destination, "value" => $value ); } else { show_error("Destination y Value deben ser especificados"); } } /** * MY_Template::render() * * Renderear el layout con todos los Views y valores escritos * * @param bool $return * @return void */ public function render($return = false) { foreach ($this->partials as $partial) { switch ($partial['type']) { case "view": $this->destinations[$partial['destination']] = $this->CI->load->view($partial['view_name'], $partial['view_data'], true); break; case "value": $this->destinations[$partial['destination']] = $partial['value']; break; } } if ($return) { return($this->CI->load->view($this->layout, array(), true)); } else { $this->CI->load->view($this->layout); } } /** * MY_Template::get() * * Obtener un View rendereado o un valor para escribirlo en el layout * * @param string $destination * @return */ public function get($destination) { if (isset($this->destinations[$destination])) { return($this->destinations[$destination]); } else { return(""); } } public function __get($destination) { if (isset($this->destinations[$destination])) { return($this->destinations[$destination]); } else { return(""); } } public function __set($destination = null, $value = null) { if (isset($destination) && isset($value)) { $this->destinations[$destination] = $value; } else { show_error("Destination y Value deben ser especificados"); } } }