Ticket #2223: 2223_5.2.patch
File 2223_5.2.patch, 10.5 KB (added by , 15 years ago) |
---|
-
FCKeditorParser.body.php
305 305 } 306 306 307 307 function replaceInternalLinks( $text ) { 308 $text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[ RTENOTITLE$1|$1]]", $text); //#2223: [[()]] => [[RTENOTITLE%1|%1]]308 $text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[$1|RTENOTITLE]]", $text); //#2223: [[()]] => [[%1|RTENOTITLE]] 309 309 $text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text); //change ':' => 'RTECOLON' in links 310 310 $text = parent::replaceInternalLinks($text); 311 $text = preg_replace("/<strong class=\"selflink\">(.*?)<\/strong>/", "<a href=\"".$this->mTitle->mDbkeyform."\" class=\"selflink\">$1</a>", $text); // #2075 312 $text = preg_replace("/\[\[RTENOTITLE(.*?)\|/", "[[", $text); // remove unused RTENOTITLE 311 $text = preg_replace("/\|RTENOTITLE\]\]/", "]]", $text); // remove unused RTENOTITLE 313 312 314 313 return $text; 315 314 } … … 468 467 if ($categories) { 469 468 $appendString = ""; 470 469 foreach ($categories as $cat=>$val) { 470 $args = ''; 471 if( $val == 'RTENOTITLE' ){ 472 $args .= '_fcknotitle="true" '; 473 $val = $cat; 474 } 471 475 if ($val != $title->mTextform) { 472 $appendString .= "<a href=\"Category:" . $cat ."\">" . $val ."</a> ";476 $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">" . $val ."</a> "; 473 477 } 474 478 else { 475 $appendString .= "<a href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";479 $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">Category:" . $cat ."</a> "; 476 480 } 477 481 } 478 482 $parserOutput->setText($parserOutput->getText() . $appendString); -
FCKeditorSkin.body.php
24 24 $imgName = $img->getName(); 25 25 $found = $img->getURL(); 26 26 27 if (!is_null($alt) && ( $alt == 'RTENOTITLE' )) { //2223 28 $alt = ''; 29 } 30 27 31 if ($found) { 28 32 //trick to get real Url for image: 29 33 $originalLink = strip_tags(Linker::makeImageLinkObj($nt, $label, $alt, $align , $params , $framed , $thumb , $manual_thumb , $valign ), "<img>"); … … 125 129 $imgName = $img->getName(); 126 130 $found = $img->getURL(); 127 131 132 if( $frameParams['alt'] == 'RTENOTITLE' ){ //2223 133 $frameParams['alt'] = ''; 134 } 128 135 if ($found) { 129 136 $linker = new Linker(); 130 137 $originalLink = $linker->makeImageLink2( $nt, $file, $frameParams, $handlerParams); … … 212 219 213 220 return $ret; 214 221 } 222 223 function makeLinkObj( $nt, $text= '', $query = '', $trail = '', $prefix = '' ) { 224 global $wgUser; 225 226 wfProfileIn( __METHOD__ ); 227 if ( $nt->isExternal() ) { 228 $args = ''; 229 $u = $nt->getFullURL(); 230 $link = $nt->getPrefixedURL(); 231 if ( '' == $text ) { $text = $nt->getPrefixedText(); } 232 $style = $this->getInterwikiLinkAttributes( $link, $text, 'extiw' ); 215 233 234 $inside = ''; 235 if ( '' != $trail ) { 236 $m = array(); 237 if ( preg_match( '/^([a-z]+)(.*)$$/sD', $trail, $m ) ) { 238 $inside = $m[1]; 239 $trail = $m[2]; 240 } 241 } 242 if( $text == 'RTENOTITLE' ) { //2223 243 $text = $u; 244 $args .= '_fcknotitle="true" '; 245 } 246 $t = "<a {$args}href=\"{$u}\"{$style}>{$text}{$inside}</a>"; 247 248 wfProfileOut( __METHOD__ ); 249 return $t; 250 } 251 252 return Linker::makeLinkObj($nt, $text, $query, $trail, $prefix); 253 254 } 216 255 function makeKnownLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' , $aprops = '', $style = '' ) { 217 256 $fname = 'FCKeditorSkin::makeKnownLinkObj'; 218 257 wfProfileIn( $fname ); 219 258 259 $args = ''; 220 260 if ( !is_object( $nt ) ) { 221 261 wfProfileOut( $fname ); 222 262 return $text; … … 249 289 } 250 290 251 291 list( $inside, $trail ) = Linker::splitTrail( $trail ); 252 $r = "<a href=\"{$u}\">{$prefix}{$text}{$inside}</a>{$trail}"; 292 $title = "{$prefix}{$text}{$inside}"; 293 294 $u = preg_replace("/^RTECOLON/", ":", $u); //change 'RTECOLON' => ':' 295 if( substr($text, 0, 10) == 'RTENOTITLE' ){ //starts with RTENOTITLE 296 $args .= '_fcknotitle="true" '; 297 $title = $u; 298 $trail = substr($text, 10).$trail; 299 } 300 301 $r = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; 253 302 wfProfileOut( $fname ); 254 303 return $r; 255 304 } … … 260 309 # throw new MWException(); 261 310 return "<!-- ERROR -->{$prefix}{$text}{$trail}"; 262 311 } 312 $args = ''; 263 313 264 314 $fname = 'FCKeditorSkin::makeBrokenLinkObj'; 265 315 wfProfileIn( $fname ); … … 274 324 } 275 325 276 326 list( $inside, $trail ) = Linker::splitTrail( $trail ); 277 $ s = "<a href=\"{$u}\">{$prefix}{$text}{$inside}</a>{$trail}";327 $title = "{$prefix}{$text}{$inside}"; 278 328 329 $u = preg_replace("/^RTECOLON/", ":", $u); //change 'RTECOLON' => ':' 330 if( substr($text, 0, 10) == 'RTENOTITLE' ){ //starts with RTENOTITLE 331 $args .= '_fcknotitle="true" '; 332 $title = $u; 333 $trail = substr($text, 10).$trail; 334 } 335 $s = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; 336 279 337 wfProfileOut( $fname ); 280 338 return $s; 281 339 } 282 340 341 function makeSelfLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { 342 if ( '' == $text ) { 343 $text = $nt->mDbkeyform; 344 } 345 list( $inside, $trail ) = Linker::splitTrail( $trail ); 346 $title = "{$prefix}{$text}"; 347 if( $text == 'RTENOTITLE' ){ //2223 348 $args .= '_fcknotitle="true" '; 349 $title = $nt->mDbkeyform; 350 } 351 return "<a {$args}href=\"".$nt->mDbkeyform."\" class=\"selflink\">{$title}</a>{$inside}{$trail}"; 352 } 353 283 354 /** 284 355 * Create a direct link to a given uploaded file. 285 356 * … … 295 366 ### HOTFIX. Instead of breaking, return empty string. 296 367 return $text; 297 368 } else { 369 $args = ''; 298 370 $orginal = $title->getPartialURL(); 299 371 // Mediawiki 1.11 300 372 if ( function_exists('wfFindFile') ) { … … 324 396 if( $text == '' ) { 325 397 $text = $alt; 326 398 } 327 $u = htmlspecialchars( $url ); 328 return "<a href=\"{$orginal}\" class=\"$class\" _fck_mw_filename=\"{$orginal}\" _fck_mw_type=\"media\" title=\"{$alt}\">{$text}</a>"; 399 $orginal = preg_replace("/^RTECOLON/", ":", $orginal); //change 'RTECOLON' => ':' 400 if( $text == 'RTENOTITLE' ){ //2223 401 $args .= '_fcknotitle="true" '; 402 $text = $orginal; 403 $alt = $orginal; 404 } 405 return "<a href=\"{$orginal}\" class=\"$class\" {$args} _fck_mw_filename=\"{$orginal}\" _fck_mw_type=\"media\" title=\"{$alt}\">{$text}</a>"; 329 406 } 330 407 } 331 408 … … 334 411 if( $escape ) { 335 412 $text = htmlspecialchars( $text ); 336 413 } 414 $url = preg_replace("/^RTECOLON/", ":", $url); //change 'RTECOLON' => ':' 337 415 if ($linktype == 'autonumber') { 338 416 return '<a href="'.$url.'">[n]</a>'; 339 417 } 340 return '<a href="'.$url.'">'.$text.'</a>'; 418 $args = ''; 419 if( $text == 'RTENOTITLE' ){ //2223 420 $args .= '_fcknotitle="true" '; 421 $text = $url; 422 } 423 return '<a '.$args.'href="'.$url.'">'.$text.'</a>'; 341 424 } 342 425 343 426 function __call( $m, $a) { -
mw12/FCKeditorParser_OldPP.body.php
306 306 } 307 307 308 308 function replaceInternalLinks( $text ) { 309 $text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[ RTENOTITLE$1|$1]]", $text); //#2223: [[()]] => [[RTENOTITLE%1|%1]]309 $text = preg_replace("/\[\[([^|\[\]]*?)\]\]/", "[[$1|RTENOTITLE]]", $text); //#2223: [[()]] => [[%1|RTENOTITLE]] 310 310 $text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text); //change ':' => 'RTECOLON' in links 311 311 $text = parent::replaceInternalLinks($text); 312 $text = preg_replace("/<strong class=\"selflink\">(.*?)<\/strong>/", "<a href=\"".$this->mTitle->mDbkeyform."\" class=\"selflink\">$1</a>", $text); // #2075 313 $text = preg_replace("/\[\[RTENOTITLE(.*?)\|/", "[[", $text); // remove unused RTENOTITLE 312 $text = preg_replace("/\|RTENOTITLE\]\]/", "]]", $text); // remove unused RTENOTITLE 314 313 315 314 return $text; 316 315 } … … 469 468 if ($categories) { 470 469 $appendString = ""; 471 470 foreach ($categories as $cat=>$val) { 471 $args = ''; 472 if( $val == 'RTENOTITLE' ){ 473 $args .= '_fcknotitle="true" '; 474 $val = $cat; 475 } 472 476 if ($val != $title->mTextform) { 473 $appendString .= "<a href=\"Category:" . $cat ."\">" . $val ."</a> ";477 $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">" . $val ."</a> "; 474 478 } 475 479 else { 476 $appendString .= "<a href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";480 $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">Category:" . $cat ."</a> "; 477 481 } 478 482 } 479 483 $parserOutput->setText($parserOutput->getText() . $appendString); -
plugins/mediawiki/dialogs/link.html
70 70 sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; 71 71 72 72 sHRef = FCKConfig.ProtectedSource.Revert(sHRef, 0); //#2509 73 if (sHRef.toLowerCase().StartsWith( 'rtenotitle' ) )74 {75 sHRef = sHRef.substring(10);76 bLinkEqualsName = true;77 }78 73 79 74 if ( sHRef == oLink.innerHTML ) 80 75 bLinkEqualsName = true ; … … 189 184 var sUri = GetE('txtUrl').value ; 190 185 sUri = FCKConfig.ProtectedSource.Protect(sUri); //#2509 191 186 var realUri = sUri; 192 if ( bLinkEqualsName ) {193 sUri = 'RTENOTITLE'+ sUri;194 }195 187 if (sUri.StartsWith( ':' ) ) 196 188 sUri = sUri.replace(/:/, "rtecolon"); 197 189 var sInnerHtml ; -
plugins/mediawiki/fckplugin.js
367 367 stringBuilder.push( isWikiUrl ? '[[' : '[' ) ; 368 368 } 369 369 //#2223 370 if (h ref.toLowerCase().StartsWith( 'rtenotitle' ))370 if (htmlNode.getAttribute( '_fcknotitle' ) && htmlNode.getAttribute( '_fcknotitle' ) == "true") 371 371 { 372 href = href.substring(10); 373 if ( FCKConfig.ProtectedSource.Revert(htmlNode.innerHTML, 0) == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false; 372 var testInner = FCKConfig.ProtectedSource.Revert(htmlNode.innerHTML, 0); 373 if (href.toLowerCase().StartsWith( 'category:' )) testInner = 'Category:'+testInner; 374 testInner = testInner.replace(/&/, "&") 375 if ( testInner == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false; 374 376 } 375 377 if (href.toLowerCase().StartsWith( 'rtecolon' )) //change 'rtecolon=' => ':' in links 376 378 {