Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2012, 14:11
Avatar de Garot
Garot
 
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 15 años
Puntos: 7
Duda principiante sobre POO y MVC

hola a todos!

Estoy comenzando con POO, estuve leyendo bastante teoría, pero ya no entendía nada así que pase a la práctica de una vez y es acá donde comienzan a surgir las dudas.

Estoy siguiendo básicamente el esquema utilizado por Eugenia Bahit en su pequeño pero interesante libro "POO y MVC en PHP"

Entonces mi duda puntualmente es como presento los datos cuando tengo que utilizar un bucle for o while para mostrar los datos?


Este es el ejemplo del libro(un poco modificado):

El controlador hace una consulta a traves del model y junta los datos enviandolos a la lógica de la vista:

controlador
Código PHP:
...

$usuario->get($user_data);
            
$data = array(
                
'nombre'=>$usuario->nom_usuario,
                
'email'=>$usuario->email_usuario
            
);
            
retornar_vista(VIEW_EDIT_USER$data);

... 
y la vista va poniendo estos datos en el template y lo imprime:

vista
Código PHP:

...

function 
retornar_vista($vista$data=array()) {
    global 
$diccionario;
    
$tmp_encabezado '../site_media/html/globales/encabezado.html';
    
$encabezado file_get_contents($tmp_encabezado);
    
    
    
$html get_template('template');
    
$html str_replace('{encabezado}'$encabezado$html);
    
$html str_replace('{subtitulo}'$diccionario['subtitulo'][$vista],$html);
    
$html str_replace('{formulario}'get_template($vista), $html);
    
$html render_dinamic_data($html$diccionario['form_actions']);
    
$html render_dinamic_data($html$diccionario['links_menu']);
    
$html render_dinamic_data($html$data);
    
    
    print 
$html;
}

... 

templatede usuarios :
Código HTML:
Ver original
  1. ...
  2.    
  3.         <h2>Administración de usuarios</h2>
  4.         <h3>{subtitulo}</h3>
  5.         <nav>
  6.             <a href="/recetas_beta/{VIEW_GET_USER}" title="Buscar usuario" >Editar usuario</a>
  7.             <a href="/recetas_beta/{VIEW_SET_USER}" title="Nuevo usuario" >Agregar usuario</a>
  8.         </nav>
  9.     </section>
  10.     <section>
  11.         <div id="mensaje">
  12.             {mensaje}
  13.         </div>
  14.         <div id="formulario">
  15.             {formulario}
  16.         </div>
  17.     </section>
  18. </body>
  19. ...


formulario usuario (que se introduce dentro de template en {formulario})

Código HTML:
Ver original
  1. <form action="{EDIT}" method="POST">
  2.  
  3.     <label>Nombre:</label>
  4.     <input type="text" name="nombre" id="nombre" value="{nombre}" required/>
  5.     <label>E-mail:</label>
  6.     <input type="email" name="email" id="email" readonly="readonly" value="{email}" required/>
  7.    
  8.     <input type="submit" name="enviar" id="enviar" value="Guardar cambios" />
  9. </form>

Eso esta muy claro, pero como hago para presentar el dato de muchos usuarios si fuera el caso, donde pongo el "for" o el "while", tengo entendido que poner código php en la vista no se puede....pero en la lógica de la vista no encuentro la forma de hacerlo.

Alguien podria ayudarme a encontrar la manera correcta de hacer esto en POO con MVC?

Desde ya muchas gracias!