답변:
링크 URL을 작성할 때 수정하는 방법을 찾고 있습니까? 나는 최근에 이것을 조사하고 얼마나 많은 사냥이 필요한지 놀랐습니다.
내가 갔다 hook_url_outbound_alter( &$path, &$options, $original_path )는 드루팔 URL 시스템에 의해 작성되는 링크 URL을 변경할 수 있습니다한다.
도 있습니다 hook_url_inbound_alter( &$path, $original_path, $path_language )더 나은 경로의 특정의 langauge을 포함로 될 수있는 - 당신은 변경이 일어날 할 위치에 따라 달라집니다. 나는 개인적으로 hook_url_outbound_alter()신뢰할 수 있고 작업하기 쉽다는 것을 알았습니다. 작성되는 모든 적절한 URL을 변경하고 $ options를 사용하면 쿼리 문자열 (...? query = string & foo = bar) 및 해시 프랜지먼트 (...)를 안정적으로 추가하고 편집 할 수 있습니다 #someId).
$ path를 수정하면 URL href에 쓰여지는 실제 경로가 업데이트됩니다. 물론 이것은 모든 링크에서 실행되므로 수정하려는 링크인지 확인하여 시작해야합니다.
앨리어싱 전에 실행되므로 Drupal 기본값을 기반으로합니다. 분류 경로 만 수정하려는 경우 매우 간단한 두 가지 예를 제공하려면 다음을 수행하십시오.
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
if(strpos($original_path, 'taxonomy/term') === 0) {
// do stuff
}
}
및 / 또는 특정 페이지에서만 실행되도록하려면 (예 : 노드 편집 페이지) :
function some_module_url_outbound_alter( &$path, &$options, $original_path ) {
$current_path = explode("/", current_path() );
if (count($current_path) >= 3 && $current_path[0] == "node" && $current_path[2] == "edit") {
// do stuff
}
}