<?php
# $Id$
-# See deferred.doc
-
+/**
+ * See deferred.doc
+ * @package MediaWiki
+ */
+
+/**
+ *
+ * @package MediaWiki
+ */
class SearchUpdate {
/* private */ var $mId = 0, $mNamespace, $mTitle, $mText;
/* private */ var $mTitleWords;
- function SearchUpdate( $id, $title, $text = false )
- {
+ function SearchUpdate( $id, $title, $text = false ) {
$nt = Title::newFromText( $title );
if( $nt ) {
$this->mId = $id;
}
}
- function doUpdate()
- {
- global $wgDBminWordLen, $wgLang, $wgDisableSearchUpdate;
+ function doUpdate() {
+ global $wgDBminWordLen, $wgContLang, $wgDisableSearchUpdate;
if( $wgDisableSearchUpdate || !$this->mId ) {
return false;
}
- $fname = "SearchUpdate::doUpdate";
+ $fname = 'SearchUpdate::doUpdate';
wfProfileIn( $fname );
require_once( 'SearchEngine.php' );
- $lc = SearchEngine::legalSearchChars() . "&#;";
+ $lc = SearchEngine::legalSearchChars() . '&#;';
$db =& wfGetDB( DB_MASTER );
$searchindex = $db->tableName( 'searchindex' );
}
# Language-specific strip/conversion
- $text = $wgLang->stripForSearch( $this->mText );
+ $text = $wgContLang->stripForSearch( $this->mText );
- wfProfileIn( "$fname-regexps" );
+ wfProfileIn( $fname.'-regexps' );
$text = preg_replace( "/<\\/?\\s*[A-Za-z][A-Za-z0-9]*\\s*([^>]*?)>/",
- " ", strtolower( " " . $text /*$this->mText*/ . " " ) ); # Strip HTML markup
+ ' ', strtolower( " " . $text /*$this->mText*/ . " " ) ); # Strip HTML markup
$text = preg_replace( "/(^|\\n)\\s*==\\s+([^\\n]+)\\s+==\\s/sD",
"\\2 \\2 \\2 ", $text ); # Emphasize headings
# Strip wiki '' and '''
$text = preg_replace( "/''[']*/", " ", $text );
wfProfileOut( "$fname-regexps" );
-
- $sql = "REPLACE INTO $searchindex (si_page,si_title,si_text) VALUES ({$this->mId},'" .
- $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) . "','" .
- $db->strencode( $text ) . "')";
- $db->query( $sql, "SearchUpdate::doUpdate" );
+ $db->replace( $searchindex, array(array('si_page')),
+ array(
+ 'si_page' => $this->mId,
+ 'si_title' => $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ),
+ 'si_text' => $db->strencode( $text )
+ ), 'SearchUpdate::doUpdate' );
wfProfileOut( $fname );
}
}
+/* Placeholder class */
+class SearchUpdateMyISAM extends SearchUpdate {
+ # Inherits everything
+}
+
?>