Skip to content

Categories:

CakePHP + plugin jQuery toCheckList

Si voleu fer servir el plugin de jQuery, toCheckList que coverteix els selects múltiples en quelcom més usable i que us funcioni correctament amb el CakePHP, haureu de fer el següent:

  • Al inicialitzar el plugin, fer-ho amb la opció ‘preferIdOverName‘ a false, ja que si no envia les dades al fer el submit sota l’id en lloc del nom del select que és el que espera el CakePHP:

    echo $this->Html->script(‘jquery.toChecklist.min’);
    echo $this->Html->css(‘jquery.toChecklist.min’);
    echo $this->Html->scriptBlock(“jQuery(function()
                   {
                        jQuery(‘#GroupGroup’).toChecklist({ preferIdOverName : false});
                   });
    “);

  • Editar el codi del plugin (fitxer jquery.toChecklist.min.js) i cercar la cadena:
    var checklistDivId='#'+checklistId;
  • Un cop trobada, la substituirem per la cadena:
    var checklistDivId='#'+checklistId.replace(/(\[|\])/g, '\\$1');

    Aquest petit canvi farà que el jQuery no tingui problemes amb els ids de camps que contenten cortxets ‘[]’, com ara els camps que genera el CakePHP que organitza els camps del formulari agrupant els diferents models del formulari en arrays. Un exemple seria aquest data[Group][Group].

Si tot ha funcionat correctament, ja tindrem el plugin reemplaçant els nostre select múltiple per un conjunt de checkboxs amb els estils correctes.

Actualització (10/08/2010):

Si volem fer servir la funcionalitat de cerca (addSearchBox) que proporciona el plugin del toCheckList (molt recomanable si tenim moltes opcions al desplegable), amb el CakePHP, novament haurem de tocar el codi del plugin per fer-ho funcionar:

  • Cercarem aquestes dues línies:

    $(‘#’+jSelectElemId+’_findInList’).css(‘width’,w);
    $(‘#’+jSelectElemId+’_findInList’)

  • I les subtituirem, com ja havíem fet anteriorment, per:

    $(‘#’+jSelectElemId.replace(/(\[|\])/g, ‘\\$1′)+’_findInList’).css(‘width’,w);
    $(‘#’+jSelectElemId.replace(/(\[|\])/g, ‘\\$1′)+’_findInList’)

Posted in Personal, Php.

Tagged with , , , .


Aventures i desventures per fer funcionar la TDT amb Gnu/Linux (Gentoo)

Aquest passat més de juliol em vaig comprar un sintonitzador TDT, – en angls DVB-T -, usb, marca Inves, que estava força bé de preu (49.90 ), però quan vaig arribar a casa i vaig buscar informació sobre si funcionaria amb el meu sistema operatiu, vaig veure que hi havia poca cosa a fer, doncs no hi havia driver per Gnu/Linux, i a més la empresa que fabrica el microxip no tenia pas cap intenció de publicar-ne les especificacions.

Vaig buscar-li un substitut que si que funcionés amb Gnu/Linux i el vaig canviar per un altre sintonitzador de la marca Pinnacle, el PCTV USB Stick (69.90 ).Aquest dispositiu, empra un microxip Empia 2880, que si que està suportat pels desenvolupadors dels mòduls v4l del kernel.

A continuació us detallo els passos que vaig seguir per instal·lar/configurar aquest dispositu. Encara que alguns daquests passos son específics de la distribució que faig servir (Gentoo), crec que poden servir de guia per instal·lar-ho en qualsevol altre distribució:

Primer de tot, com que ja tenia una tarjeta sintonitzadora de televisió analògica en el meu pc, i per tant tenia compilats els mòduls del kernel, per fer-la funcionar, vaig desactivar totes les opcions relacionades amb v4l del kernel, per tal de no interferir en la compilació dels nous moduls.

vinya ~ # cd /usr/src/linux
vinya linux # make menuconfig
|-DEVICE DRIVERS
|- MULTIMEDIA DEVICES
|- VIDEO FOR LINUX [ ]

Hem dinstal·lar el programari de control de versions HG.

vinya ~ # emerge -v hg

Un cop instal·lat, executem:

vinya ~ # hg clone http://linuxtv.org/hg/~mrechberger/v4l-dvb

Que ens baixa el codi font dels moduls de v4l del kernel al directori v4l-dvb. Després ja podem compilar-ho e instal·lar-ho (els moduls ens els deixa a /lib/modules/2.6.x/kernel/drivers/media/dvb):

vinya ~ # cd v4l-dvb
vinya v4l-dvb # make
vinya v4l-dvb # make install

Reiniciem lordinador i carreguem a mà els moduls que farà servir el nostre nou dispositiu:

vinya ~ # modprobe em28xx
vinya ~ # modprobe em2880-dvb

Si tot a funcionat correctament, al log del sistema, veurem quelcom com això:

vinya dvb # dmesg |grep em28
em28xx v4l2 driver version 0.0.1 loaded em28xx 5-3.3:1.0: usb_probe_interface
em28xx 5-3.3:1.0: usb_probe_interface - got id
em28xx new video device (eb1a:2870): interface 0, class 255
em28xx #0: Alternate settings: 8
em28xx #0: Alternate setting 0, max size= 0
em28xx #0: Alternate setting 1, max size= 0
em28xx #0: Alternate setting 2, max size= 1448
em28xx #0: Alternate setting 3, max size= 2048
em28xx #0: Alternate setting 4, max size= 2304
em28xx #0: Alternate setting 5, max size= 2580
em28xx #0: Alternate setting 6, max size= 2892
em28xx #0: Alternate setting 7, max size= 3072
input: em2880/em2870 remote control as /class/input/input2
em28xx-input.c: remote control handler attached
tuner 2-0060: chip found @ 0xc0 (em28xx #0)
em28xx #0: i2c eeprom 00: 1a eb 67 95 1a eb 70 28 c0 12 81 00 6a 22 00 00
em28xx #0: i2c eeprom 10: 00 00 04 57 02 0d 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 20: 44 00 00 00 f0 10 02 00 00 00 00 00 5b 00 00 00
em28xx #0: i2c eeprom 30: 00 00 20 40 20 80 02 20 01 01 00 00 f5 c0 1a 48
em28xx #0: i2c eeprom 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 60: 00 00 00 00 00 00 00 00 00 00 22 03 55 00 53 00
em28xx #0: i2c eeprom 70: 42 00 20 00 32 00 38 00 37 00 30 00 20 00 44 00
em28xx #0: i2c eeprom 80: 65 00 76 00 69 00 63 00 65 00 00 00 00 00 00 00
em28xx #0: i2c eeprom 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx #0: i2c eeprom f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
em28xx-video.c: setting DVB lock
em28xx-video.c: releasing DVB lock
em28xx #0: Found Pinnacle PCTV DVB-T
usbcore: registered new driver em28xx
em2880-dvb.c: DVB Init
/root/v4l-dvb/v4l/em2880-dvb.c: em2880_zl103530_pinnacle_init
DVB: registering new adapter (em2880 DVB-T)

Ja tenim el dispositu funcionant! Ara hem d instal·lar un programa que ens permeti sintonitzar els canals i veure la TDT. Per fer això, ens cal un programa com el kaffeine

vinya ~ # emerge -v kaffeine

Un cop instal·lat, executarem el programa i configurarem els parametres del apartat dvb, bàsicament el repetidor/antena més proper a on estem:

Captura 1

Després daixò, anirem a scanejar els canals de TDT que captem a la nostra zona:

Captura 3

En funció de la cobertura de TDT a la nostra zona, trobarem més o menys canals de televisió o radio digitals. Si heu trobat canals, ja només us queda disfrutar. ;-)

Captura

Notes:
Encara que amb la gentoo, en el portage, existeix un ebuild dels moduls del kernel de v4l (media-tv/v4l-dvb-hg), no le he fet servir, degut a que hem va donar problemes, ja que quan compilaba el codi font que es baixa, tot compilaba bé sense errors, però no em generava el mòdul em2880-dvb.

Espero us sigui dajuda -)

Posted in GNU/Linux.


Edgar

Buscant plugins pel wordpress que permetin saber si un usuari del jabber està connectat em vaig topar amb aquesta pàgina http://edgar.netflint.net/.

L’Edgar es un bot desenvolupat en php, pel servidors de missatgeria instantània Jabber que proporciona una manera senzilla de mostrar una imatge que indiqui el vostre estat del Jabber, (connectat, desconnectat, etc) en una pàgina web .

Teniu més exemples al Howto de l’Edgar

Posted in Personal.


Plugins per al Firefox

Fent un cop d’ull a les extensions disponibles per al Firefox, n’he trobat dos força interessants:

ForeCastFox: visualitza el pronostic del temps al nostre navegador. Es pot configurar per visualitzar el temps de les localitats que vulguem, i ens mostra la previsió fins a 10 dí­es, fent serivr la pàgina de metereologia AccuWeather. Podem configurar el lloc on volem que es mostri, a la barra de menú, barra d’estat, etc.

SessionSaver: ens guarda les pàgines, tabs i fins i tot el que estavem escrivint de les pàgines que tenim obertes, de manera que si tanquem el navegador i el tornem a obrir, ens restaura totes aquelles pàgines, tabs que teniem oberts. També hi ha una opció per tornar a obrir un tab que haguem tancat previament. Molt recomanable.

Posted in GNU/Linux, Personal.


30 Anniversari

Aquest diumenge passat, dia 14 d’Agost, vaig fer 30 anys i la meva xicota em va preparar una festa sorpresa amb la meva familia.

Va guarnir tot el menjador de festa [foto1], [foto2] i em va fer sentir d’allò més bé.

Li agraeixo de tot cor, doncs em semblava que així de canviar el 2 pel 3 no havia de ser fàcil… però gràcies a la seva ajuda i de la meva famí­lia tot va sortir rodó.

Em van regalar roba i una nova camera digital, una Olympus C-480 que substituira a la Olympus C-860 que ja tenia uns quants anys.

T’estimo Imma.

Posted in Personal.


Hola mòn

Benvinguts al meu bloc. Aquest és el meu primer post

Posted in Personal.