Welcome Guest, Not a member yet? Register   Sign In
multi-level subfolders for controllers for 1.7.1
#10

[eluser]riwakawd[/eluser]
[quote author="Damien K." date="1253243847"]Just want to throw it out to the community yet another multi-level subfolders controller extension. This is for 1.7.1.

HTH, Damien K.


Code:
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* MY_Router Class
*
* @author Damien K.
*/
class MY_Router extends CI_Router
{
     function __construct()
     {
         parent::CI_Router();
     }

    // --------------------------------------------------------------------

    /**
     * OVERRIDE
     */
    function _validate_request($segments)
    {
        // Does the requested controller exist in the root folder?
        if (file_exists(APPPATH.'controllers/'.$segments[0].EXT))
        {
            return $segments;
        }

        // Is the controller in a sub-folder?
        if (is_dir(APPPATH.'controllers/'.$segments[0]))
        {
            // EDIT:
            $dir = '';
            do
            {
                if (strlen($dir) > 0)
                {
                    $dir .= '/';
                }
                $dir .= $segments[0];
                $segments = array_slice($segments, 1);
            } while (is_dir(APPPATH.'controllers/'.$dir .'/'.$segments[0]));
            // Set the directory and remove it from the segment array
            $this->set_directory($dir);
            // END EDIT:

            if (count($segments) > 0)
            {
                // Does the requested controller exist in the sub-folder?
                if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].EXT))
                {
                    show_404($this->fetch_directory().$segments[0]);
                }
            }
            else
            {
                $this->set_class($this->default_controller);
                $this->set_method('index');

                // Does the default controller exist in the sub-folder?
                if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.EXT))
                {
                    $this->directory = '';
                    return array();
                }

            }

            return $segments;
        }

        // Can't find the requested controller...
        show_404($segments[0]);
    }
}

// END MY_Router class

/* End of file MY_Router.php */
/* Location: ./system/application/libraries/MY_Router.php */
[/quote]

Anyone for latest version of CodeIgniter_2.1.4 I am trying to make default router load. $route['default_controller'] = "frontend/common/home";


Messages In This Thread
multi-level subfolders for controllers for 1.7.1 - by El Forum - 09-17-2009, 08:17 PM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 02-08-2010, 04:55 PM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 02-01-2011, 10:54 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 02-11-2011, 06:25 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 02-18-2011, 08:24 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 03-18-2011, 01:35 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 06-07-2011, 02:56 PM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 07-12-2011, 09:55 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 07-12-2011, 09:58 AM
multi-level subfolders for controllers for 1.7.1 - by El Forum - 04-17-2014, 01:40 AM



Theme © iAndrew 2016 - Forum software by © MyBB