Resulta que mi aplicación esta distribuida en MODELO, VISTA y CONTROLADOR.... en el controlador están todas las librerías y hay un controlador que es quien comanda todas las lineas de códigos a ejecutar, incluyendo las librerías correspondientes....
En la vista no existe ningún tipo de código php, solo es html y txt.... para ello el controlador es quien muestra los datos de la base de datos en el html remplazando los txt que le coloco, por ejemplo...en el html coloco <div id="usuario">{USUARIO}</div> y en php controlador coloco un método que contenga str_replace() y que contenga los datos a remplazar ( str_replace($datosHTML,$datosController,$Cadena) )........ mi problema esta en que los datos extraídos desde la base de datos los muestra en el html, pero fuera del div, como que no entendiera que tiene que ir ubicado dentro del div que contiene {USUARIO}... habrá otra forma extraer datos desde la base de datos y remplazarlos en html, y que cumplan un perfecto orden dentro del div?
p/d =cabe aclarar que ese problema lo tengo cuando llamo los datos desde la base de datos y no cuando coloco una cadena simple "Hola mundo".
Para mas ayuda, colocare mis metodos:
PHP:
Código:
//esto es metodo de la libreria singletonpublic function getTemplate($cadena, $code, $fill) { $archivo = "View/default/" . $fill . ".php"; $remplazo = file_get_contents($archivo); $remplazo = str_replace($cadena, $code, $remplazo); $fp = fopen($archivo, "r"); $write = fputs($fp, $remplazo); fclose($fp);
Controlador :
Código:
public function index() { $this->callLibrary("Singleton"); $this->callLibrary("Template"); $this->callMetod(new Template())->callView("header"); $this->callMetod(Singleton::getInstacia())->getTemplate( array( "{fecha}", //dato a remplazar en el html "{titulo}", "{detalle}" ), array( $this->date(), $this->post("titulo"), //dato remplazador $this->post("detalle")), "content");// archivo //siempre instanciando su clase podemos llamar al metodo // $this->callMetod(new Template())->callView("content"); $this->callMetod(new Template())->callView("footer"); }
HTML Contenido
Código:
<div id="main"> <div id="content"> <div id="title">{titulo}</div> <div id="fecha">{fecha}</div> <div id="detalle">{detalle}</div> </div> </div>
Bueno gente espero que me puedan ayudar y muchas gracias por leer mi pregunta...saludos