Diferencia entre revisiones de «Usuario:ManuelRomero/php/smarty/producto»
De WikiEducator
< Usuario:ManuelRomero | php
(→Lista productos) |
|||
Línea 55: | Línea 55: | ||
--> | --> | ||
;La clase Producto.php | ;La clase Producto.php | ||
− | [[Archivo:producto.png]] | + | [[Archivo:producto.png]]<br /> |
− | Esta clase implementa los atributos de la tabla productos y la posibilidad de obtener cada uno de sus atributos | + | Esta clase implementa los atributos de la tabla productos y la posibilidad de obtener cada uno de sus atributos. |
+ | {{Plegable|hide|Producto.php| | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 65: | Línea 66: | ||
protected $PVP; | protected $PVP; | ||
</source> | </source> | ||
− | + | ||
public function getcodigo() {return $this->codigo; } | public function getcodigo() {return $this->codigo; } | ||
public function getnombre() {return $this->nombre; } | public function getnombre() {return $this->nombre; } | ||
Línea 80: | Línea 81: | ||
?> | ?> | ||
</source> | </source> | ||
− | + | }} | |
;productos.php | ;productos.php | ||
*Esta parte del código simplemente accede a la base de datos y obtiene todos los productos | *Esta parte del código simplemente accede a la base de datos y obtiene todos los productos | ||
*Los productos quedan disponibles para la plantilla en una variable '''''$productos''''' que es un array asociativo | *Los productos quedan disponibles para la plantilla en una variable '''''$productos''''' que es un array asociativo | ||
− | + | {{Plegable|hide|productos.php| | |
− | + | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 123: | Línea 123: | ||
?> | ?> | ||
</source> | </source> | ||
− | + | }} | |
;producto.tpl | ;producto.tpl | ||
Línea 129: | Línea 129: | ||
*En este caso debemos recorrer un array usando smarty | *En este caso debemos recorrer un array usando smarty | ||
*Como se vio en la teoría la estructura from de smarty queda reflejada en el siguiente código | *Como se vio en la teoría la estructura from de smarty queda reflejada en el siguiente código | ||
+ | {{Plegable|hide|producto.tpl, la plantilla| | ||
<source lang=php> | <source lang=php> | ||
<!DOCTYPE html > | <!DOCTYPE html > | ||
Línea 147: | Línea 148: | ||
<div id="productos"> | <div id="productos"> | ||
{foreach from=$productos item=producto} | {foreach from=$productos item=producto} | ||
− | + | <p> | |
− | + | <form id='{$producto->getcodigo()}' action='productos.php' method='post'> | |
− | + | <input type='hidden' name='cod' value='{$producto->getcodigo()}'/> | |
− | + | <input type='submit' name='enviar' value='Añadir'/> | |
− | + | {$producto->getnombrecorto()}: {$producto->getPVP()} euros.</form> | |
</p> | </p> | ||
− | + | {/foreach} | |
</div> | </div> | ||
Línea 160: | Línea 161: | ||
</html> | </html> | ||
</source> | </source> | ||
− | + | }} |
Revisión de 06:17 3 abr 2017
Probando el ejemplo
- Puedes ver esta parte del ejercicio ejecutándose en la web:
http://manuel.infenlaces.com/dwes/tienda/TiendaProductos/login.php
Lista productos
- Se trata de modificar tanto productos.php, como la plantilla productos.tpl, para obtener un listado de todos los productos
- Para ello también añadiremos métodos a la clase DB.php.
- A la vez crearemos la clase Producto.php para obtener de forma más cómoda cada producto como un objeto de la clase Producto a partir de cada fila de la consulta.
- Directamente vamos a escribir el código
- DB.php
- Debemos hacer una consulta que obtenga todos los productos
- Para ello añadiremos el método pública obtieneProductos() en la clase DB.php que quedará con lo que tenía
- escribimos el código
<?php require_once('Producto.php'); class DB { //..... lo que había /*======================obtieneProducto ()====================================== Accion: obtiene un array con todos los productos de la bd. Parámetros: Retorna un array de objetos de productos con todos los productos * ***********************************************************************************************/ public static function obtieneProductos() { //....
- La clase Producto.php
Esta clase implementa los atributos de la tabla productos y la posibilidad de obtener cada uno de sus atributos.
Producto.php |
---|
{{{3}}} |
- productos.php
- Esta parte del código simplemente accede a la base de datos y obtiene todos los productos
- Los productos quedan disponibles para la plantilla en una variable $productos que es un array asociativo
{{Plegable|hide|productos.php|
<?php require_once('./../include/DB.php'); require_once('Smarty.class.php'); // Recuperamos la información de la sesión session_start(); ....