Script para crear alias en la función hook_update_N

A veces cuando actualizamos un proyecto de Drupal tenemos que crear también alias de urls para el mismo. Una forma de hacerlo es picarlo a mano, otra opción más útil es hacerle mediante código con la función Hook_update_N.

La forma de hacerlo que he utilizado convertir el "key" del array en la ruta real, y el valor del array en el alias. En caso de que el tamaño del array fuese muy grande habría que plantear hacerlo mediante una operación de Batch Api.
En nuestro archivo mymodule.install

<?php
/**
 * Implements Hook_update_N()
 */
function mydmodule_update_7001(&$sandbox) {
 
$paths = array(
   
'content/videos-melior' => 'videos-melior',
  );
  foreach (
$paths as $key => $value) {
 
   
$chlandeck_path = drupal_get_path_alias($key);

    if($check_path != $key) {
     
$path['source'] = $key;
     
$path['alias'] = $value;
     
$path['language'] = 'es';
     
path_save($path);
     
watchdog('mydmodule', 'the alias' . $path['alias'] . 'has been create', $variables = array(), WATCHDOG_INFONULL);
    }
  }
}
?>

Hay que tener en cuenta es que con un site con varios idiomas el array de paths debería ser multidimensional del tipo:

<?php
$path
= array();
$path[$site_url]['site_url'] = '';
$path[$site_url]['alias_url'] = '';
$path[$site_url]['language'] = '';
?>

Y el foreach también habrá que cambiarlo