CodeIgniter Forums
Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21)
+--- Thread: Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) (/showthread.php?tid=5124)

Pages: 1 2


Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - El Forum - 02-20-2008

[eluser]m4rw3r[/eluser]
Here is another MY_URI.php, this one does not need a special router.php addition:

Code:
<?php
/**
* Modified URI class to enable multiple URL suffixes,
* and a function to retrieve which one is used.
* Separate the suffixes with commas (,).
*/
class MY_URI extends CI_URI{
    /**
     * Remove the suffix from the URL if needed, if a suffix is found, save it in $this->url_suffix.
     *
     * @access    private
     * @return    void
     */    
    function _remove_url_suffix()
    {
        $this->url_suffix = '';
        if  ($this->config->item('url_suffix') != ""){
            // go through every suffix and see if they match
            $suffixes = explode(',',$this->config->item('url_suffix'));
            foreach($suffixes as $suffix){
                $suffix = trim($suffix);
                if(preg_match("|".preg_quote($suffix)."$|", $this->uri_string)){
                    // We have match, remove the suffix and save which one in $this->url_suffix
                    $this->uri_string = preg_replace("|".preg_quote($suffix)."$|", "", $this->uri_string);
                    $this->url_suffix = $suffix;
                    break;
                }
            }
        }
    }
    /**
     * Returns the URL suffix used for this request.
     * @return string
     */
    function get_extension(){
        return $this->url_suffix;
    }
}
?>



Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - El Forum - 02-20-2008

[eluser]Code Arachn!d[/eluser]
Is there any particular reason to explicitly specify the extensions in the config? It seems a bit redundant and tedious to maintain, while easier to parse am I missing a downside to having an extension not specified?


Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - El Forum - 02-20-2008

[eluser]ejangi[/eluser]
No, I think the idea of putting an extension in the config is purely aesthetic. Whereas the point of my solution (for instance) is to allow me run different code depending on the extension in the URL.


Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - El Forum - 02-20-2008

[eluser]Code Arachn!d[/eluser]
I completely agree with your reasoning - I use a similar method to define which template to show (print, mobile, rss etc) by the extension - I'm just not sure why in post #10 the code requires the extensions to be specified to me that seems like more work - rather than just pulling it by the last segment.

my 2c


Multiple URL Suffix (SOLVED - UPDATED for CI 1.6.0) - El Forum - 02-20-2008

[eluser]ejangi[/eluser]
Ahhh gotchya - yes I agree.