Last modified: 2010-05-15 15:40:40 UTC
This function pulls out oldid from the wgRequest but fails to consider whether
or not the currrent article is actually the article being referenced in the
request, so in the case where article->mTitle is different than $wgTitle, this
always loads the article specified by oldid. This doesn't really affect
wikipedia, but in other sites that have modifications that load articles
internally, any functionality that does a article->getContent() will be broken
if there's an oldid in the URL. I think a simple solution would be just to check
if the current article's title is actually the global title:
global $wgRequest, $wgTitle;
$this->mRedirectUrl = false;
if (! ($wgTitle->getNamespace() == $this->mTitle->getNamespace() &&
$wgTitle->getText() == $this->mTitle->getText() ) )
If you specify an oldid, it's supposed to load that page. This
allows permalinks to be made.
Not a bug.
Right, if you are only loading the article that has been requested.
But if your code loads ANOTHER article internally (say to populate a drop down
menu), if there's an oldid in the URL, it gets the article that's requested in
the URL, which isn't good. Like I said, this is fine for Wikipedia, but if
anyone is extending the functionality of Mediawiki, it's really problematic.
No, that's how MediaWiki is meant to work. If your extension
relies on $_REQUEST['title'] it is incorrect and will fail.
I'm not sure what you mean.
My extension doesn't rely on what's in $_REQUEST['title']. We have feature that
allows users to categorize articles through a drop down menu, these categories
are defined by the contents of an article, Project:Categories. This allows
admins to maintain the categories without coding changes.
To populate the drop down menu, we fetch Article->getContent(). When editing an
out of date article, say for an article titled "Fry Fish", and populating the
$t = Title::newFromDBKey("Category");
$a = new Article($t);
$cats = $a->getContent();
returns the content of "Fry Fish" version from the oldid 19203, despite
a->mTitle being for the title "Category".