[eluser]Michael Wales[/eluser]
If it works for you - go for it.
Personally, I usually manage my apps in the following way:
1. Establish MY_Controller.php to create a Public_Controller and Admin_Controller class. These are used to determine whether the user needs to be logged in or not, as well as other various functions.
2. Create a controller admin that extends Admin_Controller - this handles very generic administrative functions.
3. Create a controller named admin_pages which houses all of the methods for page administration - this is what I like to call a child-admin method. We would have things like view, create, edit, delete in here.
4. Setup the following routing rules:
Code:
$route['admin/([a-z]+)/([a-z]+)/([a-zA-Z0-9_-]+)'] = "admin_$1/$2/$3";
$route['admin/([a-z]+)/([a-z]+)'] = "admin_$1/$2";
$route['admin/([a-z]+)'] = "admin_$1";
So, links to /admin/pages will be routed to the admin_pages class, with trailing segments for methods and a parameter.
5. I create a directory /views/admin/ which houses directories for each of my admin_* classes. For example: /views/admin/pages/create.php would be the path to the view that is loaded by the admin_pages->create() method.