Feeds:
Entradas
Comentarios

Per motius de feina tenia la necessitat d’obtenir una llista a partir de les dades en format Excel que ens extreu l’ERP de l’empresa. Com que Microsoft Office no és una aplicació que toqui massa he hagut de mirar-m’ho ja que tenia una sèrie de requeriments que no m’eren trivials.

  1. En un dels arxius evitar registres repetits
  2. En un altre, agrupar registres per un valor en concret, ordenats alfabèticament

Per realitzar un llistat sempre he utilitzat la funció de Combinar correspondència de Word per obtenir les dades de l’Excel i és el que he fet en ambdós casos, amb les següents particularitats.

1. Evitar registres repetits

Això és una funció que s’ha de realitzar directament a l’Excel i que es troba a Dades » Filtres » Filtre Avançat. Seleccionar les dades i marcar la casella Només registres únics.

Un cop guardades les dades, importar el document Excel amb la funció Combinar correspondència de forma normal.

2. Agrupar registres ordenats alfabèticament

En aquest cas, el primer pas és ordenar alfabèticament per les columnes necessàries. Això també ho podem realitzar directament sobre el full de càlcul d’Excel amb la funció Dades » Ordenar.

El primer valor a ordenar serà l’apartat que agruparà els registres. El segon, si cal, serà segons com volem ordenar els registres que quedin agrupats. Per exemple, si agrupéssim Clients per Província, primer s’ordenaria per Província i després alfabèticament per Clients.

El següent pas és Combinar correspondència a través de Word. Però aqui és quan ens trobem amb el problema d’agrupar els registres a combinar, ja que de la forma bàsica es repetiria a cada registre la Província.

Per fer-ho has d’utilitzar codis de camp que té el word i aquí hi ha un exemple que explica exactament com fer-ho:
http://support.microsoft.com/kb/294686/es#2

Per escriure els parèntesis heu de fer servir CTRL + F9 i podeu mostrar/amagar el codi dels camps de tot el document amb ALT + F9. Podeu trobar més infromació sobre els tipus de camp i modificadors a http://office.microsoft.com/es-es/word-help/CH006104711.aspx

Nota: Els passos a seguir poden variar segons la versió de Microsoft Office. Els explicats corresponen a la versió 2003.

Anuncios

Eclipse és un dels entorns de desenvolupament més coneguts i potents que hi ha. Inicialment pensat per programar en Java, s’han anat creant diversos projectes paral·lels per donar suport a altres llenguatges. PHP no és una excepció i tot i que tenir tota la funcionalitat que volem necessita uns quants passos de configuració, el resultat és un entorn que facilitarà molt la nostra feina.

A continuació es descriuen els passo a seguir per tenir un entorn per desenvolupar PHP mitjançant el projecte Eclipse PDT.

Software utilitzat

–          Eclipse PDT (www.eclipse.org)

Entorn de desenvolupament amb funcionalitat específica per PHP.

–          Plugins Eclipse

Eclipse té multitud de plugins que n’amplien la funcionalitat, en comentem alguns que ens poden ser útils, tot i que no són imprescindibles.

o   Aptana Studio (www.aptana.com)

Aquest entorn aporta moltes eines pel desenvolupament d’aplicacions web. Algunes de les funcionalitats que té són:

§  Assisstència de codi HTML, CSS i JavaScript.

§  Debugging de JavaScript integrat amb Firebug.

§  Suport per populars llibreries JavaScript com jQuery o prototype.

§  Navegació de l’estructura DOM.

§  Transferència i sincronització de fitxers a través de protocols com FTP.

§  Previsualització del codi en els navegadors més populars.

