2012-03-17 2 views
0

관리자 컨트롤러를 만들려고합니다. 메뉴 항목이 연결되어 있지 않아도 만들고 싶습니다.Magento - 메뉴 항목이없는 사용자 지정 관리 라우터

이상적으로는 /index.php/admin/my_controller/를 통해 내 컨트롤러에 액세스 할 수있게하고 싶습니다. 다음과 같이

지금까지 나는 adminhtml 컨트롤러를 다시 작성했다하지만 난 simnply 관리 콘솔 내 404 (즉,하지의 주요 404 페이지) : 수신 메뉴에 컨트롤러를 추가하지 않더라도

<admin> 
    <routers> 
     <my_module> 
      <use>admin</use> 
      <args> 
       <module>Me_Mymodule</module> 
       <frontName>my_controller</frontName> 
      </args> 
     </my_module> 
     <adminhtml> 
      <args> 
       <modules> 
        <my_module after="Mage_Adminhtml">Me_Mymodule</my_module> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

답변

0

목표 xml 구성이 중복되었습니다. 관리자 frontname /에 컨트롤러를 추가 할 Company_Module_Adminhtml
다음 사용은 이제 컨트롤러/Adminhtml 폴더에 생성됩니다 모든 컨트롤러는

/admin/yourfilename/index 

처럼 관리를 통해 액세스됩니다 컨트롤러의 클래스 이름은 Module_Module_Adminhtml_YourfilenameController이어야하며 012를 확장해야합니다. 그건 트릭입니다.

+0

XML 구성은 Mage_Adminhtml의 디렉토리 목록에 디렉토리를 추가하는 데 필요합니다. – benmarks

+0

예, 알고 있습니다. 메시지 파서가 나와 함께 속임수를 쓰고 있습니다 .... – Sergey

0

을 , 당신은 여전히 ​​컨트롤러에 대한 acl 섹션을 추가해야합니다 adminhtml.xml. 그 후에 관리자에게 다시 연락하는 것을 잊지 마십시오.

2

현재 구성 기술은 버전 1.4부터 폐기되었습니다. 대신 구조화하는 것이 더 편리합니다 like this.

<admin> 
    <routers> 
     <adminhtml> 
      <args> 
       <modules> 
        <my_module before="Mage_Adminhtml">Me_Mymodule_Adminhtml</my_module> 
       </modules> 
      </args> 
     </adminhtml> 
    </routers> 
</admin> 

그런 다음 /index.php/admin/mymodule/ 경로가 Me/Mymodule/controllers/Adminhtml/MymoduleController.php에서 클래스 Me_Mymodule_Adminhtml_MymoduleController extends Mage_Adminhtml_Controller_Action을 만들 수 있습니다. 귀하의 예제에서 컨트롤러 이름에 밑줄을 사용했습니다. 올바른 클래스를 검색 할 때 디렉토리 구분 기호로 사용되므로주의하십시오.

Mage::getUrl('adminhtml/mymodule')과 같은 컨트롤러의 URL을 생성하여 암호 키를 경로에 추가하도록하십시오. 이는 관리자 컨트롤러를 만들 때 필요하거나 페이지를 거부합니다.

메뉴 항목이없는 경우 ACL에 추가 할 수 없습니다. 이 경우 adminhtml.xml 파일이 필요하지 않습니다.

+0

OP 구성이 맞습니다. 첫 번째 부분은 다소 관계가 없지만 전반적으로 정확합니다. – benmarks

+0

한 가지주의 사항. magento 모듈을 실수로 덮어 쓰지 않도록 "="Mage_Adminhtml "을 사용하는 것이 좋습니다. – Sergey

+0

@Sergy 때로는 핵심 컨트롤러를 무시해야하기 때문에 그것이 내 습관입니다. 그것을 지적 해 주셔서 감사 드리며 OP에는 사용할 옵션이 있습니다. – clockworkgeek

관련 문제