Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo lanzar una acción con jQuery cuando se acaba de redimensionar la ventana del navegador

Si se asocia una acción al evento $(window).resize() se ejecuta inmediatamente después de redimensionar la ventana. Como resultado, si se cambia el tamaño de la ventana con el ratón, la acción se lanza muchas veces.

Para lanzar una acción únicamente cuando se ha terminado de cambiar el tamaño de la ventana, es decir, cuando hemos soltado el puntero del ratón, podemos usar el siguiente snippet:

$(window).resize(function() {
   if(this.resizeTO) clearTimeout(this.resizeTO);
   this.resizeTO = setTimeout(function() {
      $(this).trigger('resizeEnd');
   }, 500);
});
$(window).bind("resizeEnd", function() {
   // Acción
});

Cómo redirigir todas las URLs de un sitio web cuando se cambia de dominio usando htaccess

Imago voragine.net
[actualizado el ] • Por Enlace permanente

Si un sitio web cambia de dominio pero la estructura de enlaces se mantiene es una buena práctica redirigir cada uno de los contenidos en el viejo dominio a su homónimo en el nuevo. Esto se puede conseguir añadiendo unas reglas al archivo .htaccess.

Supongamos que el nuevo dominio es example.net y el antiguo domain.com:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^www.domain.com$[OR]
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://example.net$1 [R=301,L]

Solución encontrada en una de las respuestas del hilo .htaccess redirect all pages to new domain de stackoverflow, mejorada con algunos detalles de este otro hilo.

Cómo sobreescribir un script js en un child theme de WordPress

Imago voragine.net
[actualizado el ] • Por Enlace permanente

Para modificar un archivo javascript en un tema hijo (child theme) de WordPress no basta con incluirlo en la carpeta del child theme y esperar que WordPress lo use en vez del equivalente en el parent theme (tema padre), como ocurre con los archivos PHP.

Con los archivos javascript tenemos que realizar dos operaciones: eliminar de la cola de scripts el archivos del parent theme, y añadir el archivo modificado alojado en la carpeta del child theme:

function child_theme_prefix_load_scripts() {
 wp_dequeue_script('parent-theme-script-handler');
 wp_enqueue_script(
   'child-theme-script-hadler',
   get_stylesheet_directory_uri().'/js/script.js',
   array( 'jquery' ), // dependencias
   '1.0', // versión
   false // incluir script en la sección header del HTML
 );
}
add_action( 'wp_print_scripts', 'child_theme_prefix_load_scripts', 100 );

Usar el hook wp_print_scripts, en vez de wp_enqueue_scripts, nos asegura que la acción se ejecutará después de que el parent theme haya registrado y añadido a la cola los scripts.

Además de la función wp_dequeue_script existe wp_deregister_script. Ambas conseguirán que el script del parent theme no se cargue, pero usando la segunda sin la primera obtendremos un notice de PHP. Parece ser que lo correcto es usar ambas.

Cómo cargar archivos .mo con las cadenas de traducción en un tema hijo en WordPress

Cuando se trabaja con un tema hijo (child theme) en WordPress para una página en varios idiomas nos encontraremos con cadenas a traducir en el parent theme y en el child theme. Cada uno tendrá sus archivos .po y .mo y los archivos de traducciones se activarán desde el archivo functions.php.

Para el archivo con las cadenas del chid theme utilizamos load_child_theme_textdomain:

add_action( 'after_setup_theme', 'child_theme_setup' );
function child_theme_setup() {
  load_child_theme_textdomain( 'child-theme-text-domain', get_stylesheet_directory() . '/ruta-al-archivo-mo' );
}

Si el archivo con las cadenas del parent theme no está cargado, lo podemos cargar en el child theme de la misma manera que el del child theme pero usando el hook load_theme_textdomain.

Algunos comandos de Linux para obtener información pública de un dominio: host, dig, ping, whois, traceroute

Imago voragine.net
[actualizado el ] • Por
Cada dominio de internet tiene asociada una buena cantidad de datos públicos que se pueden consultar: quién es el propietario, cómo contactar con él, en qué máquina y país está alojado... Viene bien saber cómo obtener esta información, unas veces por razones técnicas otras por pura curiosidad. Desde cualquier distribución de Linux podemos hacer estas consultas muy fácilmente utilizando la línea de comandos.