* @package MediaWiki
*/
-/** */
+/**
+ * @package MediaWiki
+ */
class SearchEngine {
var $limit = 10;
var $offset = 0;
* If an exact title match can be find, or a very slightly close match,
* return the title. If no match, returns NULL.
*
+ * @static
* @param string $term
* @return Title
* @access private
return $title;
}
+ $title = Title::newFromText( $term );
+
# Entering an IP address goes to the contributions page
- if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $term ) ) {
- $title = Title::makeTitle( NS_SPECIAL, "Contributions/" . $term );
+ if ( ( $title->getNamespace() == NS_USER && User::isIP($title->getText() ) )
+ || User::isIP( trim( $term ) ) ) {
+ return Title::makeTitle( NS_SPECIAL, "Contributions/" . $title->getDbkey() );
+ }
+
+
+ # Entering a user goes to the user page whether it's there or not
+ if ( $title->getNamespace() == NS_USER ) {
return $title;
}
+ # Quoted term? Try without the quotes...
+ if( preg_match( '/^"([^"]+)"$/', $term, $matches ) ) {
+ return SearchEngine::getNearMatch( $matches[1] );
+ }
+
return NULL;
}
global $wgContLang;
$arr = array();
foreach( $wgContLang->getNamespaces() as $ns => $name ) {
- if( $ns >= 0 ) {
+ if( $ns >= NS_MAIN ) {
$arr[$ns] = $name;
}
}
}
-/** */
+/**
+ * @package MediaWiki
+ */
class SearchEngineDummy {
function search( $term ) {
return null;