Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/07/2010, 15:40
Avatar de syntex
syntex
 
Fecha de Ingreso: noviembre-2002
Ubicación: Cataluña
Mensajes: 978
Antigüedad: 22 años
Puntos: 4
Respuesta: Ayuda a la clase de vista MVC

Bueno ya e hecho mis primeras cosas como en el ejemplo reportado modificando la clase de la base de datos, hecha por mi.

Una pregunta,
En la clase View donde hacemos el include a la carpeta views donde se encuentra el template de la vista en html, donde se cargarian el css, javascripts, subida de imagenes etcc, en la misma carpeta views?????????????????

Código PHP:
<?php
class View{
    private 
$Bd;
    function 
__construct(){
        
// *******************************************
        
$this->Bd = new conectarMySQL(dbdriver,bdhost,dbuser,dbpass,dbselect);
        
$this->Bd->conectar();
        
// *******************************************
    
}
    public function 
show($name$vars = array()) 
    {
        
//$name es el nombre de nuestra plantilla, por ej, listado.php
        //$vars es el contenedor de nuestras variables, es un arreglo del tipo llave => valor, opcional.
        
        //Traemos una instancia de nuestra clase de configuracion.
        
$config Config::singleton();
                
        
//Armamos la ruta a la plantilla
        
$path $config->get('viewsFolder') . $name;

        
//Si no existe el fichero en cuestion, tiramos un 404
        
if (file_exists($path) == false
        {
            
trigger_error ('Template `' $path '` does not exist.'E_USER_NOTICE);
            return 
false;
        }
        
        
//Si hay variables para asignar, las pasamos una a una.
          
if(is_array($vars))
        {
                    foreach (
$vars as $key => $value)
                    {
                    $
$key $value;
                    }
                }
          
        
//Finalmente, incluimos la plantilla.
        
include(RUTA_layouts."cabecera.php");
        include(
$path);
        include(
RUTA_layouts."pie.php");
    }
}
?>
Ahora mismo lo tengo así.

# app
--# config
--# controllers
--# lib
--# models
--#views
----#layouts
----#helpers
#css
config.php
index.php

Vista preliminar del template html.
CABECERA dentro de views/layouts/cabecera.php
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?= $title; ?></title>
<link rel="stylesheet" type="text/css" href="css/default.css"/>
</head>
<body> 
PIE dentro de views/layouts/pie.php
Código HTML:
<br />
<a href="?"><< Inicio</a>
</body>
</html> 
Muchas gracias.
__________________
------------------------------------------------
La paciencia es el rey de la ciencia
------------------------------------------------