<?php
-# $Id$
/**
* Global functions used everywhere
* @param string $charset Encoding set to use (default 'ISO-8859-1')
*/
function do_html_entity_decode( $string, $quote_style=ENT_COMPAT, $charset='ISO-8859-1' ) {
+ $fname = 'do_html_entity_decode';
+ wfProfileIn( $fname );
+
static $trans;
static $savedCharset;
static $regexp;
}
$out = preg_replace( $regexp, '$trans["$1"]', $string );
+ wfProfileOut( $fname );
return $out;
}
* Get a message from anywhere, for the content
*/
function wfMsgForContent( $key ) {
+ global $wgForceUIMsgAsContentMsg;
$args = func_get_args();
array_shift( $args );
- return wfMsgReal( $key, $args, true, true );
+ $forcontent = true;
+ if( is_array( $wgForceUIMsgAsContentMsg ) &&
+ in_array( $key, $wgForceUIMsgAsContentMsg ) )
+ $forcontent = false;
+ return wfMsgReal( $key, $args, true, $forcontent );
}
/**
* Get a message from the language file, for the content
*/
function wfMsgNoDBForContent( $key ) {
+ global $wgForceUIMsgAsContentMsg;
$args = func_get_args();
array_shift( $args );
- return wfMsgReal( $key, $args, false, true );
+ $forcontent = true;
+ if( is_array( $wgForceUIMsgAsContentMsg ) &&
+ in_array( $key, $wgForceUIMsgAsContentMsg ) )
+ $forcontent = false;
+ return wfMsgReal( $key, $args, false, $forcontent );
}
static $replacementKeys = array( '$1', '$2', '$3', '$4', '$5', '$6', '$7', '$8', '$9' );
global $wgParser, $wgMsgParserOptions;
global $wgContLang, $wgLanguageCode;
+ global $wgMessageCache, $wgLang;
$fname = 'wfMsgReal';
wfProfileIn( $fname );
-
- if( $forContent ) {
- /**
- * Message is needed for page content, and needs
- * to be consistent with the site's configured
- * language. It might be part of a page title,
- * or a link, or text that will go into the
- * parser cache and be served back to other
- * visitors.
- */
- global $wgMessageCache;
- $cache = &$wgMessageCache;
- $lang = &$wgContLang;
- } else {
- /**
- * Message is for display purposes only.
- * The user may have selected a conversion-based
- * language variant or a separate user interface
- * language; if so use that.
- */
- if( in_array( $wgLanguageCode, $wgContLang->getVariants() ) ) {
- global $wgLang, $wgMessageCache;
- $cache = &$wgMessageCache;
- $lang = &$wgLang;
+
+ if( is_object( $wgMessageCache ) ) {
+ $message = $wgMessageCache->get( $key, $useDB, $forContent );
+ }
+ else {
+ if( $forContent ) {
+ $lang = &$wgContLang;
} else {
- global $wgLang;
- $cache = false;
$lang = &$wgLang;
}
- }
-
- if( is_object( $cache ) ) {
- $message = $cache->get( $key, $useDB, $forContent );
- } elseif( is_object( $lang ) ) {
wfSuppressWarnings();
- $message = $lang->getMessage( $key );
+ if( is_object( $lang ) ) {
+ $message = $lang->getMessage( $key );
+ } else {
+ $message = '';
+ }
wfRestoreWarnings();
if(!$message)
$message = Language::getMessage($key);
if(strstr($message, '{{' ) !== false) {
$message = $wgParser->transformMsg($message, $wgMsgParserOptions);
}
- } else {
- wfDebug( "No language object when getting $key\n" );
- $message = "<$key>";
}
# Replace arguments
}
$backtrace = debug_backtrace();
foreach( $backtrace as $call ) {
- $f = explode( DIRECTORY_SEPARATOR, $call['file'] );
- $file = $f[count($f)-1];
+ if( isset( $call['file'] ) ) {
+ $f = explode( DIRECTORY_SEPARATOR, $call['file'] );
+ $file = $f[count($f)-1];
+ } else {
+ $file = '-';
+ }
+ if( isset( $call['line'] ) ) {
+ $line = $call['line'];
+ } else {
+ $line = '-';
+ }
if ( $wgCommandLineMode ) {
- $msg .= "$file line {$call['line']} calls ";
+ $msg .= "$file line $line calls ";
} else {
- $msg .= '<li>' . $file . ' line ' . $call['line'] . ' calls ';
+ $msg .= '<li>' . $file . ' line ' . $line . ' calls ';
}
if( !empty( $call['class'] ) ) $msg .= $call['class'] . '::';
$msg .= $call['function'] . '()';
*/
function wfEscapeWikiText( $text ) {
$text = str_replace(
- array( '[', '|', "'", 'ISBN ' , '://' , "\n=", '{{' ),
+ array( '[', '|', '\'', 'ISBN ' , '://' , "\n=", '{{' ),
array( '[', '|', ''', 'ISBN ', '://' , "\n=", '{{' ),
htmlspecialchars($text) );
return $text;
*/
function wfVarDump( $var ) {
global $wgOut;
- $s = str_replace("\n","<br>\n", var_export( $var, true ) . "\n");
+ $s = str_replace("\n","<br />\n", var_export( $var, true ) . "\n");
if ( headers_sent() || !@is_object( $wgOut ) ) {
print $s;
} else {
# Don't send content if it's a HEAD request.
if( $_SERVER['REQUEST_METHOD'] == 'HEAD' ) {
header( 'Content-type: text/plain' );
- print "$desc\n";
+ print $desc."\n";
}
}
define('TS_MW',1);
/** Standard database timestamp (yyyy-mm-dd hh:mm:ss) */
define('TS_DB',2);
+/** For HTTP and e-mail headers -- output only */
+define('TS_RFC2822', 3 );
/**
* @todo document
} elseif (preg_match("/^(\d{1,13})$/",$ts,$datearray)) {
# TS_UNIX
$uts=$ts;
+ } else {
+ # Bogus value; fall back to the epoch...
+ wfDebug("wfTimestamp() given bogus time value.\n");
+ $uts = 0;
}
if ($ts==0)
switch($outputtype) {
case TS_UNIX:
return $uts;
- break;
case TS_MW:
return gmdate( 'YmdHis', $uts );
- break;
case TS_DB:
return gmdate( 'Y-m-d H:i:s', $uts );
- break;
+ case TS_RFC2822:
+ return gmdate( 'D, d M Y H:i:s', $uts ) . ' GMT';
default:
- return;
+ wfDebugDieBacktrace( 'wfTimestamp() called with illegal output type.');
}
}