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

De WikiEducator
Saltar a: navegación, buscar
(Probando el ejemplo)
(Lista productos)
Línea 8: Línea 8:
 
*Se trata de modificar tanto productos.php, como la plantilla productos.tpl, para obtener un listado de todos los 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.
 
*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 a partir de cada fila de la consulta
+
*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
 
*Directamente vamos a escribir el código
 
;DB.php
 
;DB.php

Revisión de 06:14 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

<?php
class Producto {
    protected $codigo;
    protected $nombre;
    protected $nombre_corto;
    protected $PVP;
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
  • el código
<?php
require_once('./../include/DB.php');
require_once('Smarty.class.php');
 
// Recuperamos la información de la sesión
session_start();
....