• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Solved] MY_Router.php Set Route Question

#1
I have a custom MY_Router.php file to work to detect url when have it like

index.php?route=account/register

It picks the account up as directory and register for the controller fine.

If there when I want to get edit function on the account controller I would like to be able just to get like so.

index.php?route=account/edit

So because there is a controller

controllers > account
controllers > account > Register.php
controllers > account > Account.php // There is a edit function in this file.

Currently to get function I have to type

index.php?route=account/account&function=edit


PHP Code:
<?php

class MY_Router extends CI_Router {
    
    protected function 
_set_routing() {
    
        if (
file_exists(APPPATH.'config/routes.php'))
        {
            include(
APPPATH.'config/routes.php');
        }

        if (
file_exists(APPPATH.'config/'.ENVIRONMENT.'/routes.php'))
        {
            include(
APPPATH.'config/'.ENVIRONMENT.'/routes.php');
        }

        
// Validate & get reserved routes
        
if (isset($route) && is_array($route))
        {
            isset(
$route['default_controller']) && $this->default_controller $route['default_controller'];
            isset(
$route['translate_uri_dashes']) && $this->translate_uri_dashes $route['translate_uri_dashes'];
            unset(
$route['default_controller'], $route['translate_uri_dashes']);
            
$this->routes $route;
        }

        if (
$this->enable_query_strings) {
            
            if ( ! isset(
$this->directory))
            {
                
$route = isset($_GET['route']) ? trim($_GET['route'], " \t\n\r\0\x0B/") : '';

                if (
$route !== '')
                {
                    
$part explode('/'$route);

                    
$this->uri->filter_uri($part[0]);
                    
$this->set_directory($part[0]);

                    if ( ! empty(
$part[1])) {

                        
$this->uri->filter_uri($part[1]);
                        
$this->set_class($part[1]);

                        
// Testing only
                        
if ( ! empty($_GET['function']))
                        {
                            
$this->uri->filter_uri($_GET['function']);
                            
$this->set_method($_GET['function']);
                        }

                        
$this->uri->rsegments = array(
                            
=> $this->class,
                            
=> $this->method
                        
);
                    }

                } else {

                    
$this->_set_default_controller();
                }
            }

            
// Routing rules don't apply to query strings and we don't need to detect
            // directories, so we're done here
            
return;
        }

        
// Is there anything to parse?
        
if ($this->uri->uri_string !== '')
        {
            
$this->_parse_routes();
        }
        else
        {
            
$this->_set_default_controller();
        }
    }



Attached Files
.php   MY_Router.php (Size: 1.79 KB / Downloads: 75)
There's only one rule - please don't tell anyone to go and read the manual.  Sometimes the manual just SUCKS!
Reply


Messages In This Thread
[Solved] MY_Router.php Set Route Question - by wolfgang1983 - 07-13-2016, 06:46 PM
RE: MY_Router.php Set Route Question - by PaulD - 07-13-2016, 07:20 PM

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2021 MyBB Group.