Яндекс.Метрика

    Drupal

    Подмена node alias

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


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

    На сколько мой способ правильный, и есть ли более правильное решение моей задачи? Спасибо.