Ticket #2223: 2223_5.patch

File 2223_5.patch, 9.3 KB (added by arczi, 18 months ago)
  • FCKeditorParser.body.php

     
    305305        } 
    306306 
    307307        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]] 
    309309                $text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text);      //change ':' => 'RTECOLON' in links 
    310310                $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 
    313312 
    314313                return $text; 
    315314        } 
  • FCKeditorSkin.body.php

     
    2424                $imgName = $img->getName(); 
    2525                $found = $img->getURL(); 
    2626 
     27                if (!is_null($alt) && ( $alt == 'RTENOTITLE' ))  {              //2223 
     28                        $alt = ''; 
     29                } 
     30 
    2731                if ($found) { 
    2832                        //trick to get real Url for image: 
    2933                        $originalLink = strip_tags(Linker::makeImageLinkObj($nt, $label, $alt, $align , $params , $framed , $thumb , $manual_thumb , $valign ), "<img>"); 
     
    125129                $imgName = $img->getName(); 
    126130                $found = $img->getURL(); 
    127131 
     132                if( $frameParams['alt'] == 'RTENOTITLE' ){      //2223 
     133                        $frameParams['alt'] = ''; 
     134                } 
    128135                if ($found) { 
    129136                        $linker = new Linker(); 
    130137                        $originalLink = $linker->makeImageLink2( $nt, $file, $frameParams, $handlerParams); 
     
    212219 
    213220                return $ret; 
    214221        } 
     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' ); 
    215233 
     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        } 
    216255        function makeKnownLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' , $aprops = '', $style = '' ) { 
    217256                $fname = 'FCKeditorSkin::makeKnownLinkObj'; 
    218257                wfProfileIn( $fname ); 
    219258 
     259                $args = ''; 
    220260                if ( !is_object( $nt ) ) { 
    221261                        wfProfileOut( $fname ); 
    222262                        return $text; 
     
    249289                } 
    250290 
    251291                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( $text == 'RTENOTITLE' ){ 
     296                        $args .= '_fcknotitle="true" '; 
     297                        $title = $u; 
     298                } 
     299 
     300                $r = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; 
    253301                wfProfileOut( $fname ); 
    254302                return $r; 
    255303        } 
     
    260308                        # throw new MWException(); 
    261309                        return "<!-- ERROR -->{$prefix}{$text}{$trail}"; 
    262310                } 
     311                $args = ''; 
    263312 
    264313                $fname = 'FCKeditorSkin::makeBrokenLinkObj'; 
    265314                wfProfileIn( $fname ); 
     
    274323                } 
    275324 
    276325                list( $inside, $trail ) = Linker::splitTrail( $trail ); 
    277                 $s = "<a href=\"{$u}\">{$prefix}{$text}{$inside}</a>{$trail}"; 
     326                $title = "{$prefix}{$text}{$inside}"; 
    278327 
     328                $u = preg_replace("/^RTECOLON/", ":", $u);      //change 'RTECOLON' => ':' 
     329                if( $text == 'RTENOTITLE' ){ 
     330                        $args .= '_fcknotitle="true" '; 
     331                        $title = $u; 
     332                } 
     333                 
     334                $s = "<a {$args}href=\"{$u}\">{$title}</a>{$trail}"; 
     335 
    279336                wfProfileOut( $fname ); 
    280337                return $s; 
    281338        } 
    282339 
     340        function makeSelfLinkObj( $nt, $text = '', $query = '', $trail = '', $prefix = '' ) { 
     341                if ( '' == $text ) { 
     342                        $text = $nt->mDbkeyform; 
     343                } 
     344                list( $inside, $trail ) = Linker::splitTrail( $trail ); 
     345                $title = "{$prefix}{$text}{$inside}"; 
     346                if( $text == 'RTENOTITLE' ){                    //2223 
     347                        $args .= '_fcknotitle="true" '; 
     348                        $title = $nt->mDbkeyform; 
     349                } 
     350                return "<a {$args}href=\"".$nt->mDbkeyform."\" class=\"selflink\">{$title}</a>{$trail}"; 
     351        } 
     352 
    283353        /** 
    284354         * Create a direct link to a given uploaded file. 
    285355         * 
     
    295365                        ### HOTFIX. Instead of breaking, return empty string. 
    296366                        return $text; 
    297367                } else { 
     368                        $args = ''; 
    298369                        $orginal = $title->getPartialURL(); 
    299370                        // Mediawiki 1.11 
    300371                        if ( function_exists('wfFindFile') ) { 
     
    324395                        if( $text == '' ) { 
    325396                                $text = $alt; 
    326397                        } 
    327                         $u = htmlspecialchars( $url ); 
    328                         return "<a href=\"{$orginal}\" class=\"$class\" _fck_mw_filename=\"{$orginal}\" _fck_mw_type=\"media\" title=\"{$alt}\">{$text}</a>"; 
     398                        $orginal = preg_replace("/^RTECOLON/", ":", $orginal);  //change 'RTECOLON' => ':' 
     399                        if( $text == 'RTENOTITLE' ){                    //2223 
     400                                $args .= '_fcknotitle="true" '; 
     401                                $text = $orginal; 
     402                                $alt = $orginal; 
     403                        } 
     404                        return "<a href=\"{$orginal}\" class=\"$class\" {$args} _fck_mw_filename=\"{$orginal}\" _fck_mw_type=\"media\" title=\"{$alt}\">{$text}</a>"; 
    329405                } 
    330406        } 
    331407 
     
    334410                if( $escape ) { 
    335411                        $text = htmlspecialchars( $text ); 
    336412                } 
     413                $url = preg_replace("/^RTECOLON/", ":", $url);  //change 'RTECOLON' => ':' 
    337414                if ($linktype == 'autonumber') { 
    338415                        return '<a href="'.$url.'">[n]</a>'; 
    339416                } 
    340                 return '<a href="'.$url.'">'.$text.'</a>'; 
     417                $args = ''; 
     418                if( $text == 'RTENOTITLE' ){                                                            //2223 
     419                        $args .= '_fcknotitle="true" '; 
     420                        $text = $url; 
     421                } 
     422                return '<a '.$args.'href="'.$url.'">'.$text.'</a>'; 
    341423        } 
    342424 
    343425        function __call( $m, $a) { 
  • mw12/FCKeditorParser_OldPP.body.php

     
    306306        } 
    307307 
    308308        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]] 
    310310                $text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text);      //change ':' => 'RTECOLON' in links 
    311311                $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 
    314313 
    315314                return $text; 
    316315        } 
    317316 
     317 
    318318        function makeImage( $nt, $options ) { 
    319319                FCKeditorParser::$fkc_mw_makeImage_options = $options; 
    320320                return parent::makeImage( $nt, $options ); 
     
    496496                        } 
    497497                        $parserOutput->setText($text); 
    498498                } 
    499                  
     499 
    500500                if (!empty($parserOutput->mLanguageLinks)) { 
    501501                        foreach ($parserOutput->mLanguageLinks as $l) { 
    502502                                $parserOutput->setText($parserOutput->getText() . "\n" . "<a href=\"".$l."\">".$l."</a>") ; 
  • plugins/mediawiki/dialogs/link.html

     
    7070                sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; 
    7171                 
    7272        sHRef = FCKConfig.ProtectedSource.Revert(sHRef, 0);             //#2509 
    73         if (sHRef.toLowerCase().StartsWith( 'rtenotitle' ) ) 
    74         { 
    75                 sHRef = sHRef.substring(10); 
    76                 bLinkEqualsName = true; 
    77         } 
    7873                 
    7974        if ( sHRef == oLink.innerHTML ) 
    8075                bLinkEqualsName = true ; 
     
    189184        var sUri = GetE('txtUrl').value ; 
    190185        sUri  = FCKConfig.ProtectedSource.Protect(sUri);                //#2509 
    191186        var realUri = sUri; 
    192         if ( bLinkEqualsName ) { 
    193                 sUri = 'RTENOTITLE'+ sUri; 
    194         } 
    195187        if (sUri.StartsWith( ':' ) ) 
    196188                sUri = sUri.replace(/:/, "rtecolon"); 
    197189        var sInnerHtml ; 
  • plugins/mediawiki/fckplugin.js

     
    367367                                                                stringBuilder.push( isWikiUrl ? '[[' : '[' ) ; 
    368368                                                        } 
    369369                                                        //#2223 
    370                                                         if (href.toLowerCase().StartsWith( 'rtenotitle' )) 
     370                                                        if (htmlNode.getAttribute( '_fcknotitle' ) && htmlNode.getAttribute( '_fcknotitle' ) == "true") 
    371371                                                        { 
    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                                                                testInner = testInner.replace(/&amp;/, "&")  
     374                                                                if ( testInner == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false; 
    374375                                                        } 
    375376                                                        if (href.toLowerCase().StartsWith( 'rtecolon' ))                //change 'rtecolon=' => ':' in links 
    376377                                                        {