X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FParser.php;h=6bcfcff24b84c513ecae853778d5f4a9854b12de;hb=dfaa474400f1739914a26a4dfdd0fe3d667abe44;hp=12ec5d1900db21d0eefccf5bfb921295d68e1f2f;hpb=16577746564269b5587fe3d8955622aa0b46c192;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Parser.php b/includes/Parser.php index 12ec5d1900..6bcfcff24b 100644 --- a/includes/Parser.php +++ b/includes/Parser.php @@ -2708,7 +2708,7 @@ class Parser if ( !$argsOnly ) { $braceCallbacks[2] = array( &$this, 'braceSubstitution' ); } - if ( !$this->mOutputType != OT_MSG ) { + if ( $this->mOutputType != OT_MSG ) { $braceCallbacks[3] = array( &$this, 'argSubstitution' ); } if ( $braceCallbacks ) { @@ -3993,11 +3993,6 @@ class Parser $pdbk = $title->getPrefixedDBkey(); - // add the original text into query to check for notitleconvert pages - $variantTitle = Title::makeTitle( $ns, $title->getText() ); - $linkBatch->addObj( $variantTitle ); - $variantMap[$variantTitle->getPrefixedDBkey()][] = $key; - // generate all variants of the link title text $allTextVariants = $wgContLang->convertLinkToAllVariants($title->getText()); @@ -4012,60 +4007,59 @@ class Parser } } - # construct query - $titleClause = $linkBatch->constructSet('page', $dbr); - $variantQuery = "SELECT page_id, page_namespace, page_title"; - if ( $threshold > 0 ) { - $variantQuery .= ', page_len, page_is_redirect'; - } - $variantQuery .= ", page_no_title_convert FROM $page WHERE $titleClause"; - if ( $options & RLH_FOR_UPDATE ) { - $query .= ' FOR UPDATE'; - } - - $varRes = $dbr->query( $variantQuery, $fname ); - - # for each found variants, figure out link holders and replace - while ( $s = $dbr->fetchObject($varRes) ) { - $variantTitle = Title::makeTitle( $s->page_namespace, $s->page_title ); - $varPdbk = $variantTitle->getPrefixedDBkey(); - $linkCache->addGoodLinkObj( $s->page_id, $variantTitle ); - $this->mOutput->addLink( $variantTitle, $s->page_id ); + if(!$linkBatch->isEmpty()){ + // construct query + $titleClause = $linkBatch->constructSet('page', $dbr); - $noTitleConvert = $s->page_no_title_convert; + $variantQuery = "SELECT page_id, page_namespace, page_title"; + if ( $threshold > 0 ) { + $variantQuery .= ', page_len, page_is_redirect'; + } - $holderKeys = $variantMap[$varPdbk]; + $variantQuery .= " FROM $page WHERE $titleClause"; + if ( $options & RLH_FOR_UPDATE ) { + $variantQuery .= ' FOR UPDATE'; + } - // loop over link holders - foreach($holderKeys as $key){ - $title = $this->mLinkHolders['titles'][$key]; - if ( is_null( $title ) ) continue; + $varRes = $dbr->query( $variantQuery, $fname ); - $pdbk = $title->getPrefixedDBkey(); + // for each found variants, figure out link holders and replace + while ( $s = $dbr->fetchObject($varRes) ) { - if(!isset($colours[$pdbk]) || ($noTitleConvert && $colours[$pdbk] == 1)){ - // found link in some of the variants, replace the link holder data - $this->mLinkHolders['titles'][$key] = $variantTitle; - $this->mLinkHolders['dbkeys'][$key] = $variantTitle->getDBkey(); + $variantTitle = Title::makeTitle( $s->page_namespace, $s->page_title ); + $varPdbk = $variantTitle->getPrefixedDBkey(); + $linkCache->addGoodLinkObj( $s->page_id, $variantTitle ); + $this->mOutput->addLink( $variantTitle, $s->page_id ); + + $holderKeys = $variantMap[$varPdbk]; + + // loop over link holders + foreach($holderKeys as $key){ + $title = $this->mLinkHolders['titles'][$key]; + if ( is_null( $title ) ) continue; + + $pdbk = $title->getPrefixedDBkey(); + + if(!isset($colours[$pdbk])){ + // found link in some of the variants, replace the link holder data + $this->mLinkHolders['titles'][$key] = $variantTitle; + $this->mLinkHolders['dbkeys'][$key] = $variantTitle->getDBkey(); - // prevent link conversion if needed - if($noTitleConvert) - $this->mLinkHolders['texts'][$key] = $wgContLang->markNoConversion($variantTitle->getText(),true); - - // set pdbk and colour - $pdbks[$key] = $varPdbk; - if ( $threshold > 0 ) { - $size = $s->page_len; - if ( $s->page_is_redirect || $s->page_namespace != 0 || $size >= $threshold ) { + // set pdbk and colour + $pdbks[$key] = $varPdbk; + if ( $threshold > 0 ) { + $size = $s->page_len; + if ( $s->page_is_redirect || $s->page_namespace != 0 || $size >= $threshold ) { + $colours[$varPdbk] = 1; + } else { + $colours[$varPdbk] = 2; + } + } + else { $colours[$varPdbk] = 1; - } else { - $colours[$varPdbk] = 2; - } - } - else { - $colours[$varPdbk] = 1; - } + } + } } } }