Minishowcase es una aplicación sencilla basada en PHP y Ajax que nos permite crear galerÃas de fotos facilmente, sin necesidad de configurar bases de datos o cambiar código.
Tan solo es necesario situar las fotografÃas en un directorio y ya dispondremos de un album, sin necesidad de crear thumbnails ya que Minishowcase se encarga de ello.
Disponible en varios idiomas, nos muestra las imágenes mediante lightbox y nos permite visualizarlas mediante un slideshow. A parte podemos compartir las galerÃas mediante enlaces permanentes. Minishowcase
VÃa / WebAppers
Un gran tutorial que explica cómo crear documentos PDF con Haru, una librería realizada en C que nos permite generar PDFs con texto, líneas e imagenes, añadir enlaces y anotaciones, comprimir documentos, usar TTFs, PDFs encriptados, y muchas cosas más.
El tutorial empieza mostrándonos cómo instalar Haru en nuestro PHP, y luego sigue con una serie de ejemplo sencillos hasta decirnos como añadir shapes o proteger el documento. Dynamically Generating PDF Files with PHP and Haru
Ahora viene la parte más complicada, y digo complicada porque sinceramente he tenido que mirar el código porque algo me fallaba cuando seguía lo que decía la documentación.
El nombre del fichero JSON tiene el siguiente formato [dominio de traducción]-[idioma]-[handler del fichero].json, total nada.
Dominio será el que usemos para traducir, en el ejemplo sería mi-plugin:
__( 'Hola que tal', 'mi-plugin' );
Idioma es el código del idioma, en este caso es_ES
Y por último el handler del fichero es el primer parámetro que usamos en wp_enqueue_script
Lo podemos ver todo en un ejemplo final:
wp_enqueue_script(
'mi-plugin-handler', // El handler mencionado anteriormente
$blocks_script, // Nuestro path
[
'wp-i18n', // De referenciar al menos a wp-i18n
],
);
wp_set_script_translations( 'mi-plugin-handler, 'mi-plugin', plugin_dir_path( __FILE__ ) . 'languages' );
Ya he mencionado anteriormente que CodeIgniter me parece el mejor framework PHP que hay, por lo que considero que los hacks a los que hace referencia el artículo de Nettuts nos pueden venir muy bien a quienes usamos CI:
Autoload de modelos
Prevenir colisión de nombres de controladores y modelos
Validación de formularios con valores únicos
Ejecutar CI desde la línea de comandos
Usar CI para múltiples sitios
Permitir cualquier tipo de ficheros a la hora de subir ficheros
Cuando aprendemos un lenguaje (en este caso PHP) de forma autodidacta o parcialmente (un curso en la empresa), hay veces que usamos lo que conocemos porque con eso nos basta, pero no profundizamos más y nos encontramos con que hay cosas que desconocemos y que nos serÃan de utilidad. Por eso, el artÃculo que paso a traducir, nos puede ser de gran ayuda.
Usa ip2long() y long2ip() para guardar/recuperar las direcciones IP en la base de datos en vez de un string. Un string de 15 posiciones ocupa más espacio, cuanto menos llenemos la BD mejor que mejor.
Valida parcialmente la dirección de email con la función checkdnsrr(). Esta función comprueba que el dominio se corresponde a una dirección IP, asà evitamos que se hayan enviado direcciones de correo con servidores erróneos. En el caso de que la validación de la existencia del email sea necesario.
Si usas PHP5 utiliza las funciones para acceso a MySQL mysqli_* en lugar de mysql_*, ya que están optimizadas.
Aprende lo que te ofrece el operador ternario (?:), te facilitará mucho el desarrollo y la comprensión del código una vez creado.
No reinventes la rueda, antes de meterte a hacer lo que ya está hecho, mira si existe en las librerÃas PEAR.
Usa highlight_file() cuando quieras formatear un texto como código PHP.
Deshabilita los logs de errores con error_reporting(0), a parte de ganar en rendimiento, evitas mostrar querys o paths de scripts. Yo personalmente recomendarÃa que te crearas un buen gestor de errores.
Usa gzcompress() y gzuncompress() para comprimir strings grandes para que no ocupen demasiado tamaño en la BD, por ejemplo en un campo BLOB.
Usa parámetros por referencia (&$param) para poder conseguir que la función te devuelva más valores a parte de que devuelve return.
Intenta comprender completamente las “magic quotes” para evitar que te ataquen mediante SQL Injection.
Algunas veces nos podemos encontrar con la necesidad de incluir un motor de búsquedas en nuestra aplicación web, no me refiero a uno interno, sino a uno que busque dentro de todo Internet.
Normalmente se soluciona mediante un formulario que llama a la página de Google, pero eso puede ser un tanto “feo” y no ser exáctamente lo que buscamos.
Si lo que quieres es un script que llame al API de Google para poder recibir las resultados de una búsqueda a Google y luego mostrarla, verás como se hace en la traducción que hacemos del siguiente artÃculo.