Criando cache de temas Desktop e Mobile no Drupal

Vamos considerar o seguinte cenário:

Você precisa cachear diferentes temas no Drupal: um para Mobile e outro para Desktop, pegando essa informação da variável $_SERVER.

Por padrão, o cache do Drupal não vai conseguir atender essa necessidade. Para resolver o problema, vamos utilizar o módulo 
Mobile Detect.

Faça o download do módulo, e habilite o Mobile Detect juntamente com seu sub-módulo Mobile Detect Caching.

drush en mobile_detect mobile_detect_caching

Com o módulo instalado, precisamos criar a variação de tema. Neste caso, vou utilizar o hook_custom_theme().

function my_module_custom_theme() {
  $detect = mobile_detect_get_object();

  if($detect->isMobile() || $detect->isTablet()){
    $custom_theme = 'my_mobile_theme';
  }else{
    $custom_theme = variable_get('theme_default');
  }

  return $custom_theme;
}

Implementado o hook acima, a variação de tema, de acordo com o device, já estará acontecendo. Porém, com o cache do Drupal desabilitado.

Para que funcione, adicione a seguinte linha de código no seu settings.php:

$conf['cache_backends'][] = 'sites/all/modules/contrib/mobile_detect/mobile_detect_caching/mobile_detect_caching.inc';

Feito isso, seu site já estará fazendo o cache de acordo com o device acessado, alterando assim, o seu tema.

Até o próximo Post!