2013-04-22 1 views
2

Silverstripe (3.0.5)의 관리 영역에 간단한 페이지를 추가하는 데 this tutorial을보고 있었지만 Apache 로그에서 세그먼트 오류 오류가 발생했습니다.Silverstripe CMS에 다른 페이지를 추가하는 방법

"customHelp.php"의 "index"메소드라고 생각합니다. "index"를 다른 것으로 이름을 바꿀 때 관리자 메뉴에 아무런 충돌이나 항목이 없지만 아무 것도 표시되지 않습니다. 나는 그것을 클릭한다.

여기 내 "customHelp.php"의 내용입니다 - 누군가가 올바른 방향으로 나를 가리 키도록 할 수 있습니까?

<?php 

class customHelp extends LeftAndMain { 

    static $url_segment = "customHelp"; 
    static $menu_title = "Site Help";  
    static $allowed_actions = array ('customHelp'); 

    public function index() { 
     return $this->renderWith('customHelp'); 
    }  

    public function init() { 
     parent::init(); 
    } 
} 
+0

문제가 색인 방법에 있다고 생각하는 이유는 무엇입니까? 오류에 대해 구체적으로 설명해 주시겠습니까? customHelp.ss 파일에 무엇이 있습니까? – drzax

+0

웹 페이지에 "데이터를받지 못했습니다 - 서버에서 데이터를 전송하지 않았습니다"라는 URL (http : //mysite.local/admin/customHelp/)이 있습니다. 예를 들어 index()를 xindex()로 바꾸면 관리 사이트가 잘로드됩니다. 아마도 해당 메소드가 호출되지 않기 때문입니다. 내 "customHelp.ss"는 (customHelp/templates에 저장되어있는) 튜토리얼 페이지와 동일합니다. – finster

답변

0

자습서가 정확하지 않거나 구식이 아닌 것 같습니다.

나는 여기 그것을 시도하고 오류가있어 다음과 함께 overiding에 대한

Declaration of customHelp::index() should be compatible with that of LeftAndMain::index() 

그래서 호환 만드는 :

public function index($request) { 
    return $this->renderWith('customHelp'); 
} 

가 여기서 일했다.

+0

고마워 - 나는 조금 더 멀리 (왜 내가 그 같은 오류 메시지를 보지 못했는지 확실하지 않다.)하지만 지금은 한 번 "사이트 도움말"메뉴 항목을 클릭하면 페이지의 오른쪽이 달라 붙는 것처럼 보입니다. 다른 메뉴 항목 중 하나를 클릭해도 "맞춤 html 콘텐츠"텍스트가 삭제되지는 않습니다. 어떤 아이디어? 감사. – finster

+0

나는이 이상한 행동을 확인할 수는 있지만, 왜 이런 일이 일어나는지 알 수 없다. 내용은로드되지만 표시되지 않습니다. 어쩌면 확장 대신 LeftAndMainExtension을 사용해야합니다. http://doc.silverstripe.org/framework/en/howto/extend-cms-interface – ivoba

+0

감사합니다. 대신 사용해 보겠습니다. 내가 따라야 할 최고의 튜토리얼을 선택했다고 생각하지 마십시오.) 솔루션 덕분에 원래의 문제가 해결되었습니다. – finster

-1

이 관련되지 않을 수 있지만 클래스 이름에서도 가이드를 명명 규칙 권리를 사용해야합니다 그렇지 않으면 제안 :

클래스는 대문자 http://doc.silverstripe.org/framework/en/trunk/misc/coding-conventions로 시작해야하며, 파일 이름이 따라야합니다.

대/소문자를 구분하여 파일을 제공하는 서버에서 실행할 때 문제를 실행할 수 있습니다.

편집 :

그냥 인덱스 문제가 unlfushed 템플릿 캐시에 의해 야기 될 수 있다고 나를 때리는 : 플러시 실행 = 모든 사이트에.

+0

감사합니다. 변경 사항을 적용 할 때마다 내 사이트에서 flush = all을 반복적으로 실행하고 있습니다. 수업 이름의 이름을 변경하면 도움이 될 것이라고 생각하십니까? 나는 그 튜토리얼 페이지를 따라 가고 클래스가 거기에 이름을 붙이는 방법이다 ... – finster