10 abril, 2013
Si necesitan marcar todas casillas de verificación en un formulario, pueden utilizar este sencillo script para lograrlo.
$("#boton").click(function(){
$("#formulario").find("input[type=checkbox]").each(function(){
$(this).attr("checked", "checked");
});
});
Solamente indican el ID del botón o link al que desean agregarle la acción y el ID del formulario (o un div que contenga las casillas).
6 febrero, 2013
Puede ser que en algunas ocasiones necesiten crear dinámicamente campos ocultos en un formulario, o mejor aún, un arreglo de campos ocultos, y según alguna acción que realize el usuario se vayan agregando valores a este arreglo, luego ustedes procesan el formulario como lo deseen. Si este es su caso, este pequeño código les puede ser muy útil:
var $campo_oculto = $('',{type:'hidden',value:elvalor,name:'ocultos[]'});
$campo_oculto.appendTo('#formulario');
En value colocan el dato que desean asignar al arreglo y name es el nombre del campo oculto, recuerden que tiene que ir con parentesis cuadrados para que el formulario lo procese como un arreglo , Esto pueden colocarlo en una función o un onclick de algun botón.
Espero que les sea de utilidad!
21 octubre, 2012
Opencart es una excelente plataforma que te permite desarrollar sitios de ecommerce o carritos de compra de una manera fácil y rápida. Viene con numerosas librerías y herramientas que facilitan el desarrollo, es muy extensible y el código esta estructurado a manera de MVC, así que resulta muy cómodo modificarlo y adaptarlo a tus necesidades.
En el sitio oficial hay gran cantidad de extensiones que puedes utilizar para agregar funciones adicionales o extender las ya existentes.
He tenido que integrar en varias ocasiones métodos de pago con tarjeta de crédito en sitios web, utilizando específicamente la plataforma de pago de VPOS del proveedor Alignet que utiliza el Banco Nacional de Costa Rica. El proceso de integración siempre es el mismo, lo que varían son los parámetros y llaves.
Por esta razón desarrollé una Extensión de Alignet para de Opencart que puedes instalar en tu carrito de compras si necesitas hacer una integración con Alignet, y así ahorrarte todo la programación que esto conlleva. Lo único que necesitas es instalar la extensión y configurarla, llenando los campos con los datos especificos que Alignet da para el comercio. Existe un Modo de Pruebas que se puede activar cuando te encuentras en etapa de Testing y necesitas ver los valores retornados por el VPOS.
Los pasos par la instalación se encuentran en la página de la extensión, pero igualmente los detallo aquí:
- Descargar la extensión aquí.
- Copiar la carpeta admin y catalog a la raíz de tu carrito de compras.
- Copiar el archivo vpos_plugin.php dado por Alignet a la carpeta vpos.
- Pueden copiar las llaves en la carpeta keys dentro de vpos.
- Instalar la extensión en el Panel de Administración del Opencart.
- Configurarla según los parámetros provistos por Alignet.
Las rutas del plugin y de las llaves tienen que ser absolutas. Pueden usar la variable global $_SERVER['DOCUMENT_ROOT'] para obtener la ruta raiz de su sitio web.
Si tienen dudas con la instalación pueden preguntar aquí.
29 diciembre, 2010
En muchos sitios web, como en los carritos de compra, es necesario obtener el tipo de cambio asociado a una moneda, ya sea para calcular el precio o para fines informativos. Muchos sistemas ya incluyen esta funcionalidad, y lo más usual es que sea el mismo administrador el que tenga que estar actualizando este dato.
Lo más optimo es obtener este valor de alguna fuente confiable, ya que se desea que este dato esté actualizado. Por lo general la mayoría de los Bancos ponen a disposición algún tipo de servicio web por el cual se pueden obtener estos valores.
En mi país (Costa Rica) el Banco Central dispone de un WebService que se puede utilizar para obtener el tipo de cambio actual. Hay varios métodos para obtener estos datos, dependiendo del lenguaje en que se este desarrollando, en esta ocasión les voy a explicar como hacerlo en PHP, y para facilitarles el trabajo pongo a su disposición una clase en php donde solamente indican el valor que desean (compra o venta) y esta se los retorna. Esta clase funciona específicamente para consumir el WebService del Banco Central de Costa Rica, pero es completamente adaptable para utilizar cualquier otro servicio, ya que los métodos que utiliza son los que generalmente se usan para obtener datos por este medio.
Para utilizar la herramienta esto es lo que tienen que hacer:
- Descargar los archivos necesarios (estos incluyen la clase y la librería nusoap si se desean obtener los datos con SOAP)
- Incluir la clase en el archivo que deseas utilizarla
- Obtener los datos de esta manera:
require_once("Indicador.php");
$i = new Indicador(true);
$valor = $i->obtenerIndicadorEconomico(Indicador::VENTA);
El constructor de la clase Indicador recibe como parámetro un booleano que indica si los datos se van a obtener por medio del método SOAP (si no lo indicas por defecto es falso). Esto depende mucho del servidor donde se encuentre tu sitio web, ya que algunos no permiten utilizar la función de file_get_contents (usada con el método GET) por razones de seguridad, en este caso es cuando necesitas obtener los datos con SOAP (es importante que siempre incluyas bajo el mismo directorio donde está la clase Indicador.php la carpeta /soap que contiene los archivos necesarios para utilizar este método).
La función obtenerIndicadorEconomico recibe como parámetro el tipo de cambio que se desea, estos son valores constantes definidos en la misma clase, por lo que para indicar si deseas el valor de la Venta pasarías por parámetro Indicador::VENTA y para la compra Indicador::COMPRA.
Con esto ya obtienes el valor del tipo de cambio actualizado. Yo recomiendo programar algún tipo de cronjob o algo por el estilo para guardar este valor en base de datos, y no estar accesando al WebService cada vez que se ingresa al sitio web.
Como siempre los archivos y el código están siempre disponibles.
11 marzo, 2009
Una de las mejores herramientas para mantener un control de versiones de tus proyectos es sin duda Subversion, que utilizado con un cliente de versionado como Tortoise nos facilitan la tarea de desarrollo en grupos de trabajos.
Usualmente en un ambiente de oficina es normal tener un servidor de versionado local que sirve de repositorio de datos para los distintos proyectos, además de utilizarse como medio de respaldo para estos. Pero que si necesitas trabajar de forma remota un proyecto con algún compañero? (algo que tuve que hacer!); después de buscar un poco en la web encontré un excelente sitio que nos da este servicio: Code Spaces en su paquete gratuito nos ofrece un hosting de 50Mb que incluye 1 repositorio de subversion para 2 usuarios y 1 proyecto, este mismo se puede actualizar después a los paquetes Micro ISV, Small Team, Large Team o Enterprise que tienen características mas avanzadas para proyectos mas grandes.
El servicio es muy fácil de utilizar, ya que después de creada la cuenta solamente creas tu repositorio y utilizas la url que te dan en el cliente svn que uses. Además que tienes a tu disposición un buen panel de administración con todas las estadísticas del repositorio, en este puedes crear proyectos, asignarles usuarios y configurar tu cuenta en general.
Además tienes la opción de asignar tareas a los miembros del proyecto y darles seguimiento (algo así como un Bugzilla), puedes incluso crear un portal para tu proyecto, una wiki o un foro.
Así que si estás buscando hosting para subversion, sin duda te recomiendo que te des una vuelta por Code Spaces, totalmente recomendado!
22 enero, 2009
¿ Alguna vez han necesitado generar un script de la base de datos en SQL Server ? No me refiero a solo el esquema, ya que esto se puede hacer fácilmente en SQL Server 2005, sino también a los datos.
Se que es posible crear un respaldo de la base de datos con toda esta información, que es una de las opciones mas utilizadas, pero todos sabemos que el backup solo puede ser leído y restaurado en un servidor MS SQL, y realmente no podemos leer el contenido de este. Pero que tal si quisieramos tener también un respaldo del esquema y además de todos los datos, procedimientos almacenados, funciones y todos los objetos de la base de datos, pero en formato
SQL.Para el desarrollo de una aplicación necesitaba solamente la estructura de algunas tablas, lo cual se solucionaba con el asistente que facilita SQL Server 2005, pero además de esto también ocupaba todos los datos de estas tablas. Me extraño que el
Management Studio no tuviera esta opción, ya que me parece algo sumamente necesario, que puede ser de gran ayuda para realizar migraciones o tener respaldos de ciertos scripts en la base datos. Además, en otros gestores de base de datos como
MySQL realizar esto es una tarea muy básica y sencilla!
Pues mis sueños frustrados por encontrarle mas pulgas a los productos Microsoft no se hicieron realidad…!, ya que SQL Server si posee una herramienta para realizar esta tarea, solamente que no viene incluida en la Base de Datos, ya que es necesario descargarla por separado (como era de esperarse…)El
SQL Server Database Publishing Wizard nos permite generar scripts completos de todos los objetos de la base de datos y copiarlos o guardarlos en archivos.
Por medio de un asistente podemos elegir si deseamos generar los scripts solamente del esquema, datos, procedimientos almacenados, funciones, etc. El asistente es muy intuitivo y fácil de utilizar, además se integra fácilmente con el Management Studio, Visual Studio 2005 o Visual Web Developer 2005.
Funciona perfectamente en SQL Server 2000/2005/2008. Pueden descargarlo en la
pagina oficial, y lo mejor es que es gratuito! (aunque no lo crean,…). En definitiva es una herramienta necesaria y recomendada para cualquier desarrollador o administrador de base de datos.
22 diciembre, 2008
Algo muy útil que permite el CodeIgniter es utilizar “URLs limpias”, lo que hace esto es quitar cualquier nombre de archivo y extinción al final de la URL, inclusive los parámetros enviados por GET, con lo que obtenemos URLs limpias y fáciles de aprender.
Por ejemplo, usualmente en sitios dinámicos tenemos la dirección: www.midominio.com/paginas.php?num=54 , en CodeIgniter se vería algo así: www.midominio.com/index.php/paginas/num/54. Eso limpia bastante la URL, y cumple con el patrón de diseño MVC. Para ver como trabajan las URLs en CodeIgniter pueden consultar la referencia del framework.
Como pudieron ver por defecto es necesario incluir el index.php en la URL, pero esto se puede modificar fácilmente, y después de buscar cual es la mejor manera que funciona en la mayoría de los casos, aquí se las dejo:
-
En la raiz de su sitio crean un archivo en blanco que se llame .
htaccess, lo abren con un editor de texto y copian esto:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
ErrorDocument 404 /index.php
Si están trabajando su aplicación dentro de un directorio en su servidor tienen que cambiar la línea donde esta el index.php?/$1 y anteponer el nombre del directorio (midirectorio/index.php?/$1). Tomen en cuenta que esto funciona para servidores que corren Apache y que soportan estos archivos de configuración.
Cualquier duda o consultan pueden comentarlo
20 diciembre, 2008
Hace unos meses empeze a trabajar en un sitio web que necesitaba un cliente, era basicamente un sitio de busqueda de propiedades con un backend en donde se agregaran dichas propiedades. Se necesitaba una solución rápida, obviamente que sin dudar elegí LAMP (Linux,Apache,MySQL,PHP). El problema es que el proyecto lo necesitaba trabajar en conjunto con alguien que no tenia nada de experiencia con PHP, y tampoco se contaba con el tiempo para una capacitación extensiva sobre el lenguaje, así que se me ocurrió utilizar algún tipo de framework para PHP que pudiera acelerar el proceso.
Yo había oído sobre frameworks javascript o AJAX, y rara vez oí mencionar que existían también en PHP. Uno de los candidatos fue CakePHP, al cual no le tome mucha importancia ya que no poseía tanta popularidad como CodeIgniter, en donde hablaban muy bien en los reviews que leí, y además me llamo mucho la atención el gran parecido que tiene en estructura con Ruby-On-Rails. Básicamente el framework es una librería con muchas funciones en PHP predefinidas que hacen mas rápido el desarrollo en esta plataforma, sin que sea necesario que tengas un conocimiento amplio sobre el lenguaje, además de muchas funciones para conexión con bases de datos y consultas SQL que también facilitan el desarrollo.
La instalación es sencilla, tan solo se descargan los archivos y los copian en su servidor. Lo mejor es que en el sitio de codeigniter tienen una excelente documentación, además de videos introductorios, tutoriales y muchas referencias a las funciones del framework. Para empezar hay que configurar algunos ficheros, principalmente el de base de datos, estos son unos puntos importante para tener en cuenta:
-
Para establecer los parámetros de conexión a la base de datos tienen que editar el archivo que se encuentra en: system/application/config/database.php en donde ingresan los datos de conexión a su servidor.
-
Tienen que indicar que van a utilizar una base de datos, para esto editan el archivo ubicado en: System/application/config/autoload.php y buscan esta linea: $autoload['libraries'] = array(”); y la remplazan por esta otra: $autoload['libraries'] = array(‘database’);
El framework además tiene la capacidad de hacer scaffolding, en donde se ve su parecido con RoR y me parece genial para realizar un mantenimiento rápido de la base de datos, es fácil usarlo:
La intención no es darles toda una capacitación sobre CodeIgniter, ya que el sitio oficial cuenta con todo lo que necesitan saber, solamente les dejo los consejos anteriores para que los tengan en cuenta
.
Si ya saben y tienen experiencia con PHP les va a resultar extremadamente sencillo y entretenido usar CodeIgniter, aunque para mi la experiencia fue muy interesante y diferente, al final sigo prefiriendo usar PHP puro (por así decirlo…), recomiendo mucho codeigniter si quieren desarrollar sitios rápidamente, y si no tienen experiencia con PHP también es una buena opción, pero les recomiendo mejor que primero investiguen un poco sobre PHP en esencia para que tengan una mejor noción de sobre que están trabajando y que además sepan bien como modificar el código si tuvieran que hacerlo.
Finalmente el resultado fue muy alentador y gusto mucho al cliente. Cualquier pregunta duda o comentario sobre el framework pueden postearla acá!
5 agosto, 2008
Ruby On Rails es un excelente punto de partida para entender el patron de diseño MVC en web, y el framework cuenta con muchas herramientas que facilitan tu trabajo, te ahorran tiempo y te ayudan a desarrollar aplicaciones web muy rápidamente. Un ejemplo de esto es la funcionalidad de scaffold incluida en Rails, que con solo unos cuantos comandos puedes generar tu modelo, vista, controlador y hasta crear la tabla en la base de datos. Además, siguiendo la teoría de CRUD, el comando de scaffold genera además toda la gestión para crear, eliminar, editar y mostrar los datos del modelo en que se esta trabajando, por lo que ya tienes las funciones básicas de un mantenimiento a una tabla, esto es muy útil y te ahorra mucho tiempo.
Explicare como hacer esto en unos simples pasos, si todavía no has instalado Ruby On Rails en tu máquina local, te recomiendo que sigas las instrucciones que vienen en el sitio oficial. También puedes seguir los tutoriales básicos que tienen, para que tengas una idea mas general de como funciona Ruby.
A partir del lanzamiento de Rails 2.0 ha cambiado un poco la manera en que se realiza el scaffold, por lo que si has seguido anteriormente tutoriales que utilizan versiones anteriores a esta, te veras un poco confundido, por lo que aquí explico como hacerlo correctamente en 4 sencillos pasos:
-
Generar la aplicación:
$ rails aplicacion
- Usando tu editor de texto, abre el archivo database.yml ubicado en \mi_aplicacion\config y configurarlo con tus credenciales de la base de datos. En mi caso estoy usando MySQL, ten en cuenta que por razones de convención, RoR necesita crear 3 bases de datos. Es importante que el nombre de cada una sea el mismo seguido de production, development o test:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: mysql
encoding: utf8
database: your_db
username: root
password: your_pass
socket: /tmp/mysql.sock</code>
- Crear las bases de datos
- Generar la estructura con scaffold. Noten que después de scaffold sigue el nombre del modelo (tabla) seguido de las columnas y el tipo de dato:
$ generate scaffold User
- Crear las tablas en la base de datos:
Listo! Ahí tienes una aplicacion lista para ser ejecutada, obviamente es un poco sencilla, pero muestra básicamente lo que puedes lograr utilizando esta herramienta y toda el tiempo que te ahorras también.
Si quieres ver tu aplicacion en acción solamente corres tu servidor web que tienes configurado para RoR, en mi caso estoy utilizando el WEBrick, que ya viene incluido en el framework. Puedes arrancarlo de la siguiente manera
$ rails server
Luego te vas a tu explorador preferido y escribes la ruta hacia tu aplicacion, en el caso de nuestro ejemplo es: http://localhost:3000/datos. Y a partir de ahí todo se explica por si mismo, te sorprenderá ver todo lo que hiciste en tan solo unas cuantas líneas de código. Es importante que después (como todo geek) te pongas a examinar un poco el código para ver que hay detrás de todo esto y como funciona.
24 abril, 2008
Después de oír varios comentarios positivos sobre Ruby-On-Rails decidí montarme sobre los rieles (que patético suena
…). Hace varios meses estuve leyendo un poco sobre esta tecnología, pero empecé a desarrollar en PHP y la verdad fue amor a primera tipeada… Pero después de ver que Rails esta de moda, y que todo el mundo lo esta usando, pues no quiero quedarme atrás, ni dejarlos a ustedes atrás, así que tratare de ir posteando frecuentemente sobre mi experiencia y lo que voy aprendiendo.
Para resumirles en dos palabras: Es Genial!
Ruby-On-Rails no es un lenguaje de programación, es una librería o marco de trabajo, como les había comentado en mi post sobre librerías javascript, y esta programado utilizando el lenguaje Ruby, del cual no hay que preocuparse mucho si sabes o no de este, ya que es poco el código en ruby que utilizas, ademas es totalmente Web 2.0. Esta desarrollado bajo un paradigma MVC (Modelo-Vista-Controlador)… Ok, ya esta parte se esta poniendo muy técnica, si quieres mas detalles “técnicos”, en la web de Rails hay excelente documentación al respecto, pero si quieres saber primero en que te estas metiendo, te lo explico rápidamente.
Lo de MVC, es mas que todo que el código esta separado de la interfaz(gráfica)y de los datos, algo parecido al desarrollo en capas, esto hace que sea mucho mas rápido desarrollar aplicaciones web (que para eso es que esta diseñado Rails) y que pases menos tiempo escribiendo código, y mas pensando en la lógica del sitio. Lo mejor es k Ruby-On-Rails te genera toda la estructura (directorios) del sitio de forma automática, y ya tienes un marco de trabajo (framework…) sobre el cual trabajar.
Les diré que la instalación es un poco tediosa, aunque existen herramientas como Instant Rails que traen ya todo lo que necesitas, y es solo de copiar y pegar, o si quieres puedes instalar los componentes por separado (como hice yo, haciendo caso de mi lado geek…
).
Por el momento eso es lo que les puedo contar sobre Rails, apenas estoy empezando, pero ya lo tengo instalado y configurado en mi casa, así que en mis ratos libres tratare de hacerle a la geekeada, y ahí les iré contando mi progreso. Perdonen mi ausencia por mas de un mes, he estado ocupado en varios asuntos pero esperemos volver a la carga de nuevo
.