Ticket #2223: 2223_5.2.patch

File 2223_5.2.patch, 10.5 KB (added by Artur Formella, 16 years 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        }
     
    468467                if ($categories) {
    469468                        $appendString = "";
    470469                        foreach ($categories as $cat=>$val) {
     470                                $args = '';
     471                                if( $val == 'RTENOTITLE' ){
     472                                                $args .= '_fcknotitle="true" ';
     473                                        $val = $cat;
     474                                }
    471475                                if ($val != $title->mTextform) {
    472                                         $appendString .= "<a href=\"Category:" . $cat ."\">" . $val ."</a> ";
     476                                        $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">" . $val ."</a> ";
    473477                                }
    474478                                else {
    475                                         $appendString .= "<a href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";
     479                                        $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";
    476480                                }
    477481                        }
    478482                        $parserOutput->setText($parserOutput->getText() . $appendString);
  • 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( 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}";
    253302                wfProfileOut( $fname );
    254303                return $r;
    255304        }
     
    260309                        # throw new MWException();
    261310                        return "<!-- ERROR -->{$prefix}{$text}{$trail}";
    262311                }
     312                $args = '';
    263313
    264314                $fname = 'FCKeditorSkin::makeBrokenLinkObj';
    265315                wfProfileIn( $fname );
     
    274324                }
    275325
    276326                list( $inside, $trail ) = Linker::splitTrail( $trail );
    277                 $s = "<a href=\"{$u}\">{$prefix}{$text}{$inside}</a>{$trail}";
     327                $title = "{$prefix}{$text}{$inside}";
    278328
     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
    279337                wfProfileOut( $fname );
    280338                return $s;
    281339        }
    282340
     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
    283354        /**
    284355         * Create a direct link to a given uploaded file.
    285356         *
     
    295366                        ### HOTFIX. Instead of breaking, return empty string.
    296367                        return $text;
    297368                } else {
     369                        $args = '';
    298370                        $orginal = $title->getPartialURL();
    299371                        // Mediawiki 1.11
    300372                        if ( function_exists('wfFindFile') ) {
     
    324396                        if( $text == '' ) {
    325397                                $text = $alt;
    326398                        }
    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>";
    329406                }
    330407        }
    331408
     
    334411                if( $escape ) {
    335412                        $text = htmlspecialchars( $text );
    336413                }
     414                $url = preg_replace("/^RTECOLON/", ":", $url);  //change 'RTECOLON' => ':'
    337415                if ($linktype == 'autonumber') {
    338416                        return '<a href="'.$url.'">[n]</a>';
    339417                }
    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>';
    341424        }
    342425
    343426        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        }
     
    469468                if ($categories) {
    470469                        $appendString = "";
    471470                        foreach ($categories as $cat=>$val) {
     471                                $args = '';
     472                                if( $val == 'RTENOTITLE' ){
     473                                                $args .= '_fcknotitle="true" ';
     474                                        $val = $cat;
     475                                }
    472476                                if ($val != $title->mTextform) {
    473                                         $appendString .= "<a href=\"Category:" . $cat ."\">" . $val ."</a> ";
     477                                        $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">" . $val ."</a> ";
    474478                                }
    475479                                else {
    476                                         $appendString .= "<a href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";
     480                                        $appendString .= "<a ".$args."href=\"Category:" . $cat ."\">Category:" . $cat ."</a> ";
    477481                                }
    478482                        }
    479483                        $parserOutput->setText($parserOutput->getText() . $appendString);
  • 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                                                                if (href.toLowerCase().StartsWith( 'category:' )) testInner = 'Category:'+testInner;
     374                                                                testInner = testInner.replace(/&amp;/, "&")
     375                                                                if ( testInner == FCKConfig.ProtectedSource.Revert(href, 0) ) pipeline = false;
    374376                                                        }
    375377                                                        if (href.toLowerCase().StartsWith( 'rtecolon' ))                //change 'rtecolon=' => ':' in links
    376378                                                        {
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy