Cómo reparar wp_redirect cuando no funciona

Cómo reparar wp_redirect cuando no funciona

Como sabes, he desarrollado muchísimos sitios web con WordPress ya que es un CMS (content management system) muy fácil de usar y es ideal para programar funcionalidades personalizadas según las necesidades de cada cliente. Hace poco, estuve desarrollando un plugin y me encuentro que wp_redirect está teniendo un comportamiento inesperado y si te ha pasado este problema antes, acá te explico cómo reparar wp_redirect cuando no funciona.

WordPress sin duda es muy poderoso y el líder absoluto a nivel mundial para la creación de sitios web, pero cuando queremos ir más allá, puede ser que algunas cosas no funcionan como esperamos o necesitamos ajustar nuestro código recurriendo a algunos trucos.

wp_redirect es una función nativa de wordpress que nos permite redireccionar a otra página. En la documentación podemos encontrar la definición de los parámetros que recibe esta función.

Sólo el primer argumento es requerido y es la URL a donde queremos redireccionar la respuesta que vamos a visualizar.

El problema es que la función wp_redirect() no detiene la ejecución automáticamente sino que una vez llamada, sino que continúa la ejecución normal del script. Para solucionar esto debemos agregar el llamado a exit;justo después de llamar a wp_redirect(), de esta manera podemos detener la ejecución del script y esperar la respuesta de la función wp_redirect.

Veamos un poco cómo vamos a usar wp_redirect, y cómo debemos inmediatamente usar exit

Es un poco extraño pensar que la ejecución se va a mantener en curso pero así sucede. Si tienes problemas utilizando esta u otras funciones no dudes en escribirme y te daré una mano.

¡Hasta un próximo post!

Como crear archivos PDF con PHP Laravel 5.x

Estoy usando una librería que me llamó mucho la atención para generar PDF a partir de una view PHP Laravel 5.x

El plugin en cuestión es: https://packagist.org/packages/mpdf/mpdf

Añade esto en tu composer.json

Y actualiza

Crea un archivo php para colocar el snippet que está abajo. Yo estoy usando Helpers para guardar esto.

De esta forma tienes un Wrapper de mPDF para usar en Laravel 5.x

Puedes usarlo de esta forma:

¡Hasta un próximo post!

Lowercase y Uppercase no son suficientes

Lowercase y Uppercase no son suficientes

Javascript es un lenguaje muy potente y versátil, nos permite expandir las posibilidades de uso al máximo de nuestras necesidades y creatividad. Muchas veces las funciones de Lowercase o Uppercase no son suficientes a la hora de formatear contenido, cuando todo está en mayúsculas y necesito que tenga formato de título, es decir, la primera letra en mayúscula.

Todos los objetos en JavaScript tienen una propiedad especial llamada prototype que es una referencia a otro objeto simulando una herencia (recordemos que en JavaScript no existe la herencia basada en clases), si queremos agregar métodos o propiedades a un objeto podemos hacerlo mediante el prototype, esto es muy útil para encapsular y reutilizar el código, dando la posibilidad de adaptar tus códigos al diseño orientada a objetos.

Ahora volviendo un poco al propósito de este Post, cuando necesitamos usar un Title Case para que cada palabra comience con mayúscula, este método fue creado precisamente para solucionar este problema.

A continuación les dejo una solucion para javascript de Title Case.

Si quieres que sea una función nativa de String podríamos agregarlo en prototype:

Si probamos la función anterior tendremos:

¿Donde más podemos usarlo?

Esta solución puede ser nuestro mejor aliado si tenemos un poco de ingenio. Podríamos aplicarlo en Handlebars.js, un motor de plantillas muy popular, potente y fácil de utilizar separando el diseño HTML del resto de tu Javascript, para así escribir código mucho más limpio. Este motor de plantillas permite crear o customizar funciones por medio de helpers.

Podemos registrar un helper en Handlebars.js que permita aplicar el método aprendido más arriba:

Si probamos el helper declarado anteriormente tendremos:

¿Sabes de algún otro lugar donde las funciones de Lowercase o Uppercase no sean suficientes y necesitas usar un formato de Título?

Espero les sea tan útil como a mi.

¡Hasta un próximo post!

Configuración esencial de Grunt

Hace algunos años atrás un desarrollo requería añadir en nuestro proyecto de producción muchísimas hojas de estilo, scripts en javascript, e imágenes de diferentes tamaños. Esta cantidad de requests consumen muchísimo tiempo de carga en el servidor y de descarga del lado del browser, además, Google comenzó a penalizar en su Page Rank las páginas no optimizadas.

Luego se comenzó a escribir todo en 1 solo archivo CSS o JS, solucionando la cantidad de requests y obteniendo archivos enormes que hacían sumamente tedioso el mantenimiento de estos archivos.

Al pasar del tiempo y buscando soluciones, se comenzó a minificar los archivos para mantener todo en 1 solo archivo y optimizando el tamaño de los mismos, de igual forma no se lograba solucionar la facilidad de mantenimiento.

