Создание синонима (алиаса) пути ноды

  1. <?php
  2. // Будем добалять синоним перед сохранением ноды
  3. function mymodule_preprocess_page() {
  4.  
  5.   //Будем добавлять синоним для типа ноды "page"
  6.   switch ($node->type) {
  7.     case "page":
  8.  
  9.       //Наш синоним
  10.       $alias = "my/aliase";
  11.  
  12.       //Ищем есть ли уже созданные синонимы для этой ноды    
  13.       $source = path_load(array('source' => 'node/'.$node->nid));
  14.  
  15.       //Проверяем, есть ли такие же синонимы
  16.       $exist = path_load(array('alias' => $alias));
  17.  
  18.       //Если есть синоним аналогичный создаваемому и он не принадлежит создаваемой ноде, то делаем синоним уникальным путем добавления _0
  19.       if ($exist['source'] && $exist['source'] != $source['source']) {	  	  
  20. 	  $i = 0;
  21. 	  do {
  22. 	  $alias .= '_'.$i;
  23. 	  $i++;
  24. 	  } while (path_load(array('alias' => $alias)));	  
  25. 	};
  26.  
  27. 	$node->path = array(
  28. 	  'alias' => $alias,
  29. 	  'pid' => $source['pid'],
  30. 	  'language' => 'und'
  31. 	);
  32.  
  33.     break;
  34.   };
  35. };
  36. ?>

Так же можно посмотреть тут http://xandeadx.ru/blog/drupal/441
Примеры использования api pathauto (eng)