Logré obtener un grado A en compresión Gzip en YSlow con el siguiente código de configuración: Continue reading
Category Archives: Programación
Permitir a los contribuidores de WordPress subir archivos
Hola a todos, hoy les traigo un tip muy interesante para WordPress. Si eres de aquellos que necesita revisar los posts de la gente que colabora contigo antes de publicarlos, necesitas darles acceso de Contribuidor. Y si tienes bloggers invitados, también debes darles ese acceso. Pero el problema es que los contribuidores no pueden subir archivos a su post. AsÃ, los contribuidores deben auxiliarse de sitios de terceros para subir archivos, lo que hace poco atractivo animarse para contribuir con tu blog. Continue reading
Error de entrada/salida al subir imágenes en WordPress
Las causas de este error pueden ser varias y están intimamente ligadas a los permisos. Les explicaré mi solución en particular: Continue reading
Archivo no encontrado en archivo existente
En uno de mis blogs estuve utilizando la librerÃa timthumb.php para cambiar el tamaño de las imágenes. Resulta que la librerÃa funcionaba perfectamente en la máquina local y en otro servidor, pero no funcionaba bien en el servidor donde estaba alojado el sitio del que les estoy hablando. Entonces indiscutiblemente concluà que era un problema especÃfico de configuración en el servidor y me puse a investigar. Continue reading
El tipo de archivo no se ajusta a las directivas de seguridad. Prueba con otro.
A partir de WordPress 2.9, la subida de cualquier tipo de archivo que no se encuentre en una lista está desactivada. Previamente a esa versión, en WordPress existÃa un bug mediante el cual se podÃa subir un archivo .php. Es por eso que ahora el poder subir archivos de ciertos tipos está deshabilitado aunque seas administrador. Continue reading
Javascript: Cómo sumarle dÃas a una fecha
A continuación les muestro un ejemplo donde utilizo dos datepickers de jquery para demostrar cómo sumarle dÃas a una fecha. Cuando selecciono una fecha en el primer date picker, el segundo se actualiza con una fecha siete dÃas después de la fecha en que se ha seleccionado el primero. Los detalles de cómo se hace los dejo comentado en el código. Mira el demo en este enlace.
<!DOCTYPE html> <html> <head> <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script> <script>
$(document).ready(function() {
$("#datepicker").datepicker({
onSelect: function(dateText, inst){
//604800000 Es el equivalente en milisegundos a 7 dÃas. Se obtiene multiplicando 24 horas por 60 minutos
//por 60 segundos por 1000 milisegundos por la cantidad de dÃas deseada
var p = new Date(Date.parse(dateText) + 604800000);
//p cotiene la nueva fecha. Ahora la desbaratamos en un valor string en formato mm/dd/aaaa
var curr_date = p.getDate();
var curr_month = p.getMonth();
//Date.getMonth() me devuelve los meses del 0 al 11, asà que hay que aumentarle 1 para obtener el mes real
curr_month++;
var curr_year = p.getFullYear();
//armamos nuestro nuevo string para ajustar el valor del segundo datepicker
var newdate = curr_month + "/" + curr_date + "/" + curr_year;
$("#datepicker2").datepicker("setDate", newdate);
}
});
$("#datepicker2").datepicker();
});
</script> </head> <body style="font-size:62.5%;"> <div type="text" id="datepicker"></div> <div type="text" id="datepicker2"></div> </body> </html>
Obtener la altura del documento (cross-browser) IE, FF, Chrome, etc
La siguiente función retorna la altura de cualquier documento sin importar el navegador. Ha sido probada en IE6/7/8, FF2/3, Safari (Windows), Google Chrome y Opera 9.5:
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
Convertir Arrays a variables rápidamente en PHP

