CodeIgniter Forums

Full Version: Remap Controller
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

[eluser]breaddes[/eluser]
I have an url that goes like this:

Code:
<a href="&lt;?=base_url().$this->lang('glossary')?&gt;">&lt;?=$this->lang->('glossary')?&gt;</a>

$this->lang('glossary') is the glossary in a certain language. It can be French, German, Swedish or English. However, in the German case the output looks like:

Code:
<a href="http://localhost/Glossar">Glossar</a>

The thing is that I don't have a specific controller for each language. I have just one controller that's in the English language. So it is glossary.

How can I remap all the different urls to the english name? I think there's a solution using routes, if I do it static:

Code:
$route['glossar'] = "glossary";

That works fine for the German version, but I'd like to set a dynamic version ... so it would be something like:

Code:
$route[$this->lang('glossary')] = "glossary";

As the routeshelper is already loaded, that won't work out pretty well. Any ideas?

El Forum

[eluser]xwero[/eluser]
I did this week something similar. I made a pages module where users add their own pages and the titles are converted to urls.

The solution i used is add the language to the url and check if the page name exists in the database using the language from the url as a limiter.

Using a language file is a bit more difficult because it's a static file and the language class is instantiated after the router class.

You could try to use a pre controller hook to process the urls.

El Forum

[eluser]breaddes[/eluser]
yeh that sounds like a good idea. I've created a controller 'routes' that is responsible for analyzing the urls and forward them.