miércoles, 26 de junio de 2013

¿Como traducir nombres de meses en CakePhp?

Buscando en la web la solución a esta interrogante solo encontré dudas y ninguna solución certera.

Así que, me puse a investigar en el código y descubrí lo siguiente:

La clave se encuentra en el archivo \cake\libs\view\helpers\FormHelper.php, en el método: _generateOptions, que es el lugar en donde se encuentran los nombres de los meses en ingles; Allí podemos observar que los nombres de los mese pasan por la función __d() como se muestra a continuación:

$data['01'] = __d('cake', 'January');
...
$data['12'] = __d('cake', 'December');

Estudiando la función function __d($domain, $msg, $args = null), que se encuentra en: \cake\basics.php observamos que el primer parámetro es $domain, que en el caso de los meses es igual a 'cake', por lo tanto y para hacer el cuento corto, nos indica que debemos crear un archivo llamado cake.po en app/Locale/spa/LC_MESSAGES con la traducción de los meses con sigue:

msgid "January"
msgstr "Enero"

.....

msgid "December"
msgstr "Diciembre"


Recomiendo usar un editor como el que se encuentra en: http://www.poedit.net/ para evitar errores, al menos al principio. 

Por último debemos colocar en el core.php de la aplicación una línea como la que sigue:

    Configure::write('Config.language', 'spa');

Nótese que el valor 'spa' debe coincidir con app/Locale/spa/LC_MESSAGES.

Nota: La versión usada de cakePhp es la 2.3.6.

Espero sus comentarios, aportes y preguntas.


domingo, 9 de septiembre de 2012

Listado de tablas MySql

A continuación una simple consulta para extraer el listado de tablas de una base de datos MySql y de paso generar los arreglos de inflectores para cakePhp
select concat('\'',table_name,'\' => \'', table_name, '\',') from information_schema.tables where table_schema = 'BASE DE DATOS' order by table_name
Si te resultó útil por favor comenta.

sábado, 14 de mayo de 2011

Driver wifi Bluetooth ML-1020 SIRAGON

Drivers wifi Bluetooth para la siragon ML-1020

wifi usb dongle, 3dsp bt usb dongle

Aquí:
http://www.stk.com.tw/driver/Wireless/Release_ForUSBWindows/History/Bluewu_3.1.04.20100318_softhotkey_32bitOS(IVT).exe

Para los que no saben como copiar y pegar <<< AQUI >>>

http://www.stk.com.tw/product-01.asp?Product_Type=58

Suerte.
Si te resulto útil, coméntalo.

sábado, 29 de enero de 2011

Conectar CakePhp 13.x com Microsoft Sql Server 2005/2008 usando PHP 5.3.x

El problema es el siguiente: Al usar PHP 5.3.x ya no disponemos de la extensión php_mssql.dll (en las versión 5.2.x no existe este problema), sino de las extensiones php_sqlsrv_53_*.dll (la que mejor se adapte a tu caso), y por lo tanto no podemos conectar a cakephp con mssql usando el driver mssql en el archivo database.php.

Esto se debe a que Bill cambio entre otras cosas la interfaz de la extensión.

La solución es fácil:

Instalar el sql server native client 2008 r2: sqlncli.msi, lo descargas desde aquí o buscar Microsoft SQL Server 2008 Feature Pack, April 2009 y descargar.

Instalar correctamente las extensiones php_sqlsrv_53*.dll, si es posible crear una página php para verificar que en efecto funcionan. Lo descargas desde aquí o buscar Microsoft Drivers for PHP for SQL Server, el objetivo es el archivo: SQLSRV20.EXE.


Descargar el archivo dbo_sqlsrv.php en app\models\datasources desde aquí o busca en google: DboSqlsrv en el site: github.com.
Tambien puede entrar por https://github.com/cakephp/datasources.

Casi listo: Ahora en el archivo database.php colocas el driver => sqlsrv, guardas y pruebas.

No está demás mencionar que debes haber configurado el cakephp correctamente...

saludos y hasta la próxima, espero que esta entrada de blog os sea de utilidad.

viernes, 8 de enero de 2010

Error Batch update returned unexpected row count from update; actual row count: 2; expected: 1

Primero que todo gracias a diós por este nuevo año, por mi y por todos.

Ahora, con respecto al error, se debe a que nhibernate toma en cuenta el rowcount de la instruccion sql para hacer algún tipo de validación y como en mi caso tenia un trigger en la tabla supongo que se altera el rowcount original (o el esperado por nh) y lanza una exception.

Solución: colocar set nocount on al trigger.

Saludos.

viernes, 9 de octubre de 2009

Error org.ajax4jsf.config.ParsingException: No filter mapping set for a filter richfaces

Es de simple solución, pero cuando uno desconoce...

El error se debia a que en el archivo web.xml, en este caso, tenia un filter-mapping con un elemento servlet-name con valor "Faces Servlet" y mas abajo, tenia el elemento servlet con su elemento servlet-name igual a "FacesServlet" (sin espacio) escrito diferente. Una vez igualados los valores se resolvio el problema.

Tambien deben estar iguales los elementos: servlet-name del elemento servlet-mapping.

UBTR.

lunes, 17 de noviembre de 2008

Conectar PHP con SAP

Conectando PHP con SAP

1.- Bájate http://saprfc.sourceforge.net/
2.- descomprime el .zip saprfc-$VERSION$-$PHP_VERSION$.zip
3.- copia el archivo php-saprfc.dll al directorio de extensiones de php (e.g. C:\PHP\ext)
4.- Edita el archivo php.ini y Añade la linea 'extension=php_saprfc.dll'
5.- Si no está copia el archivo librfc32.dll (desde el cd del SAPGUI) al directorio windows system o mejor instala el SAPGUI en la máquina y asegurate de marcar la parte de desarrollo al momento de instalar.
6.- También tienes que activar la extension php_mcrypt.dll: extension=php_mcrypt.dll.

Reinicia apache

Crea la tradicional pagina info.php

<?php
phpinfo();
?>

Ejecútala, busca "saprfc", si lo encuentras vas por buen camino.

Veras algo así:

SAPRFC support enabled
Version 1.4.1
Release date 2005/12/19
RFC Library This RFC library belongs to the SAP R/3 Release *** 640,0,78 *** MT-SL Versions of SAP internal libraries: dptr: 2 ni : 37 cpic: 3 rfc : 3

Nota: Si te da tremendo error y todo se ve mezclado (html con php y javascript) es porque la pagina saprfc_test.php y en general todos los PHP deben iniciar con "<?php" y no solo con "<?"

Saludos y hasta la += 1;