X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSearchUpdate.php;h=087a8ba5dc7979b43450dca552ad4c31b802e35f;hb=0e830bd136df37b6b2dd8d1d24f4b152f22bb47e;hp=859cccc4f1c65af21524528bfa34207146118041;hpb=412eda051740b525169ffca2666ab18600c56501;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SearchUpdate.php b/includes/SearchUpdate.php index 859cccc4f1..087a8ba5dc 100644 --- a/includes/SearchUpdate.php +++ b/includes/SearchUpdate.php @@ -1,13 +1,7 @@ mId ) { return false; @@ -38,18 +32,12 @@ 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; } @@ -60,8 +48,8 @@ class SearchUpdate { 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,19 +93,21 @@ class SearchUpdate { # Strip wiki '' and ''' $text = preg_replace( "/''[']*/", " ", $text ); wfProfileOut( "$fname-regexps" ); - $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' ); + + 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); + wfProfileOut( $fname ); } } -/* Placeholder class */ +/** + * Placeholder class + * @ingroup Search + */ class SearchUpdateMyISAM extends SearchUpdate { # Inherits everything } - -?>