2009-12-08 4 views
0

내가 만든 하나의보기에서 drupal 경로에 문제가 있습니다. 지금 내 견해는 다음과 같은 형식입니다 : contents/2/6.드루팔 (Drupal보기 및 경로 URL)

경우 2, 6 내가 그들의 그 노드의 제목을 가정 해 봅시다 번역이 ID를 조작하고 싶습니다, 두 노드의 ID가 있습니다. 내가 패널에이 값을 보낸다 때문에

내가보기에서이 작업을 수행 할 수 있으며, 패널은 노드의 ID를 획득해야합니다.

요약하면이 제목을 제목에 pathauto처럼 다시 쓰고 싶습니다. 그럴 수 있습니까? 특정 모듈이 있습니까?

감사합니다.

+0

어떤 버전의 Drupal을 사용하고 있습니까? 현재 SEF URL을 사용하고 있습니까? – TALLBOY

+0

Drupal 6을 사용하고 있습니다. 현재 SEF URL을 사용하고 있지만이 특정보기에는 없습니다. :) –

답변

3

정확하게 이해했다면 원래 경로의 내용/[nid_x]/[nid_y]를 유지하고 노드 (예 : 제목)의 '말하는'경로 요소가 많은 사람들에게 URL 별칭을 추가하고 싶습니다. . 그게 맞다면 두 가지 옵션이 있습니다 :

먼저 'admin/build/path/add'에서 'content/[nid_x]/[nid_y]'에 대한 URL 별칭을 정의하여 수동으로 할 수 있습니다. 이것은 쉬운 일이지만 많은 별칭이 필요한 경우 찾고있는 것과 다를 수 있습니다.

둘째, 당신은 path_set_alias() 기능을 이용하여 프로그래밍을 할 수 있습니다. 이 함수를 사용하는 것은 꽤 간단합니다. 유일한 문제는 그것을 트리거 할 위치 일 것입니다. 귀하의 설명을 보면 그 견해가 어디서 언제 만들어 지는지 명확하지 않으므로 제안을하기가 어렵습니다. 질문을 편집하여 좀 더 구체적으로 할 수는 있습니다.

특정 노드 조합에 대해 해당보기 URL 별명을 만들려면 hook_nodeapi()의 '삽입', '업데이트'및 '삭제'작업을 사용하여 별칭을 만들 수 있습니다. 분명히 이것은 별칭을 만들지 여부를 코드에서 결정할 수있는 일관된 규칙이있는 경우에만 작동합니다.

특정 경로에 대한 URL 별칭이 있으면 l() 함수를 통해 해당 경로에 대한 링크가 만들어 질 때마다 원래 URL 대신 별칭이 사용됩니다. 그래서 예. 'content/2/6'을 가리키는 메뉴 항목을 만들면 사용 된 URL이 자동으로 해당 경로에 대해 만든 별칭이됩니다.


편집 : 당신은 프로그래밍 별칭을 만들어 결국 그냥 경우에 - 당신은 어쨌든 pathauto를 사용하는 경우, 당신은/그 pathauto_cleanstring() 기능을 사용해야합니다 수 있습니다 ('pathauto.inc'에서) 생성 된 URL이 제대로 됐는지 확인하기 위해/허용 된 문자로 다시 작성됩니다.

0

맞춤 URL 기능을 사용하여 전용 맞춤 URL을 만드는 방법이 있습니다. 패널을 사용하는 경우에도 정적 인 특성이므로이 방법을 사용할지 여부는 확실하지 않습니다.

function custom_url_rewrite($op, $result, $path) { 

    if ($op == 'alias') { 
    if (preg_match('|^[node_id#_here](/{0,1}.*)|', $path, $matches)) { 
     return '[desired_alias]'. $matches[1]; 
    } 
    } 

    if ($op == 'source') { 
    if (preg_match('|^[node_id#](/{0,1}.*)|', $path, $matches)) { 
     return '[desired_source]'. $matches[1]; 
    } 
    } 

    return $result; 

} 

당신은 자신뿐만 아니라 자신의 원하는 별칭과 소스와 노드 ID 번호 s을 (를) 대체 할 수 있습니다. 희망이 도움이됩니다.

+0

답장을 보내 주셔서 감사합니다.하지만 각 노드 ID를 노드의 특정 필드에 매핑 할 수 있다고 생각했습니다. , 노드 ID를 가져 와서 제목으로 변환하는 것 ... –

0

아마 유용 aswell :

변화 <a href="nodeview/[title]/nid" title="[title]">link tekst</a> 같은 토큰 교체를 사용하여 링크를 구축하고 경로 엑사의 nodeview 및 인수 NULL, NULL, 꾸벅 꾸벅 f.i.와보기에서 노드를 처리하기 위해 뷰를 사용하여 시작 링크

더 복잡한 회선 링크를 보려면 view php 필드를 사용하십시오 ..