Drupal →
Подмена node alias
Задачей стоит заменить все ссылки конкретного типа ноды на другие.
Мои действия:
Т.к. в друпале «по хорошему» все ссылки генерируются через url(), то есть возможность воспользоваться функцией custom_url_rewrite_outbound() для перегрузки ссылок.
Copy Source | Copy HTML
- function custom_url_rewrite_outbound(&$path, &$options, $original_path) {
- if (preg_match("/^node\/[0-9]*$/", $original_path)){ // регулярными выражениями отбираю ссылки вида "node/13123"
- $array = explode("/", $original_path); // разбиваю ссылку на массив
- $node = node_load($array[1]); // загружаю ноду
-
- // если нужный нам тип, то переделываю ссылку
- if ($node->type == 'node_type') $path = 'my_super_new_node/'. $node->nid;
- }
- }
Внимание вопрос:
На сколько мой способ правильный, и есть ли более правильное решение моей задачи? Спасибо.
26.01.2011 17:04+0300