Hasta que finalmente comenzaron a salir a la luz los preprocesadores como LESS, SASS, COFFEE SCRIPTS entre otros, estos permiten optimizar los estilos y scripts para luego ser compilados y obtener archivos minificados, optimizados y de fácil mantenimiento en el tiempo.

Pero surge otro problema, hacer esta compilación y minificación constantemente consume muchísimo tiempo y durante el tiempo de desarrollo se convierte en algo tedioso de realizar por ser una tarea repetitiva.

Por ello se buscó optimizar y automatizar estas tareas, llegando asi GRUNT a solucionar esta labor, empleando menos horas de trabajo en tareas repetitivas como minificación, compilación, pruebas unitarias, validaciones, etc. Utilizando NodeJS como motor de compilación, y un archivo de configuración, es capaz de realizar múltiples tareas en paralelo y de forma asíncrona, al igual que añadir nuevas mejoras y plugins de forma facil ya que basicamente es Javascript.

Las configuraciones son variadas y dependen del desarrollo en el cual te encuentres, a continuación te dejo una configuración básica para cualquier proyecto.

Y por supuesto, si le sacaste provecho a este post, ¡no olvides compartirlo en tus redes sociales!

¡Hasta un próximo post!

Try Git

Para aquellos que quieren iniciarse en GIT, siempre les recomiendo este enlace:

Es un excelente acercamiento e iniciación.

¡Hasta un próximo post!

Primeros pasos con GIT

Hoy en día cualquier desarrollador debe conocer git, es una herramienta indispensable para todos, puede parecer abrumador pero realmente no lo es. Git es realmente extenso, pero en el uso diario necesitas de algunos pocos comandos.

Instalando Git

Lo primero que necesitas para comenzar con Git es instalarlo. En este caso vamos a usar Ubuntu para hacer la instalación. Abre el terminal y escribe:

Configuración la información global

A continuación, tenemos que introducir los datos de usuario. Lo más importante es el nombre de usuario y el correo electrónico. Esta configuración es importante debido a que si hay 20 personas involucradas en un mismo proyecto, es necesario poder identificar  si un determinado usuario ha introducido determinadas modificaciones en algún archivo. Ahora, para actualizar el nombre de usuario y el correo electrónico, escriba lo siguiente en la ventana de terminal:

Para chequear que todo ha quedado bien escribimos:

Con esto, hemos terminado con toda la configuración mínima necesaria para empezar a trabajar con git. Esta configuración se realiza una sola vez y no es necesario hacerlo cada vez que comencemos un nuevo proyecto.

¡Hasta un próximo post!

Generar QR Code con Google Charts

Generar QR Code con Google Charts

Como desarrolladores sabemos que los códigos QR permiten interactuar con el mundo a través de un teléfono inteligente, podemos generar QR Code con Google Charts muy fácilmente.

Hoy en día, los códigos QR se pueden ver en folletos, carteles, revistas, etc. Permiten de una forma rápida y sencilla de almacenar información que luego puede ser interpretada por nuestro teléfono inteligente.

Al escanear un código QR utilizando el teléfono inteligente, se obtiene un acceso inmediato a su contenido. El lector de código QR puede realizar una acción, como abrir el navegador web para una URL específica, abrir una aplicación, desbloquear una bicicleta, realizar un pago y una infinidad de acciones posibles.

Depende del lenguaje hay dependencias que te permiten manejar la generación de estos códigos, el problema muchas veces es que para poder implementar algo tan sencillo, requerimos de la instalación de varios repositorios, dependencias, paquetes, configuraciones y tener habilitado nuestro servidor para poder generarlos. ¿Qué problema no?

Bueno, buscando una forma de poder generar fácilmente y evitando toda la configuración anterior, encontré una solución donde podemos generar QR Code con Google Charts fácilmente.

Tenemos una URL http://chart.apis.google.com/chart la cual debemos pasarle por query params los siguientes argumentos:

  • cht: Indica el tipo de gráfico que queremos mostrar, para nuestro caso sería qr.
  • chl: Es el contenido en String que queremos como contenido de nuestro código QR.
  • chs: Es el tamaño width, height qué deseamos para nuestro código.

Todos los argumentos son requeridos así que no olvides enviarlos todos.

Este sería un ejemplo de QR que apunta a este mismo post.

Si te gustaría conocer más sobre los argumentos que acepta esta api puedes revisarlo en la documentación de Google Charts

Si te ha parecido útil, compártelo con tus amigos en tus redes sociales.

¡Hasta un próximo post!

Ruby on Rails RVM en Ubuntu 14.04

Instalar RoR en Ubuntu 14.04 via RVM es sumamente facil pero hay una libreria nativa que da errores al instalar y para eso es este post, vamos a solucionar ese problema. Vamos con lo primero.

Instalamos RVM y Ruby (en este momento la ultima estable de Ruby es v2.3.0)

Como en Python tenemos un virtualenv, aqui en Ruby tenemos la oportunidad de usar un Gemset para cada proyecto.

Antes de instalar Rails vamos a instalar Nokogiri

Ahora vamos con Rails, la ultima version estable es v4.2.5

Eso es todo, espero les quite muchos dolores de cabeza al momento de compilar una librería nativa.

¡Hasta un próximo post!