<?php
class VstMensaje {
	
	// propiedades
	protected $_titulo;
	protected $_cuerpo;
	protected $_tipo;
	protected $_elementos = array();
	
	// tipos
	const APP_ERROR = 'alert alert-block alert-danger';
	const APP_INFO = 'alert alert-block alert-info';
	const APP_EXITO = 'alert alert-block alert-success';
	const APP_AVISO = 'alert alert-block alert-warning';
	
	public function __construct($titulo, $cuerpo, $tipo){
		$this->_titulo = $titulo;
		$this->_cuerpo = $cuerpo;
		$this->_tipo = $tipo;
	}
	
	public function __toString(){
		return $this->render();
	}
	
	public function addElement(&$elemento){
		$this->_elementos[] = $elemento;
	}
	
	
	public function render(){

		// contenido de los elementos
		$contenido = '';
		foreach ($this->_elementos as $elemento){
			if(is_object($elemento)){
				$contenido .= $elemento->render();
			}else{
				$contenido .= $elemento;
			}
		}
	
		// renderizar
		$html = '<div class="'.$this->_tipo.'">';
		if ($this->_titulo)
			$html .= '<h4 class="alert-heading">'.$this->_titulo.'</h4>';
		if ($this->_cuerpo)
			$html .= $this->_cuerpo;
		if ($contenido)
			$html .= $contenido;
		$html .= '</div>';
		return $html;
	}
	
}