2013-03-05 1 views
0

CMS 외부에서 페이지를 만들 수 있습니까? 예를 들어SilverStripe 3 : CMS 외부에로드/생성 페이지

:

나는 현재 페이지로 세그먼트를로드 할 JQuery와 .load()를 사용하고 싶습니다.

테마 폴더의 어딘가에 html 또는 .ss 파일을 만들 수 있습니까? 예 : self-contained-page.html 그러면 www.domain.com/self-contained-paged.html을 방문하십시오. 이 페이지를 방문 할 수 있습니다.

답변

1

silverstripe 설치의 어느 곳에서나 정적 html 파일을 제공하는 데 아무런 문제가 없습니다. URL에 파일 확장명을 항상 추가하는 것이 좋습니다. 그렇지 않으면 silverstripe의 URL 라우팅 (.htaccess 파일 참조)이 시작됩니다. .

또한 당신이 코스 참조 할 수

0

'을 http://www.domain.com/themes/mytheme/test.html를'되는 URL '테마/mytheme/인 test.html'에 파일이있는 경우에, 그래서 항상 파일의 전체 경로를 사용주의 테마 폴더의 html 파일은 CSS 파일 인 fe와 동일합니다. : 당신이 테마 폴더에하지에 마음을 해달라고하면

www.domain.com/themes/yourtheme/self-contained-paged.html

당신은 또한 루트 디렉토리에 배치 할 수 있습니다 .
또는 .htaccess를 수정하고 mod_rewrite 또는 redirect 규칙을 적용하여 테마 폴더를 가리킬 수 있습니다.

.ss 파일을 사용하려면 아마도 CMS 페이지를 사용해야합니다.

2

물론 정적 파일을 제공 할 수도 있지만 페이지의 일부분을 "ajaxify"할 수도 있습니다. 그게 네가하고 싶은 일인지 확신 할 수 없지만, 다른 누군가가 비슷한 것을하려고 할 때를 대비해.

pjax 또는 history.js과 같은 멋진 도구를 사용할 수도 있지만 수동으로 수행 할 수도 있습니다. 최근에 SS 2.4에서이 작업을 수행했지만 SS 3은 꽤 유사해야합니다 :

컨트롤러에서/yourpage/load (또는 호출 할 내용)를 통해 액세스 할 수 있도록 public 함수를 추가하십시오.

public function load(){ 
     return $this->renderWith(array('AjaxLoad')); 
    } 

서식 파일/레이아웃에 AjaxLoad.ss 파일을 추가하십시오.

  • jQuery .load()을 통해서만 해당 페이지를 제공하려면 파일 내에 콘텐츠를 추가하기 만하면됩니다.
  • 일반 페이지에서 콘텐츠를 사용하고 해당 버전으로 대체하려는 경우 일반 페이지 및 ajaxified 페이지 모두에서 <% include PageSnippet %>을 사용하십시오. 그런 다음 templates/Include/PageSnippet.ss에 콘텐츠를 정의하십시오.

http://www.contentaward.at/content-lab-vienna/608#details (페이지 하단의 작은 이미지를 클릭하십시오.)에서이를 볼 수 있습니다. 희망이 명확하게.

+0

예를 들어 툴팁 호버 효과가 좋음) – schellmax

+1

항상주의를 기울이는 가장 중요하지 않은 부분입니다.) – xeraa

+0

... 차이가 있기 때문에! – schellmax