Cómo crear un bloque para alternar idioma en Drupal

Drupal cuenta por defecto con un bloque para poder alternar entre idiomas, pero tenemos la opción de crearnos uno personalizado en caso de querer, como fue mi caso, incluirlo en una template y poder maquetar cada uno de sus elementos. Podemos también incluir el código directamente a la hora de crear un bloque nuevo, pero es necesario habilitar el módulo Php filter, incluido en los módulos opcionales del Core. Es necesario, asimismo, tener instalado y habilitado el módulo i18n con al menos dos idiomas (contando el de por defecto).

<?php
     global $base_url;
     $langs=array();
     $node=node_load(arg(1));
     $translations = translation_node_get_translations($node->tnid);
     foreach(language_list($field = 'language', $reset = FALSE) as $lang) {
         $langs[$lang->native]= $lang->language;
     }
     foreach($langs as $lang=>$value) {
         $tnid=$translations[$value]->nid;
         if(!drupal_is_front_page()) {
            $alias=drupal_get_path_alias("node/".$tnid,$path_language = 
$value);
            print "<a href="$base_url/$value/$alias">$lang</a>";
         }
         else {
            print "<a href="$base_url/$value">$lang</a>";
         }
     }
?>
banner