}
}
+if( !function_exists('is_a') ) {
+ # Exists in PHP 4.2.0+
+ function is_a( $object, $class_name ) {
+ return
+ (strcasecmp( get_class( $object, $class_name ) == 0) ||
+ is_subclass_of( $object, $class_name ) );
+ }
+}
+
+# html_entity_decode exists in PHP 4.3.0+ but is FATALLY BROKEN even then,
+# with no UTF-8 support.
+function do_html_entity_decode( $string, $quote_style=ENT_COMPAT, $charset="ISO-8859-1" ) {
+ static $trans;
+ if( !isset( $trans ) ) {
+ $trans = array_flip( get_html_translation_table( HTML_ENTITIES, $quote_style ) );
+ # Assumes $charset will always be the same through a run, and only understands
+ # utf-8 or default. Note - mixing latin1 named entities and unicode numbered
+ # ones will result in a bad link.
+ if( strcasecmp( "utf-8", $charset ) == 0 ) {
+ $trans = array_map( "utf8_encode", $trans );
+ }
+ }
+ return strtr( $string, $trans );
+}
+
$wgRandomSeeded = false;
function wfSeedRandom()
wfDebugDieBacktrace( "Call to obsolete function wfCleanQueryVar(); use wgRequest instead" );
}
-function wfSpecialPage()
-{
- global $wgUser, $wgOut, $wgTitle, $wgLang;
-
- /* FIXME: this list probably shouldn't be language-specific, per se */
- $validSP = $wgLang->getValidSpecialPages();
- $sysopSP = $wgLang->getSysopSpecialPages();
- $devSP = $wgLang->getDeveloperSpecialPages();
-
- $wgOut->setArticleRelated( false );
- $wgOut->setRobotpolicy( "noindex,follow" );
-
- $bits = split( "/", $wgTitle->getDBkey(), 2 );
- $t = $bits[0];
- if( empty( $bits[1] ) ) {
- $par = NULL;
- } else {
- $par = $bits[1];
- }
-
- if ( array_key_exists( $t, $validSP ) ||
- ( $wgUser->isSysop() && array_key_exists( $t, $sysopSP ) ) ||
- ( $wgUser->isDeveloper() && array_key_exists( $t, $devSP ) ) ) {
- if($par !== NULL)
- $wgTitle = Title::makeTitle( Namespace::getSpecial(), $t );
-
- $wgOut->setPageTitle( wfMsg( strtolower( $wgTitle->getText() ) ) );
-
- $inc = "Special" . $t . ".php";
- require_once( $inc );
- $call = "wfSpecial" . $t;
- $call( $par );
- } else if ( array_key_exists( $t, $sysopSP ) ) {
- $wgOut->sysopRequired();
- } else if ( array_key_exists( $t, $devSP ) ) {
- $wgOut->developerRequired();
- } else {
- $wgOut->errorpage( "nosuchspecialpage", "nospecialpagetext" );
- }
-}
-
function wfSearch( $s )
{
$se = new SearchEngine( $s );