Архив - Ноя 3, 2012

Дата
  • Все
  • Янв
  • Фев
  • Мар
  • Апр
  • мая
  • Июн
  • Июл
  • Авг
  • Сен
  • Окт
  • Ноя
  • Дек
  • Все
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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

  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. ?>