Articles tagged with: php

Llistat de categories a Prestashop 1.6

Aquesta setmana hem tingut la necessitat de crear una pàgina a Prestashop (concretament a Prestashop 1.6) amb un llistat de categories, per a mostrar totes les categories de primer nivell.

Sembla mentida, però Prestashop no inclou per defecte una pàgina amb llistat de categories, així que hem hagut de programar un mòdul. El mòdul l’hem programat a partir de dos mòduls gratuïts que hem trobat per internet:

“Creating new pages in Prestashop” creat per nemops
“Homepage Categories Module” creat per jhnstcks 

Ara, per a tornar-li el favor a internet, anem a regalar-vos el mòdul en forma de descàrrega gratuïta:

allcategories









Ja l’he instal·lat, com puc mostrar la llista de categories?

Ben fàcil, l’enllaç serà així: http://example.com/index.php?fc=module&module=allcategories&controller=allcategories

D’acord, i com puc crear un enllaç amigable?

Fàcil també, vas a “Preferències” / “SEO+URLs” i crees una entrada seleccionant el mòdul i controlador “allcategories”. En el nostre cas hem creat la url “/coleccion”, de forma que la llista de categories es mostrarà en la URL http://example.com/coleccion :

allcategories

Si algú té problemes, dubtes o se li ocorre alguna forma de millorar-lo, que deixe un comentari 😀

Nova web onlinedjshop.com

Onlinedjshop.com, la botiga online de la discogràfica Squad Music, acaba d’obrir la seua web renovada.

Hem instal·lat i adaptat un Prestashop per a que els seus clients puguen comprar música a través d’internet. El disseny és senzill, minimalista i adaptable a dispositius mòbils.

onlinedjshop

Aspecte de la nova web onlinedjshop.com

Web per a made4parents.com

Fa poc hem acabat un treball molt original, la web d’aquesta jove empresa de Banyeres de Mariola: made4parents.com. Es tracta d’una web corporativa que al mateix temps fa de botiga online, amb unes característiques molt interessants, des d’on venen les seues creacions per a cotxets de bebé de la marca Bugaboo©.

Captura de pantalla

Vista de la pàgina de made4parents.com

La web permet configurar el teu disseny de fundes per al carret, tant en peces com en colors i textures. Així, l’empresa el fabricarà al teu gust. Tota una revolució.

Detalls tècnics
Coding
  • La web compta amb un dissenyador de cotxets de bebé molt fàcil d’usar.
  • Les imatges generades es guarden a una cache per agilitzar la navegació.
  • L’usuari pot compartir fàcilment el seu disseny a les xarxes socials.
Web design
  • S’han seguit les pautes de disseny que ha imposat made4parents.com.
  • La web compta amb un disseny responsive, adaptable a mòbils i tauletes.

Gestor de rutes: La Sària serveis turístics

Fa un parell de setmanes que hem programat un gestor de rutes amb mapa per a La Sària serveis turístics, que ara han obert al públic. Igual que vam fer amb la web de l’Associació Serra Mariola, compta amb un mapa de Google Maps on els visitants podran fer una ullada a les rutes que La Sària ofereix per tot el territori valencià.

Gestor de rutes amb integració de Google Maps i WordPress per a La Sària serveis turístics

Gestor de rutes amb integració de Google Maps i WordPress per a La Sària serveis turístics

La nova secció de la web de La Sària et permet fer una ullada a les seues rutes turístiques, excursions i itineraris de forma fàcil, sobre un llistat o sobre el mapa. A més, la gestió és també molt senzilla, que era un dels requisits del client.

Detalls tècnics
Coding
  • La web compta amb una guia de rutes sobre mapa on els usuaris podran vore tota l’oferta.
  • A més, els resultats que es mostren sobre el mapa s’emmagatzemen en una cache temporal per augmentar el rendiment de la web, minorar el temps de resposta i evitar la sobrecàrrega.
  • L’edició de les rutes també és molt senzilla. De fet això era un dels requisits del client.
Web design
  • El mapa i gestor de rutes s’ha integrat en el disseny web que ja tenia La Sària.

Problema amb el BOM

Quan programem aplicacions web apareixen una sèrie de complicacions que no tenim habitualment quan programem aplicacions d’escriptori. Una d’elles és relacionada amb el BOM (Byte Order Mark). Segur que molts hem tingut males experiències amb WordPress per exemple, dient-nos coses com HTTP header have been already sent. El BOM són uns caràcters especials que es poden col·locar al principi d’un arxiu per indicar si és Little o Big Endian. Actualment, en UTF-8 per exemple, no és obligatori posar-lo (de fet es recomana no fer-ho), però alguns editors de text el posen per defecte i d’aquí vénen els problemes.

Aquesta entrada ha estat motivada per un extrany problema causat pel BOM, cosa que vaig saber a posteriori.

