2010-02-09 6 views
0

HMVC 모듈 확장자와 함께 Codeigniter를 사용하고 있으며 웹 사이트 콘텐츠를 관리하기위한 백엔드 CMS 영역이 있습니다. 기본 URL + "admin"(http://localhost/cms/admin)을 접두사 "admin_"이있는 컨트롤러 메서드로 라우팅합니다. HMVC가 올바르게 라우팅되지와Codeigniter HMVC 및 CMS

 
$route['admin/([a-zA-Z]+)/(:any)'] = "$1/admin_$2"; 
$route['^admin/(:any)(/)?'] = "$1/admin_index"; 
$route['^admin(/)?'] = "dashboard/admin_index"; 
$route['admin/logout'] = "login/admin_logout"; 

:

 
e.g. function admin_index() {...} 

그리고 여기 내 라우팅입니다. 다음과 같은 상황이 발생합니다.

 
URL: http://localhost/cms/admin/faqs 
Directory: modules/faqs/controllers/faqs - index method 
-- 
here is where it breaks 
-- 
URL: http://localhost/cms/admin/faqs/categories 
Directory: modules/faqs/controllers/faqs - categories method (does not exits) 
Desired: modules/faqs/controllers/categories - index method 

"admin"은 웹 사이트를 유지하면서 어떻게 HMVC를 사용할 수 있습니까?

+0

에서보세요하지만 쉽게되지 않을 것 그것) 그리고 그 밖의 다른 모든 것들? –

+0

HMVC의 목적은 말 그대로 전체 폴더를 픽업하여 모듈과 같이 다른 설치에 드롭 할 수있는 모듈 식 구조를 허용하는 것입니다. 당신이 의도 한 것은 내가하려는 일을하지 않을 것입니다. 고마워요 :) – Torez

답변

2

당신은 똑같은 컨트롤러에 프론트 엔드와 백엔드 기능을 두어 너무 까다로워 보이고 있습니다. how to create an admin structure in CodeIgniter에 내 기사를보십시오.

+0

전에이 기사를 살펴 봤지만 그걸 건너 뛰었습니다. 두 번째 눈에는 세 번째 옵션이 아마도 최상의 솔루션 일 것입니다. 감사합니다. – Torez

0

나는 비슷한 작업을하고 있으며 (3 번째 옵션)했던 것처럼 스와핑을 구현했으며 정상적으로 작동했습니다.

관리자 섹션을 처리하고 HMVC 모듈 :: run()을 사용하여 모듈을 실행하고 원하는대로 출력 버퍼링을 시도했지만 다른 문제가 발생했습니다. 당신은 컨트롤러에 매개 변수로 모듈 세그먼트를 보낼 수 없을 것이기 때문에, CI는 라우팅 메커니즘을 위해 "/"에 의존하기 때문에 URI 스키마는 /로부터 _ 또는 다른 것입니다.

유일한 방법은 Phil이 제안한대로 관리 섹션을 에뮬레이트하는 것이지만 CMS를 사용하는 모든 사용자가 구현 한 코드를 계속 제어 할 수있는 또 다른 옵션이 있습니다.

CI_Controller (또는 HMVC를 사용하는 경우 MX_Controller)를 확장하고 논리를 처리하고 모듈에서 수행 할 수있는 것을 제어하는 ​​Admin_Controller를 추가 할 수 있습니다.

관리 및 경로에서 예를 들어`admin` 컨트롤러와`관리자/faq` 기능 (한 곳에서 관리를 필요하지 않기 주위에 똑똑한 아이가이 CodeIgniter Base Classes: Keeping it DRY