Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Mostrar misma Vista con Smarty(MVC)

Estas en el tema de Mostrar misma Vista con Smarty(MVC) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Bueno estoy haciendo un carrito de compras con el uso de AJAX, php y mysql; todo bajo MVC, ya casi esta todo .. Controller del ...
  #1 (permalink)  
Antiguo 01/03/2007, 12:25
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Mostrar misma Vista con Smarty(MVC)

Bueno estoy haciendo un carrito de compras con el uso de AJAX, php y mysql; todo bajo MVC, ya casi esta todo ..
Controller del carrito(metodo que agrega un producto):
Código PHP:
protected function addLogic(){
                        
/*Llamamos al modelo para que busque en la DB  y  cheque si existe
                         * el idProducto y lo agregue a la session[items]
                         */
                        
$_query= new manageDB("mysql","root","XXx","localhost","prueba");
                        
$rowsFound=$_query->searchById($this->idProducto);
                        if(
$rowsFound != false){
                             
$manage= new Carrito();
                             
$manage->add($this->idProducto);
                            
$productos=$manage->cesta();
                            
$this->setProducts($productos);
                         }
                        else{
                            
$this->saveMsg("Ese producto no se encuentra en la DB [mal parametro]","msgProductos");
                        }    
                } 
Bueno en el controller principal por el cual pasan las llamadas... verifico si llego algun idcontroller, si no llego nada , asumo que es index, entonces llamo a la vista y muestro la pagina principal.
Código PHP:
public function _default(){                        
$this->Smarty->assign("hayProductos",true);
$this->Smarty->assign("productos",$this->arrayProducts);
$this->Smarty->display($_SERVER[DOCUMENT_ROOT]."/php/application/carrito/vista/templates/index.tpl.html");
 } 
Este es el metodo de la vista que se encarga de recibir los productos y renderearlos:
Código PHP:
public function showProducts($arrayProducts){
if(
is_array($arrayProducts))
{                                                
$this->idProductos=$arrayProducts;
$this->Smarty->assign("hayProductos",true);
$this->Smarty->assign("productos",$arrayProducts);
$this->Smarty->display($_SERVER[DOCUMENT_ROOT]."/php/application/carrito/vista/templates/index.tpl.html");
}    
                          

EL problema es si el usuario ya agrego productos a la canasta, y supongamos que modifica la direccion, y ahora ya no llega ningun controller, entonces cuando muestro el index, no me salen los productos que habia agregado... osea ,solo salen cuando llamo al controlador del carrito que se encarga de sumar productos dependiendo de los parametros.
Ej de url que si muestra los productos:
Código HTML:
http://localhost/php/application/carrito/?idc=contCarrito&action=addLogic&idp=10
y si modifica la url a esta:
Código HTML:
http://localhost/php/application/carrito/
solo me muestra el diseño, pero no las variables.
el tpl:
Código HTML:
<html>
<head>


<style  type="text/css" media="screen">
	
	@import  url(vista/css/carro.css);
	
</style>


</head>
<body>


<div id='header'>

</div>

<div id='header2'>

</div>
	<h2>Productos </h2>
<div class='Contenedor'>
	
</div>
{$Index}


{$errores}



<div>
<p>
	
     {if $hayProductos}
	La canasta contiene: <br />
	{ foreach from = $productos  item = curr_id}    
		{$curr_id} <br />
	{/foreach}
	
     { /if }	

</p>
</div>
<div id="mensajes" >
	{if $msgProductos}
		{$msgProductos} <br />
	{/if}
</div>




</body>
</html>



Lo correcto seria que si estoy en index.php, me mostrara la canasta(siendo que ya agregue productos).
Espero haberme explicado
gracias de antemano
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.

Última edición por B**; 01/03/2007 a las 13:24
  #2 (permalink)  
Antiguo 01/03/2007, 13:42
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Mostrar misma Vista con Smarty(MVC)

Mmm ya se donde esta mi error,de tan desesperado no pensabia bien, y era algo tan obvio... en el metodo showProducts de la vista, hay que crear una session y guardar los productos para luego pasarselos al metodo default...y ya funciona
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:28.