dimecres, 30 de juliol del 2008

Flash que no linka

Fa uns dies que em vaig adonar -per sort abans que l'empresa rebés cap queixa- que una sèrie de banners flash (SWF) que surten a una sèrie de portals de la feina no enllaçaven amb els webs corresponents que publicitaven; simplement s’ignorava el ‘clic’. Això passava amb tots els navegadors, excepte l’ie 6.0 que continuava funcionant normalment, fet que em va fer pensar que deuria ser un tema de seguretat.

Fins avui no he pogut mirar de resoldre el problema. El cas és que els banners estan continguts en un domini diferent als dels portals i he pensat que el problema podia venir d’aquí. No tinc gaire idea de flash però una simple prova utilitzant un dels banners problemàtics però dins del domini del portal ha confirmat les meves sospites: el banner enllaçava correctament.

Una mica de google i he trobat la raó del problema i la solució.

divendres, 25 de juliol del 2008

vendor() deprecated

En ple canvi d'una aplicació web de servidor i domini he aprofitat per actualitzar la versió de cakePHP sobre la que corria per la recent 1.2.0.7296 RC2. El primer problema que m'he trobat ha estat un de previsible que ja havia llegit: la funció vendor() està condemnada a morir i apareix marcada com a deprecated (caducada). En el seu lloc se't marca l'ús d'App::import(), una funció molt més genèrica i a priori de simple ús
App::import('Vendor', 'nomarxiu');
doncs bé, m'he trobat amb un petit problema. Res greu però millor deixar constància per possibles oblits posteriors. El fet és que si l'arxiu PHP amb la classe a carregar té un nom d'arxiu amb una majúscula, com ara, nomArxiu.php. La opció lògica
App::import('Vendor', 'nomArxiu');
no funciona com s'esperaria ja que busca un arxiu amb nom nom_arxiu.php -crec que és per tema de compatibilitat amb PHP4- al directori vendors. Així doncs, o toca canviar el nom de l'arxiu -si és possible- o millor donar un cop d'ull a l'API i optar per una opció que permet incluir la ruta relativa a l'arxiu (a l'exemple, comptant que la classe està dins d'una carpeta anomenada classfolder)
App::import('Vendor', 'nomunic', array('file'=> 'classfolder/nomArxiu.php'));