Hay dos formas de convertir una cadena separada por comas a variables, una larga y una corta, y les muestro cóm0 a continuación:
La forma larga:
$miCadena = 'Un nombre,una direccion,otra direccion,un telefono,un codigo postal';
$miArreglo = explode(",", $miCadena);
$nombre = $miArreglo[0];
$direccion1 = $miArreglo[1];
$direccion2 = $miArreglo[2];
$telefono = $miArreglo[3];
$codigoPostal = $miArreglo[4];
echo "<strong>Nombre: </strong>" . $nombre . '<br />';
echo "<strong>Direccion 1: </strong>" . $direccion1 . '<br />';
echo "<strong>Direccion 2: </strong>" . $direccion2 . '<br />';
echo "<strong>Telefono: </strong>" . $telefono . '<br />';
echo "<strong>Codigo postal: </strong>" . $codigoPostal;
La forma corta:
$miCadena = 'Un nombre,una direccion,otra direccion,un telefono,un codigo postal';
list($nombre, $direccion1, $direccion2, $telefono, $codigoPostal) = explode(",", $miCadena);
echo "<strong>Nombre: </strong>" . $nombre . '<br />';
echo "<strong>Direccion 1: </strong>" . $direccion1 . '<br />';
echo "<strong>Direccion 2: </strong>" . $direccion2 . '<br />';
echo "<strong>Telefono: </strong>" . $telefono . '<br />';
echo "<strong>Codigo postal: </strong>" . $codigoPostal;
¿Quieres algún otro tip?. Déjame un comentario.
Convertir un arreglo (array) de PHP a JavaScript
En el dÃa de ayer me sucedió que estaba utilizando un plugin de WordPress para detectar el paÃs de procedencia de los visitantes de una página y tomar esa información para redireccionar automáticamente al idioma de esa persona. No lo quise hacer utilizando el User Agent del navegador, porque una persona en Francia podrÃa estar utilizando Firefox en inglés. Para mà es más preciso utilizar WP GeoLocation, con el cual puedo saber la ubicación de una persona basado en la dirección ip.
El caso es que formé en PHP un arreglo de los códigos de los paÃses con sus códigos de idiomas pero no me habÃa percatado de que WP GeoLocation me daba la información en JavaScript. Como mi recién formado arreglo de PHP era muy grande, tuve que buscar una forma automatizada para convertir ese arreglo de PHP a JavaScript y esta fue la solución:
<?php
$arreglo = array(
'clave 1' => 'valor 1',
'clave 2' => 'valor 2',
'clave x' => 'valor x',
);
?>
<script language="javascript">
var arr = {
<?php
foreach($arreglo as $key => $values){
$arr .= "'" . $key . "'" .  " : " . "'" . $values . "'" . ",";
}
$arr =Â substr_replace($arr, '', -1);
echo $arr;
?>
};
</script>
Como pudimos apreciar en el código anterior, utilizamos un loop foreach para formar el arreglo al estilo javascript y lo almacenamos en una variable. Cuando termine el loop, nos va a sobrar una coma al final del arreglo, la cual eliminamos con el código de la lÃnea 16. Finalmente imprimimos el arreglo en el navegador y salimos de PHP y en javascript cerramos con la llave y el punto y coma y todo listo. Puedes verificar si todo está bien desde JavaScript con alert(arr[clave]);
Agregar Botones Twitter y Facebook para tu blog de WordPress
Si lo que deseas es agregar botones a tus artÃculos de WordPress para que tus usuarios los compartan con un sólo clic en Twitter y WordPress, este es tu post. Les explicaré todo el proceso paso a paso, asà que, comencemos:
Twitter:
Utilizaremos el plugin TweetMeme Retweet Button.
- En el panel de control de WordPress seleccionamos Plugin / Añadir Nuevo

- En el cuadro de búsqueda escribimos TweetMeme Button y hacemos clic en Buscar Plugins

- En el listado que aparece buscamos TweetMeme Button. Si escribiste el nombre exactamente igual, deberÃa ser el primero. Hacemos clic en Instalar

- En el Popup que aparece presionamos el botón Instalar ahora.

- Luego hacemos clic en el enlace Activar Plugin

Ajustes de Tweetmeme:
- Localiza y haz clic en Tweetmeme al final de la sección izquierda del panel de administración de WordPress.

- Cambia los ajustes de Tweetmeme de acuerdo a tus necesidades. Por ejemplo, yo prefiero utilizar la ubicación manual del botón porque asà puedo controlar que salga donde yo quiera insertando un código en el template.

- Si elegiste la ubicación manual, entonces inserta el siguiente código donde quieres que aparezca el botón:
<?php if(function_exists('tweetmeme')) { echo tweetmeme(); }?> - Finalmente, deberÃas obtener algo como esto:

Facebook:
- Puedes seguir exactamente todos los pasos anteriores para un pluguin llamado Facebook Share (New) Button. OJO: No lo confundan con Facebook Share Button, porque ese no funciona.
- Si escogen la opción manual, para agreguen el siguiente código en el lugar donde desdean que aparezca:
<?php if (function_exists('fbshare_manual')): echo fbshare_manual(); endif;?>







