I moved an application from
an href="http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_11.04_.28Natty_Narwhal.29"
rel="nofollow">Ubuntu 11.04 (Natty Narwhal) Server to a href="http://en.wikipedia.org/wiki/Red_Hat_Linux" rel="nofollow">Red Hat Enterprise
Linux (RHEL) server over the weekend. My error log is full of the PHP errors
in the subject line referencing the following
function:
function
wfTalkHereArticleFromTitle( &$title, &$article ) {
global $wgRequest,
$wgTalkHereNamespaces;
if
(isset($title->noTalkHere))
return true; //Stop
recursion
$action = $wgRequest->getVal( 'action' );
$oldid = $wgRequest->getVal( 'oldid' );
$diff =
$wgRequest->getVal( 'diff' );
if ($action ==
'purge')
$action = NULL; //"purge" is not considered an action in this
context
if ($action || $oldid || $diff)
return
true;
$ns =
$title->getNamespace();
if (!Namespace::isTalk($ns)
&& Namespace::canTalk($ns) && $title->exists()
&&
( !$wgTalkHereNamespaces || in_array($ns, $wgTalkHereNamespaces) ) )
{
$tns = Namespace::getTalk($ns);
$talk =
Title::makeTitle($tns, $title->getDBKey());
if ($talk
&& $talk->userCan('read')) {
$t = clone $title;
$t->noTalkHere = true; //Stop recursion
$a =
MediaWiki::articleFromTitle( $t );
$article = new TalkHereArticle( $a, $talk
);
}
}
return
true;
}
The
error is thrown in
the
If
(!Namespace::isTalk($ns)
statement.
This error is a new one for me. How might I resolve
it?
I changed the offending code
to:
if ( !Ns::isTalk($ns)
&& Ns::canTalk($ns) && $title->exists()
&& (
!$wgTalkHereNamespaces || in_array($ns, $wgTalkHereNamespaces) ) )
{
$tns = Ns::getTalk($ns);
$talk =
Title::makeTitle($tns, $title->getDBKey());
if ($talk
&& $talk->userCan('read')) {
$t = clone $title;
$t->noTalkHere = true; //Stop recursion
$a =
MediaWiki::articleFromTitle( $t );
$article = new TalkHereArticle( $a, $talk
);
}
}
return
true;
Would that
suffice to fix the error, at least in this file?
No comments:
Post a Comment