Quan el frontend de l’aplicació enviava una petició per AJAX (des de jQuery), aquesta arribava correctament al servidor. El servidor processava correctament la petició i retornava la resposta JSON. Tot i això, del costat de jQuery l’acció no seguia.

Primer vaig pensar que la resposta JSON estaria mal formada, així que la vaig comprovar amb un JSON checker, com JSONLint. La resposta JSON estava ben formada.

Després vaig pensar que hi havia algun error jQuery-Javascript quan s’executava l’acció success, però no era això. Simplement l’acció success no s’executava mai. Això em va fer pensar de nou que hi havia un error amb la resposta JSON. Però, com? si l’havia comprovada amb un checker.

Resulta que la resposta venia amb un BOM al principi, cosa que feia que jQuery no executara l’acció success, tot i que la resposta era un JSON ben format. El problema ara era… tinc un projecte web amb prop de dos mil arxius PHP… com puc trobar l’arxiu on s’ha inclòs el BOM?

Habitualment he usat un editor que t’indica si l’arxiu té BOM o no, i et permet llevar-lo o canviar la codificació, com és Notepad++, però s’havien editat massa arxius com per a revisar-los a mà. Vaig pensar en programar alguna xicoteta aplicació o script per a detectar arxius amb BOM però algú s’havia preocupat de fer-ho i publicar-ho gratuïtament: File BOM Detector. Senzill i efectiu. Problema solucionat.

Que ho faça la base de dades!

Quan treballava a un grup de “consultoria” de la Universitat de València, teníem una expressió que resumia part del treball d’aquesta setmana: “Que ho faça Oracle!“.

base-de-datos-1

Una de les preocupacions que sempre té (o hauria de tindre) un programador és el rendiment del que està creant. Almenys és una de les coses que a mi m’interessen (podeu consultar l’entrada anterior del blog on es parlava de la creació d’una cache a WordPress per a agilitzar la càrrega de marques a un mapa de GoogleMaps). En aquesta ocasió hem reenginyat part d’una aplicació Java que executava una sèrie de tasques (batch) i realitzava nombroses insercions en base de dades, de forma que ara es fa tot des de base de dades. Així ens estalviem les connexions-desconnexions de la base de dades i les esperes i conversions de dades que suposa executar codi Java (o PHP) i després SQL, per a tornar a executar Java i tornar a executar SQL, etc.

La solució ens ha donat el resultat següent:

  • Una tasca que podia costar un quart d’hora en Java-SQL no arriba ni al minut quan és plenament executada per la base de dades.
  • El fet de treballar-ho tot des de la base de dades ens ha facilitat tractar tot el procés com a una transacció única de base de dades: es realitza completa o s’anul·la també completament, com si l’usuari no haguera començat el procés.

Però atenció, també té alguns inconvenients:

  • El redo log de la base de dades ha de ser suficientment gran per a totes les operacions que pensem executar com a una única transacció.
  • Es complica la possibilitat de mostrar-li a l’usuari una barra de progrés que responga al progrés real de la tasca, tot i que en el nostre cas no era important.
  • Aquesta solució, evidentment, no serà vàlida per a sistemes on la càrrega de la base de dades durant un temps important (per exemple un minut) per part d’un usuari puga suposar un problema.
  • Les consultes SQL són més complexes i inclús poden ser necessaris triggers o funcions PL-SQL.

La moda dels CMS i demés sistemes de programació “preconstruïts” fan pensar a molta gent que no cal saber SQL per a programar. Està clar que això pot ser cert per a projectes senzills i que no han de créixer en el futur, però quan el rendiment importa tots els detalls són crucials.

Web Serra Mariola

Ara que estrenem web, volem parlar-vos d’una altra organització que inaugura web: l’associació Serra Mariola.

Web responsive per a l'associació Serra Mariola

Web responsive per a l’associació Serra Mariola

Hem tingut el plaer de treballar amb ells en el desenvolupament del nou portal turístic de la Serra de Mariola. En principi l’associació agrupa els municipis d’Agres, Alfafara, Alcoi, Banyeres, Bocairent i Muro i la pàgina web té com a finalitat recollir tota la informació d’interés turístic de la zona per als turistes potencials i ajudar a formar la marca Serra Mariola que identifique una potent opció de turisme d’interior a terres valencianes.

Detalls tècnics
Coding
  • La web compta amb una guia de serveis sobre mapa on els usuaris podran vore tota l’oferta que trobaran a la zona.
  • A més, els resultats que es mostren sobre el mapa s’emmagatzemen en una cache temporal per augmentar el rendiment de la web, minorar el temps de resposta i evitar la sobrecàrrega.
Web design
  • La web és responsive, o siga, adaptable al dispositiu (ordinador, mòbil o tablet) amb el qual la visitem.