실버 스트라이프에 액션 ID 만 표시하는 홀더/페이지를 만들려고합니다. 블로그 페이지처럼 ID가없는 경우 (mydomain.com/programs/) 프로그램과 함께 세부 정보 페이지를 원하는 ID (mydomain.com/programs/spinning-with-chris/)가있는 경우 모든 프로그램의 목록을 표시하십시오.silverstripe 액션없이 홀더/페이지를 만드는 방법
아무에게도 이것을 수행하는 방법에 대한 예가 있습니까? (more info)
private static $url_handlers = array(
'$Action//$ID/$OtherID' => 'handleAction',
);
이 그 선택이 될 것입니다 후 경로 routetocontroller/action
후 아무것도된다는 것을 의미합니다 :
위의 코드는 프레임 워크가 아닌 페이지 내용 만 렌더링한다는 유일한 문제가 있습니다. ProgramSchedulePage_Controller는 Page_Controller를 확장하지만 페이지 템플릿을 가져 오지 않습니다. 아이디어를 얻는 방법이나 "ProgramSchedulePage"템플릿을 전체 페이지 템플릿으로 만들어야합니까? – Mi32dogs
@ Mi32dogs 아마도 당신의 템플릿은'templates/ProgramSchedulePage.ss'입니다 - 이것은 페이지 템플릿을 완전히 덮어 씁니다. 'templates/Layout/ProgramSchedulePage.ss' 파일로 저장해야 콘텐트를 덮을 수 있습니다. –
레이아웃 폴더에 있었지만 여전히 페이지 템플릿을 무시하고 있었고 모든 페이지 데이터 자체를 잃어 버렸습니다. 먼저 페이지 데이터를 가져 와서 작업을합니다. $ dObj = Page :: get() -> byID ('8'); 두 템플릿 모두를 렌더링하여 $ this-> customize ($ dObj) -> renderWith (array ('ProgramSchedulePage', 'page')); 그것은 최선의 해결책은 아니지만 효과적입니다. – Mi32dogs