Show
Ignore:
Timestamp:
2008-08-27 16:58:27 (4 months ago)
Author:
wwalc
Message:

Changed the way how FCKeditor is loaded + a couple of other bugfixes

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • MediaWiki/trunk/FCKeditorParser.body.php

    r2077 r2388  
    154154         */ 
    155155        function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) { 
    156                 global $wgContLang; 
     156                global $wgContLang, $wgUseTeX, $wgScriptPath; 
    157157 
    158158                wfProfileIn( __METHOD__ ); 
     
    165165 
    166166                $elements = array_merge( 
    167                 array( 'nowiki', 'gallery' ), 
     167                array( 'nowiki', 'gallery', 'math' ), 
    168168                array_keys( $this->mTagHooks ) ); 
    169169                global $wgRawHtml; 
    170170                if( $wgRawHtml ) { 
    171171                        $elements[] = 'html'; 
    172                 } 
    173                 if( $this->mOptions->getUseTeX() ) { 
    174                         $elements[] = 'math'; 
    175172                } 
    176173 
     
    210207                                                break; 
    211208                                        case 'math': 
    212                                                 $output = $wgContLang->armourMath( MathRenderer::renderMath( $content ) ); 
     209                                                if($wgUseTeX){          //normal render 
     210                                                        $output = $wgContLang->armourMath( MathRenderer::renderMath( $content ) ); 
     211                                                }else                           //show fakeimage 
     212                                                        $output = '<img _fckfakelement="true" class="FCK__MWMath" _fck_mw_math="'.$content.'" src="'.$wgScriptPath.'/skins/common/images/button_math.png" />'; 
    213213                                                break; 
    214214                                        case 'gallery': 
     
    307307 
    308308        function replaceInternalLinks( $text ) { 
     309                $text = preg_replace("/\[\[:(.*?)\]\]/", "[[RTECOLON$1]]", $text);      //change ':' => 'RTECOLON' in links 
    309310                return parent::replaceInternalLinks($text); 
    310311        } 
     
    374375                        foreach ($tags as $pos=>$type) { 
    375376                                $sum += $type; 
     377                                if (!$pos) { 
     378                                        $opened = 0; 
     379                                        $closed = 0; 
     380                                } 
     381                                else { 
     382                                        $opened = substr_count($text, '[', 0, $pos);                    //count [  
     383                                        $closed = substr_count($text, ']', 0, $pos);                    //count ] 
     384                                } 
    376385                                if ($sum == 1 && $lastSum == 0) { 
    377386                                        $stringToParse .= strtr(substr($text, $startingPos, $pos - $startingPos), $strtr); 
     
    382391                                        $inner = htmlspecialchars(strtr(substr($text, $startingPos, $pos - $startingPos + 19), $strtr)); 
    383392                                        $this->fck_mw_strtr_span['href="Fckmw'.$this->fck_mw_strtr_span_counter.'fckmw"'] = 'href="'.$inner.'"'; 
    384                                         $this->fck_mw_strtr_span['Fckmw'.$this->fck_mw_strtr_span_counter.'fckmw'] = '<span class="fck_mw_template">'.str_replace(array("\r\n", "\n", "\r"),"fckLR",$inner).'</span>'; 
     393                                        if($opened <= $closed) {                                                // {{template}} is NOT in [] or [[]] 
     394                                                $this->fck_mw_strtr_span['Fckmw'.$this->fck_mw_strtr_span_counter.'fckmw'] = '<span class="fck_mw_template">'.str_replace(array("\r\n", "\n", "\r"),"fckLR",$inner).'</span>'; 
     395                                        }else{ 
     396                                                $this->fck_mw_strtr_span['Fckmw'.$this->fck_mw_strtr_span_counter.'fckmw'] = str_replace(array("\r\n", "\n", "\r"),"fckLR",$inner); 
     397                                        } 
    385398                                        $startingPos = $pos + 19; 
    386399                                        $this->fck_mw_strtr_span_counter++;