X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSearchUpdate.php;h=849d6dc71cb290bd5e381a0af2fb76705cf498c6;hb=6e88bd35ff2986bbb30486ce57686e7af1e2f2a3;hp=683764226064da4d38c41200c245decdc7fc5daf;hpb=ba2afcd9fa9b1f3f6a865da054068466164fd2fa;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SearchUpdate.php b/includes/SearchUpdate.php index 6837642260..849d6dc71c 100644 --- a/includes/SearchUpdate.php +++ b/includes/SearchUpdate.php @@ -1,13 +1,7 @@ mId ) { return false; @@ -38,30 +32,24 @@ class SearchUpdate { $fname = 'SearchUpdate::doUpdate'; wfProfileIn( $fname ); - require_once( 'SearchEngine.php' ); + $search = SearchEngine::create(); $lc = SearchEngine::legalSearchChars() . '&#;'; - $db =& wfGetDB( DB_MASTER ); - $searchindex = $db->tableName( 'searchindex' ); - - if( $this->mText == false ) { - # Just update the title - $lowpri = $db->lowPriorityOption(); - $sql = "UPDATE $lowpri $searchindex SET si_title='" . - $db->strencode( Title::indexTitle( $this->mNamespace, $this->mTitle ) ) . - "' WHERE si_page={$this->mId}"; - $db->query( $sql, "SearchUpdate::doUpdate" ); + + if( $this->mText === false ) { + $search->updateTitle($this->mId, + Title::indexTitle( $this->mNamespace, $this->mTitle )); wfProfileOut( $fname ); return; } # Language-specific strip/conversion - $text = $wgLang->stripForSearch( $this->mText ); + $text = $wgContLang->stripForSearch( $this->mText ); wfProfileIn( $fname.'-regexps' ); $text = preg_replace( "/<\\/?\\s*[A-Za-z][A-Za-z0-9]*\\s*([^>]*?)>/", ' ', strtolower( " " . $text /*$this->mText*/ . " " ) ); # Strip HTML markup - $text = preg_replace( "/(^|\\n)\\s*==\\s+([^\\n]+)\\s+==\\s/sD", - "\\2 \\2 \\2 ", $text ); # Emphasize headings + $text = preg_replace( "/(^|\\n)==\\s*([^\\n]+)\\s*==(\\s)/sD", + "\\1\\2 \\2 \\2\\3", $text ); # Emphasize headings # Strip external URLs $uc = "A-Za-z0-9_\\/:.,~%\\-+&;#?!=()@\\xA0-\\xFF"; @@ -105,13 +93,23 @@ class SearchUpdate { # Strip wiki '' and ''' $text = preg_replace( "/''[']*/", " ", $text ); wfProfileOut( "$fname-regexps" ); + + wfRunHooks( 'SearchUpdate', array( $this->mId, $this->mNamespace, $this->mTitle, &$text ) ); + + # Perform the actual update + $search->update($this->mId, Title::indexTitle( $this->mNamespace, $this->mTitle ), + $text); - $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' ); wfProfileOut( $fname ); } } -?> +/** + * Placeholder class + * @addtogroup Search + */ +class SearchUpdateMyISAM extends SearchUpdate { + # Inherits everything +} + +