Diferencia entre revisiones de «Usuario:ManuelRomero/php/smarty/producto»

De WikiEducator
Saltar a: navegación, buscar
(Lista productos)
Línea 94: Línea 94:
 
session_start();
 
session_start();
 
....
 
....
</source>
 
<!--
 
  
  

Revisión de 05:20 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

DB2 .png

  • 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

Producto.png
Esta clase implementa los atributos de la tabla productos y la posibilidad de obtener cada uno de sus atributos.

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
producto.tpl
  • Esta es la plantilla de los productos
  • 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