Tag Archives: Prestashop

Uso de la clase PrestashopCollection

La clase PrestashopCollection

Hoy vamos a ver el uso de la clase PrestashopCollection, ya que os puede ser de utilidad en más de una ocasión, cuando necesitéis, por ejemplo  retocar o consultar masivamente registros de una tabla MySQL de Prestashop, pero para ello necesitemos utilizar un método que hemos implementado en el ObjectModel que define los campos de dicha tabla, y que además, no podamos acceder a el sin instanciar el objeto por no ser estática.

Ejemplo de uso de la clase PrestashopCollection

Pongamos por ejemplo, que queremos obtener todos los transportistas(carriers) asignados a cada producto mediante el método de la clase Product getCarriers.Para ello, definiremos la query que obtendrá los registros que se cargarán dentro del array.Veamos el ejemplo:

 

 

Cómo podréis comprobar en el ejemplo, nos podemos ahorrar varias líneas de código, utilizando esta clase. Una alternativa a esta clase, puede ser el método estático hydrateCollection del objeto ObjectModel, ya que a pesar de tener que utilizar más lineas de código, es bastante más personalizable, ya que podemos montar las queries directamente sobre strings y son necesidad de llamar a métodos de la propia clases para montar nuestra query.De todos modos, sigo recomendando el uso de la clase PrestashopCollection por encima de hydrateCollection si la query que queremos montar para obtener el array de objetos no es excesivamente compleja.

Si utilizáis otros métodos para cargar object models en vuestros desarrollos en Prestashop, no dudéis en dejar en comentario.Espero que os sea de utilidad

1 Star2 Stars3 Stars4 Stars5 Stars (2 votos, media: 5,00 de 5)
Loading...

La clase DbQuery de Prestashop

Logo de Prestashop

La clase DbQuery de Prestashop es una clase del propio core del CMS y utilizada para programar por los desarrolladores de Prestashop en algunas ocasiones para montar selects complejas por la variabilidad que puede llevar tener los campos y que quede montada de una forma más limpia en el código.

La clase DbQuery de Prestashop

Es una clase útil para poder montar queries sin tener que mantener el orden normal de las queries, es decir, que no necesitamos poner primero los campos de la select, el from después… , y de esta forma, no condicionar nuestro código con la estructura de las queries MySQL.

Los métodos de la clase DbQuery de Prestashop

Aquí os dejo un ejemplo con algunos de los métodos de esta clase:

Cómo podréis observar en el código no es necesario poner el prefijo de las tablas de Prestashop en las sentencias from y join.Por otro lado también es compatible con los alias de MySQL, ya sea para los campos de la select desde el mismo método, como los de las tablas mediante el segundo parámetro del método from o de la join.

Si necesitáis más información acerca de los métodos de esta clase podéis visitar la documentación que generé hace un tiempo de las clases y controllers de Prestashop que hace referencia a esta clase.

Para poder debugar la query que llevamos construida, podemos obtener el resultado mostrando la query por pantalla mediante el siguiente método.

d($sql->build());

Cómo ejecutar la query

A la hora de ejecutarla, podemos proceder como hacemos normalmente con cualquier query, ya que la clase Db soporta introducir la clase DbQuery de Prestashop en vez de ser una string construida por nosotros.Podemos utilizar ya sea el método executeS(), getRow(), getValue() o el resto de los métodos que utilizamos habitualmente en nuestras queries.

Si necesitáis más información sobre cómo ejecutar sentencias, os propongo que visitéis el artículo de Jose Aguilar que explica cómo trabajar con la clase Db.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, media: 4,00 de 5)
Loading...

Autocompletar Prestashop en Netbeans

Logo de Prestashop

Desarrollar en prestashop en Netbeans puede ser una tarea un poco complicada al inicio ya que a fecha de no hay ningún plugin que te facilite esta ayuda.Hoy os daré un pequeño truco para que funcione autocompletar en Netbeans.
El problema que tiene prestashop, es que la función de autocompletar en Netbeans ( y cualquier otro IDE ) no funciona porque a pesar de que todas las clases y controladores tienen el nombre que pertoca en el nombre del fichero, el nombre con el que se declara la clase siempre acaba en “Core”. El fichero que he creado hace un extends de las clases y controladores de prestashop acabados en “Core” con el nombre que tiene la clase original.De esta forma, tanto las clases como  métodos y variables son visibles desde la función autocompletar.

Cómo utilizar este fichero en vuestros proyectos

Para utilizar este fichero en vuestros proyectos de Prestashop, tenéis que utilizar este fichero a modo de librería en vuestros proyectos.Para utilizarlo de este modo debéis seguir los siguientes pasos

  • Descargad el fichero php aquí desde mi GitHub
  • Poned el fichero class.ignore.php en una carpeta.Por ejemplo:prestashop-lib
  • Dentro de Netbeans, en la pestaña Projects clickar sobre el proyecto que queráis utilizar el fichero y hacer click en Properties
Menú propiedades de proyecto de netbeans

Menú propiedades de proyecto de netbeans

  • Id al apartado Include path, y desde ahí, ubicados en la pestaña share, darle al botón Add Folder y añadid la carpeta que hemos creado
Sección Include Path de las propiedades del proyecto de Netbeans

Sección Include Path de las propiedades del proyecto de Netbeans

  • Una vez hecho, esto de damos a Ok y podemos comprobar que la función autocompletar de Netbeans ya funciona con las clases y controladores de Prestashop
Función autocompletar de Netbeans funcionando con Prestashop

Función autocompletar de Netbeans funcionando con Prestashop

Tened en cuenta que el fichero esta basado en las los ficheros que van en la versión 1.6.0.9 de prestashop.

 

1 Star2 Stars3 Stars4 Stars5 Stars (2 votos, media: 5,00 de 5)
Loading...

Copyright © 2017. Powered by WordPress & Romangie Theme.