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

De WikiEducator
Saltar a: navegación, buscar
(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
*el código
+
{{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>
+
          <p>
        <form id='{$producto->getcodigo()}' action='productos.php' method='post'>
+
          <form id='{$producto->getcodigo()}' action='productos.php' method='post'>
        <input type='hidden' name='cod' value='{$producto->getcodigo()}'/>
+
          <input type='hidden' name='cod' value='{$producto->getcodigo()}'/>
        <input type='submit' name='enviar' value='Añadir'/>
+
          <input type='submit' name='enviar' value='Añadir'/>
        {$producto->getnombrecorto()}: {$producto->getPVP()} euros.</form>
+
          {$producto->getnombrecorto()}: {$producto->getPVP()} euros.</form>
 
         </p>
 
         </p>
    {/foreach}
+
      {/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

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

{{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();
....