# From a URL-encoded title
/* static */ function newFromURL( $url )
{
- global $wgLang, $wgServer;
+ global $wgLang, $wgServer, $wgIsMySQL, $wgIsPg;
$t = new Title();
# For compatibility with old buggy URLs. "+" is not valid in titles,
$t->mDbkeyform = str_replace( " ", "_", $s );
if( $t->secureAndSplit() ) {
-
# check that lenght of title is < cur_title size
- $sql = "SHOW COLUMNS FROM cur LIKE \"cur_title\";";
- $cur_title_object = wfFetchObject(wfQuery( $sql, DB_READ ));
+ if ($wgIsMySQL) {
+ $sql = "SHOW COLUMNS FROM cur LIKE \"cur_title\";";
+ $cur_title_object = wfFetchObject(wfQuery( $sql, DB_READ ));
- preg_match( "/\((.*)\)/", $cur_title_object->Type, $cur_title_size);
+ preg_match( "/\((.*)\)/", $cur_title_object->Type, $cur_title_type);
+ $cur_title_size=$cur_title_type[1];
+ } else {
+ /* midom:FIXME pg_field_type does not return varchar length
+ assume 255 */
+ $cur_title_size=255;
+ }
- if (strlen($t->mDbkeyform) > $cur_title_size[1] ) {
+ if (strlen($t->mDbkeyform) > $cur_title_size ) {
return NULL;
}
# Theoretically 0x80-0x9F of ISO 8859-1 should be disallowed, but
# this breaks interlanguage links
- $set = " %!\"$&'()*,\\-.\\/0-9:;<=>?@A-Z\\\\^_`a-z{}~\\x80-\\xFF";
+ $set = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z{}~\\x80-\\xFF";
return $set;
}
# The URL contains $1, which is replaced by the title
function getInterwikiLink( $key )
{
- global $wgMemc, $wgDBname, $wgInterwikiExpiry;
- static $wgTitleInterwikiCache = array();
+ global $wgMemc, $wgDBname, $wgInterwikiExpiry, $wgTitleInterwikiCache;
$k = "$wgDBname:interwiki:$key";
$n = $wgLang->getNsText( $this->mNamespace );
if ( "" != $n ) { $n .= ":"; }
$u = str_replace( "$1", $n . $this->mUrlform, $p );
- if ( "" != $this->mFragment ) {
- $u .= "#" . wfUrlencode( $this->mFragment );
- }
return $u;
}
if( in_array( $name, $wgWhitelistRead ) ) return true;
# Compatibility with old settings
- if( $this->getNamespace() == NS_ARTICLE ) {
+ if( $this->getNamespace() == NS_MAIN ) {
if( in_array( ":" . $name, $wgWhitelistRead ) ) return true;
}
return false;
$this->mNamespace = NS_MAIN;
} else {
# Namespace or interwiki prefix
- if ( preg_match( "/^((?:i|x|[a-z]{2,3})(?:-[a-z0-9]+)?|[A-Za-z0-9_\\x80-\\xff]+?)_*:_*(.*)$/", $t, $m ) ) {
+ if ( preg_match( "/^(.+?)_*:_*(.*)$/", $t, $m ) ) {
#$p = strtolower( $m[1] );
$p = $m[1];
$lowerNs = strtolower( $p );
}
# "." and ".." conflict with the directories of those namesa
- if ( $r === "." || $r === ".." || strpos( $r, "./" ) !== false ) {
+ if ( strpos( $r, "." ) !== false &&
+ ( $r === "." || $r === ".." ||
+ strpos( $r, "./" ) === 0 ||
+ strpos( $r, "/./" !== false ) ||
+ strpos( $r, "/../" !== false ) ) )
+ {
return false;
}
$fname
);
- RecentChange::notifyMove( $now, $this, $nt, $wgUser, $comment );
+ RecentChange::notifyMoveOverRedirect( $now, $this, $nt, $wgUser, $comment );
# Swap links
);
# Record in RC
- RecentChange::notifyMove( $now, $this, $nt, $wgUser, $comment );
+ RecentChange::notifyMoveToNew( $now, $this, $nt, $wgUser, $comment );
# Purge squid and linkscc as per article creation
Article::onArticleCreate( $nt );
$parents = array();
# get the parents categories of this title from the database
- $sql = "SELECT DISTINCT cl_from,cur_namespace,cur_title,cur_id FROM cur,categorylinks
+ $sql = "SELECT DISTINCT cur_id FROM cur,categorylinks
WHERE cl_from='$titlekey' AND cl_to=cur_title AND cur_namespace='$cns'
ORDER BY cl_sortkey" ;
$res = wfQuery ( $sql, DB_READ ) ;
# append the last child.
# TODO : We should have a last child unless there is an error in the
# "categorylinks" table.
- if(isset($lastchild) { $result .= $lastchild; }
+ if(isset($lastchild)) { $result .= $lastchild; }
$result .= "<br/>\n";
# add it to the stack
$stack[$this->getText()] = $tpar->getText();
# grab its parents
- $result .= $tpar->getAllParentCategories(&$stack);
+ $result .= $tpar->getAllParentCategories($stack);
}
}