Как стать автором
Обновить

Подмена node alias

Время на прочтение1 мин
Количество просмотров1.8K
image

Задачей стоит заменить все ссылки конкретного типа ноды на другие.





Мои действия:

Т.к. в друпале «по хорошему» все ссылки генерируются через url(), то есть возможность воспользоваться функцией custom_url_rewrite_outbound() для перегрузки ссылок.

Copy Source | Copy HTML
  1. function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
  2.   if (preg_match("/^node\/[0-9]*$/", $original_path)){ // регулярными выражениями отбираю ссылки вида "node/13123"
  3.     $array = explode("/", $original_path); // разбиваю ссылку на массив
  4.     $node = node_load($array[1]); // загружаю ноду
  5.  
  6.     // если нужный нам тип, то переделываю ссылку
  7.     if ($node->type == 'node_type') $path = 'my_super_new_node/'. $node->nid;
  8.   }
  9. }


Внимание вопрос:

На сколько мой способ правильный, и есть ли более правильное решение моей задачи? Спасибо.
Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии12

Публикации