o   EclipseColorer (http://colorer.sourceforge.net/eclipsecolorer/index.html)

Aquest plugin ens aporta un ampli suport en tot el que té a veure amb coloració del codi en edició.

o   Subclipse (http://subclipse.tigris.org/)

Amb Subclipse tenim el control de versions proporcionat per ‘Subversion’ integrat en el nostre entorn de desenvolupament.

–          Xdebug (http://xdebug.org)

Debugger de PHP.

–          XAMPP (www.apachefriends.org)

Entorn de proves per les nostres pàgines web, inclou servidor web Apache i servidor de bases de dades MySQL, entre altres.

Instal·lació

–          XAMPP

Descarreguem la versió que ens interessi segons el sistema operatiu http://www.apachefriends.org/en/xampp-windows.html.

En el cas de Windows, si hem triat la versió amb instal·lador, només caldrà seguir les indicacions en pantalla per tenir tot l’entorn operatiu.

Al instal·lar el XAMPP tindrem disponible un petit taulell de control que ens permet arrencar i apagar fàcilment els servidors que inclou. Per començar, amb l’Apache en tindrem prou ja que porta el mòdul de PHP instal·lat. Més endavant, si treballem amb bases de dades, es possible que també necessitem el servidor MySql.

Per fer servir els servidors podem arrencar-los amb el botó ‘Start’ del taulell de control, o marcar la casella ‘Svc’, la qual cosa ens instal·larà els servidors com a serveis de Windows i ja estaran operatius a l’arrencar el sistema operatiu.

–          Eclipse PDT

Descarreguem la última versió del paquet “tot en un” des de la pàgina del projecte http://www.eclipse.org/pdt/downloads/.

Descomprimim el paquet, en una carpeta i fi de la instal·lació.

Workspace: El primer cop que s’inicia Eclipse ens demana on volem situar el seu directori de treball, per poder visualitzar al navegador el nostre projecte, li indicarem que el workspace és el directori ‘C:\xampp\htdocs’ (pressuposem que hem instal·lat XAMPP a C:\).

–          Plugins Eclipse

Anar a ‘Help’->’Install new software…’. Repetim el procés de prémer el botó ‘Add’ i afegir la url, pels llocs següents:

Aptana: http://download.aptana.com/tools/studio/plugin/install/studio

EclipseColorer http://colorer.sf.net/eclipsecolorer/

Subclipse http://subclipse.tigris.org/update_1.6.x

Un cop tenim les adreces introduïdes, en el desplegable ‘Work with:’ escollim la opció ‘-All Available Sites-‘ i marquem per instal·lar les opcions:

o   Aptana Studio

o   Syntax Highlighting

o   Subclipse (si no treballarem amb control de verions, no cal que l’instal·lem)

Configuració

És interessant que ens configurem l’editor a la mida perquè ens resulti el més còmode possible. Per exemple, per evitar problemes amb accents i símbols complexes, determinarem que els nostres fitxers estiguin codificats en UTF-8. Anem a ‘Window’->’Preferences’ i dins la finestra accedim a ‘General’->’Workspace’. Canviem ‘Text file encoding’ perquè tingui el valor ‘Other’->’UTF-8’.

Després hi ha tota una sèries d’opcions que podem personalitzar en quant a l’edició del codi. Si accedim a ‘Window’->’Preferences’->‘General’->’Editors’->’Text editors’ podrem tocar coses com la mida de l’històric de desfer o la substitució de tabuladors per espais.

Si treballem amb control de versions, ens interessarà que siguin ignorats alguns arxius a l’hora de sincronitzar-nos amb el repositori, com els fitxers de configuració del projecte que fa servir l’Eclipse. Per fer això podem anar a ‘Window’->’Preferences’->’Team’->’Ignored Resources’ i afegim, si no hi son, les extensions “.cache”, “.project”, “.buildpath” i “.settings”.

Una altra eina molt útil a l’hora de crear codi és l’ús de plantilles per a blocs habituals com bucles o declaracions de funcions. Si anem a ‘Window’->’Preferences’->’PHP’->’Editor’->’Templates’ veurem una llista de les plantilles existents. Podem modificar-les o crear-ne de noves. D’aqueta manera quan comencem a escriure el nom de la plantilla dins del nostre codi, ens apareixerà la opció de seleccionar la plantilla i que Eclipse escrigui les línies per nosaltres.

Si hem instal·lat l’Aptana Studio, podem predeterminar els seus editors per treballar amb arxius concrets, com els de CSS o JavaScript. Anem a ‘Window’->’Preferences’ i dins la finestra accedim a ‘General’->’Editors’->’File Association’. Definim com a editor per defecte el ‘PHP Editor’ pels arxius de tipus *.php i *.phtml, l’’Aptana JS Editor’ pels arxius *.js i l’’Aptana CSS Editor’ pels *.css.

Debugar

Per debugar amb l’Eclipse farem servir l’Xdebug.

Per descarregar-lo caldrà anar a la web de l’Xdebug http://xdebug.org/download.php i buscar quina és la versió que hem de fer servir. Per saber-ho farem servir una eina de la mateixa pàgina que ens indicarà la versió del debugger que necessitem.

Anem a la pàgina http://xdebug.org/find-binary.php i copiem a la capsa de text el contingut resultant d’executar la funció phpinfo() en el nostre entorn. Seguim les instruccions que ens dona excepte la de reiniciar el servidor web perquè encara caldrà fer algun canvi més. Els passos seran més o menys els següents:

1.       Descarrega php_xdebug-2.1.0-5.3-vc6.dll (http://xdebug.org/files/php_xdebug-2.1.0-5.3-vc6.dll)

2.       Mou l’arxiu descarregat a ‘C:\xampp\php\ext’

3.       Edita l’arxiu ‘C:\xampp\php\php.ini’ i afegeix la linia:

zend_extension = C:\xampp\php\ext\php_xdebug-2.1.0-5.3-vc6.dll

Encara caldrà canviar algún paràmetre més del fitxer ‘php.ini’. Localitzem el següent valor i el canviem si no està així:

–          xdebug.remote_enable=true

Ara ja podem reiniciar el servidor web per que els canvis tinguin efecte.

Tot seguit provarem el funcionament del debugger. Anem al menú ‘Run’->’Debug Configurations…’ i fem doble clic en la opció ‘PHP Web Page’ de la llista de l’esquerra. Ens apareixerà una nova configuració anomenada ‘New_configuration’ que li podem posar el nom que ens convingui.

En la pestanya ‘Server’ escollim ‘XDebug’ com a ‘Server Debugger’.

En el camp de text ‘File’ escrivim (o busquem amb el botó ‘Browse’) la ruta de l’arxiu que volem debugar, per exemple ‘/test/index.php’.

Guardem la configuració i ja podem començar a debugar el nostre arxiu fent servir breakpoints.

Formateig de codi

Per defecte, les opcions de formateig de codi en PHP són mínimes mentre que són molt extenses per Java. Això es pot solucionar parcialment gràcies a un projecte extern que ens dona unes opcions de formateig de codi semblants a les que tenim per Java.

La web del projecte és http://sourceforge.jp/projects/pdt-tools/ i la instal·lació és tan simple com descarregar el fitxer jp.sourceforge.pdt_tools.formatter.prototype_0.96.3.jar (o la versió més recent disponible) i copiar-lo a la carpeta ‘dropins’ de l’arrel on tenim l’Eclipse. Després de reiniciar l’aplicació, a ‘Window’->’Preferences’->’PHP’->’Code style’->’Formatter’ trobarem totes les opcions.

Amb les configuracions al nostre gust, les dreceres de teclat ‘Ctrl + I’ i ‘Ctrl + Shift + F’ ens formategen el codi.

Una opció molt interessant és que et formategi el codi al guardar un arxiu. Això es defineix a l’apartat ‘Window’->’Preferences’-> ‘PHP’->’Editor’->’Save Actions’ però  un cop més, mentre que per Java hi ha multitud d’opcions, per PHP són pràcticament inexistents i el formateig no està disponible per ara.

Transferències FTP

Per pujar els nostres fitxers a un servidor, podem fer servir qualsevol client FTP. L’Aptana Studio però ens en proporciona un de manera que poguem fer la transferència des del mateix Eclipse.

Obrim la perspectiva ‘Aptana Web’ i en la pestanya ‘File’ que tenim a la part superior esquerra de la pantalla, fem clic amb el botó dret sobre ‘FTP’ i seleccionem ‘Add New FTP Site’.

En la finestra de diàleg que ens apareix, introduïm les dades del servidor FTP al que ens volem connectar i premem el botó ‘Test’ per verificar que ho hem configurat correctament.

Un cop creada la connexió FTP, amb el botó dret podem anar a la opció ‘Transfer Files…’ i ens mostrarà la vista local i remota per poder transferir fitxers d’un lloc a l’altre.

He considerat oportú canviar les URL d’una tenda desenvolupada en Cake per una actualització recent que hi estic aplicant, ja que segons com em podien donar certs problemes.

Així doncs volia passar d’unes URL com ara

domini/name-of-category-c-11.html
domini/name-of-product-p-234.html

on -c- indica que és una categoria i -p- un producte, identificats pel valor numèric, a:

domini/categories/11/name_of_category.html
domini/products/234/name_of_product.html
Seguir leyendo »

És fàcil que a l’hora d’instal·lar un cake ens trobem amb servidors que no tenen activat el mòdul mod_rewrite i per tant les urls netes, del tipus “www.nomweb.com/controlador/accio” no funcionen.

La primera recomanació és demanar que ens l’activin, ja que fer servir aquest tipus d’URLs fa l’aplicació més elegant i és molt útil pels buscadors.

Si pel motiu que sigui no és possible que ens l’activin, no desesperem. Cake contempla aquesta possibilitat i té una alternativa, utilitzar les “pretty URLs”. Canviant un parell de configuracions podrem fer que l’aplicació funcioni amb l’única diferència que les URLs seran del tipus “www.nomweb.com/index.php/controlador/accio”.

Seguir leyendo »

Els components CakePHP et poden facilitar enormement la vida en algunes tasques comunes en les aplicacions web. A més dels components inclosos al nucli de CakePHP, existeixen multitud de components “extra” que poden resultar molt útils -a mi m’ho han estat- i que aniré repassant a mesura que vagi tenint alguns moments.

Començaré per un de molt senzill que, no obstant, acaba sent molt pràctic quan es tracta amb usuaris en una aplicació web. Per aquest aspecte ja comptem amb el AuthComponent de CakePHP, inclòs al nucli i que gestiona l’autenticació d’usuaris. Però, i si volem afegir la opció d’identificar-se automàticament (el típic, “recorda’m la pròxima vegada”)? Doncs podem implementar-ho nosaltres mateixos utilitzant cookies o bé simplement utilitzar un component desenvolupat per Miles Johnson, l’AutoLogin Component.

En un tres i no res els nostres usuaris podran comptar amb la opció de visitar la nostra aplicació web i automàticament iniciar sessió amb el seu usuari. Tot amb una instal·lació molt fàcil i la possibilitat de configurar diferents aspectes com la durada de la cookie.

Ben tornat de les vacances, ja torno a ser aquí per anar deixant cosetes que em semblin interessants. I com no, continuem amb el framework CakePHP.
CakePHP incorpora entre els seus components el component Auth, que si ho desitgem s’encarrega de la identificació d’usuaris de manera fàcil i ràpida. Fins ara només l’havia utilitzat en una aplicació web ja que el component es va incorporar amb la versió 1.2 i les altres aplicacions on havia requerit d’identificació van començar a desenvolupar-se amb la versió 1.1 i utilitzant altres components semblants que feien la mateixa funció i que he conservat encara que les hagi adaptat a noves versions.
Doncs bé, el fet és que m’he trobat amb un petit problema editant la informació d’un usuari que ja havia iniciat sessió a l’aplicació.

Definiré com errors estúpids aquells que arriben a tocar els ous, normalment perquè m’han fet perdre el temps de manera estúpida, buscant solucions cada cop més rebuscades, quan la causa de l’error era una ximpleria.

allowEmpty, en què quedem?

Inauguro aquests errors estúpids amb un de validació. La propietat allowEmpty en una regla de validació marca si aquell valor pot deixar-se en blanc, independentment de la validació aplicada. En versions anteriors la propietat era ignorada si definies la teva pròpia regla de validació per un camp, de manera que s’havia de controlar a la nova regla definida. Però això va canviar -no sé ben bé en quin moment- i em va donar una estona de mals de cap. Així doncs, a vigilar que la propietat allowEmpty i la regla de validació que es defineixi no siguin contradictòries.