Pregunta

Estoy usando CodeIgniter con la extensión HMVC modular y tienen un área de backend CMS para la gestión de contenidos web. Estoy encaminamiento de la URL base + "admin" ( http: // localhost / cms / admin ) al controlador métodos con el prefijo "admin _".

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

Y aquí es mi ruta:

$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";

Con la HMVC no está encaminando correctamente ahora. Esto es lo que sucede:

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

¿Cómo puedo utilizar HMVC mientras se mantiene el "admin" son de la página web?

¿Fue útil?

Solución

Usted está haciendo la vida un poco demasiado complicado poniendo las funciones de cliente y del servidor en los mismos controladores. Echar un vistazo a mi artículo sobre cómo crear una estructura admin en CodeIgniter .

Otros consejos

Estoy trabajando en algo similar, e implementado un intercambio igual que lo hizo (tercera opción) y funcionó bien.

He intentado implementar un controlador frontal para manejar la sección de administración, y ejecutar módulos con módulos HMVC :: run () y amortiguar la salida como me gustaría, pero luego me he enfrentado a otro tema, tendrá que cambiar el URI esquemas de / a _ o alguna otra cosa, ya que no será capaz de enviar tramos de módulo como parámetro al controlador IC, porque se basa en "/" por su mecanismo de enrutamiento.

La única manera es emular la sección de administración como se sugiere Phil, pero no hay otra opción que aún tiene control sobre el código implementado por cualquier persona que utilice su CMS.

Se podría extender CI_Controller (o MX_Controller en caso de que esté utilizando HMVC) y añadir un Admin_Controller el cual se encargará de su lógica y controlar lo que pueden hacer los módulos.

Tener un vistazo a este Clases CodeIgniter Base : lo mantiene seco

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top