2011/4/6 Dorem - Jérémie Bouillon jeremie@dorem.info
On 07/04/2011 02:07, Brion Vibber wrote:
I think the best way to do this would be to whip up an extension using
the
'GetLocalURL' hook to change the URLs that MediaWiki outputs when they
look
clean (no extra query params etc).
I think I understand the theory, what you mean.
For general info on extensions& writing them see: http://www.mediawiki.org/wiki/Manual:Extensions and http://www.mediawiki.org/wiki/Manual:Developing_extensions -- a simple extension can just be one function so it's not too intimidating really.
:)
You haven't see what I can write with PHP... it's both intimidating and I'll probably add numerous security holes everywhere :p
hehehehe :D Luckily it really is not much code, lemme whip up an example...
You could add this to your LocalSettings.php:
$wgHooks['GetLocalURL'][] = 'efMyCustomLinks'; function efMyCustomLinks( $title, &$url, $query ) { if (!$query && $title->getNamespace() == NS_PROJECT) { // Rewrite clean links to pages in this namespace // Needs mod_rewrite rules or something to match! $url = '/proj/' . wfUrlEncode( $title->getDBKey() ); } return true; }
The main things you want to customize here are which namespace id key it compares against (the numeric key, so whatever you're adding to $wgExtraNamespaces or one of the standard namespace name constants like NS_USER, NS_TALK etc) and of course the actual output path.
In the Apache rewrite rules, don't forget to add back the namespace prefix ('Foo:' or whatever)!
-- brion