Druplicon

BoF de Context vs panels

El Martes 22 a las 19hs España (GMT +1) junto a estoyausente vamos a dar una pequeña charla sobre el eterno dilema de cual usar.. Context? Panels?… pues eso.

Personalmente voy a tratar de hacerlo lo mejor posible. Hablando en publico soy medio boludo a veces XD

Este BoF se va a hacer por Hangouts para los que entren, y como este tiene una capacidad limitada, todo aquel que no pueda participar activamente, puede seguirlo por Youtube (via streaming) ;)

Se va a pasar el link de Hangouts y Youtube por el Twitter de la Asociacion española de Drupal

De que vamos a hablar?
Hemos elegido una página que presenta las problematicas que todo drupalero se encuentra cuando tiene que por ejemplo:

  • Gestion de layouts.
  • Contenidos condicionales.
  • Que tipo de markup genera cada modulo y posibles mejoras (no hace falta decir cual de los módulos hace eso XD).
  • Exponer contenidos relacionados y aprovecharlos para mezclarlo todo en una sola pantalla
    (Por ejemplo: node -> author -> Profile2 -> apellido).
  • Soporte para i18n,
  • Y algunos etc, etc, etc.

Ya saben.

Chau!

Druplicon

Drupal 7: Quitar un CSS o JS programaticamente

El siguiente hook lo pones en el template.php de tu theme:

<?php
function TU_THEME_css_alter(&$css) {
  $css = array_diff_key($css, array(
    // Añade todos los CSS que quieras quitar antes que se entregue la página.
    drupal_get_path('module', 'NOMBRE_MODULO') . '/PATH/HASTA/EL/CSS/foo.css' => FALSE,
    drupal_get_path('theme', 'NOMBRE_THEME') . '/PATH/HASTA/EL/CSS/foo.css' => FALSE,
  ));
}

function TU_THEME_js_alter(&$js) {
  $css = array_diff_key($js, array(
    // Añade todos los JS que quieras quitar antes que se entregue la página.
    drupal_get_path('module', 'user') . '/user.js' => FALSE,
  ));
}

Está claro que esos hook tienen juego. Puedes mirar cual URL vas a renderizar, o averiguar cualquier otra cosa que te ayude a decidir que CSS’s/JS’s vas a querer quitar.

Chau!

Druplicon

Drupal 7: Habilitar templates para nodos basados en su view mode

Si tenemos un content type llamado “citas” y tenemos mas de un view mode, por ejemplo “resumida” y “detallada“.
Para poder hacer templates tipo “node–cita–resumida.tpl.php” y “node–cita–detallada.tpl.php” simplemente tenemos que poner una linea en el HOOK_preprocess_node().

<?php
/**
 * Implements HOOK_preprocess_node().
 */
function HOOK_preprocess_node(&$variables, $hook) {
  $variables['theme_hook_suggestions'][] = 'node__' . $variables['node']->type . '__' . $variables['view_mode'];
}

Chau!

tux

Emparejar dispositivos a2dp (audio por bluetooth) en Debian 7

Espero que esto le ahorre todo el tiempo que yo he perdido :D

Síntoma: Emparejas un dispositivo de audio vía bluetooth y parece que ha conectado, pero al cabo de un segundo se desconecta.

Solución:

sudo apt-get install pulseaudio pulseaudio-module-bluetooth bluez-audio pavucontrol bluez-firmware bluez-tools && sudo service bluetooth restart && sudo killall pulseaudio

Y ya podes emparejar sin problemas.

Chau!

tux

Instalar Skype en Debian 7

Problema: Skype tiene un paquete .deb multiarquitectura… pero en Debian solo podés instalarlo en 32 bits.

Solución:

sudo dpkg --add-architecture i386 && sudo apt-get update

Ya podés instalar el .deb sin problemas.

Chau!

Calcular el porcentaje de transparencia para “progid:DXImageTransform.Microsoft.gradient”

En versiones de IE <= 8 es normal tener que usar:

filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#d8ffffff', endColorstr='#d8ffffff');

para aplicar transparencia a un background. Pero como se puede ver, no está muy claro donde poner el porcentaje de transparencia que queremos.

En el ejemplo del principio el truco que estamos usando es aplican un degradado que va desde blanco a blanco, pero por delante de cada color tenemos “d8“, que corresponde al valor alpha de RGBA (AARRGGBB). Pero está en hexadecimal y nosotros estamos acostumbrados a usar valores decimales (tipo opacity: 0.5).

Para saber que valor tenemos que poner si queremos por ejemplo un 50% de opacidad simplemente tenemos que hacer esta cuenta:

255 * 0.5 = 127.5 (redondeando queda en 127).

A este resultado lo pasas por alguna aplicación que convierta valores decimales a hexadecimales como por ejemplo ésta lo que te va a dar “7F“. Y ya está, Nuestro filtro anterior modificado quedaría como:

Blanco al 50%:

filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#7Fffffff', endColorstr='#7Fffffff');

Chau!

Herramientas

Habilitar el opcache que viene con php ( >= 5.5 ) en xampp

Ya en el futuro de va a demostrar si este nuevo opcache es mejor que los ya conocidos, pero de momento es el ÚNICO que funciona razonablemente bien en WINDOWS.

Edita tu “php.ini” y pega esto al final del archivo (si tenes configurado xdebug, al opcache ponelo por encima de este)

[Opcache]
; poné el path real donde esté alojado php_opcache.dll
zend_extension = "C:\xampp\php\ext\php_opcache.dll"
opcache.memory_consumption = 500
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Y listo, tenemos un motivo menos de sufrimiento a la hora de programar en este SO.

Chau!

Drupal APC: configuración rápida

Aquí dejo una configuración rápida de APC.

extension=apc.so
apc.shm_segments=1
apc.shm_size=256M

Si están usando Debian o derivados pueden poner la configuración en /etc/php5/conf.d/20-apc.ini (la parte del nombre “20-” puede variar, verifiquenlo antes de editar).

Para mas opciones ver http://www.php.net/manual/es/apc.configuration.php

No olvides reiniciar apache: sudo service apache2 restart

Chau!