URL: http://metabolomics.jp/ */ if( !defined( 'MEDIAWIKI' ) ){ die( 'This file is a MediaWiki extension, see parseQuery( $this->filter( $term ), false ); $term = $this->encodeTerm( $term ); if( $term == FALSE ) return null; $resultSet = $this->db->resultObject( $this->db->query( "select page_id, page_namespace, page_title from " . $wgDBprefix . "page, " . $wgDBprefix . "searchindex where si_page = page_id and si_title like '%$term%' " . $this->queryRedirect() . " " . $this->queryNamespaces() . " order by page_id " . $this->queryLimit() ) ); return new MySQLSearchResultSet( $resultSet, $this->searchTerms ); } function searchText( $term ) { global $wgDBprefix; $term = $this->encodeTerm( $term ); if( $term == FALSE ) return null; $resultSet = $this->db->resultObject( $this->db->query( "select page_id, page_namespace, page_title from " . $wgDBprefix . "page, " . $wgDBprefix . "searchindex where si_page = page_id and si_text like '%$term%' " . $this->queryRedirect() . " " . $this->queryNamespaces() . " order by page_id " . $this->queryLimit() ) ); return new MySQLSearchResultSet( $resultSet, $this->searchTerms ); } function encodeTerm( $term ) { $term = $this->filter( $term ); # japanese translate to UTF-8 if( function_exists( 'mb_strtolower' ) ) { $term = preg_replace( "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", "'U8' . bin2hex( \"$1\" )", mb_strtolower( $term ) ); } else { list( , $wikiLowerChars ) = self::getCaseMaps(); $term = preg_replace( "/([\\xc0-\\xff][\\x80-\\xbf]*)/e", "'U8' . bin2hex( strtr( \"\$1\", \$wikiLowerChars ) )", $term ); } $term = $this->db->strencode( $term ); $term = mysql_real_escape_string( $term ); return $term; } }