Ticket #2432: 2432.patch

File 2432.patch, 9.3 KB (added by Artur Formella, 12 years ago)
  • FCKeditorParser.body.php

     
    111111        * @param array $argv Arguments
    112112        * @return string
    113113        */
    114         function fck_wikiTag( $tagName, $str, $argv = array()) {
     114        function fck_wikiTag( $tagName, $str, $argv = array(), $class= NULL) {
     115                if (!$class) {
     116                        $class = $tagName;
     117                }
    115118                if (empty($argv)) {
    116                         $ret = "<span class=\"fck_mw_".$tagName."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
     119                        $ret = "<span class=\"fck_mw_".$class."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
    117120                }
    118121                else {
    119                         $ret = "<span class=\"fck_mw_".$tagName."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
     122                        $ret = "<span class=\"fck_mw_".$class."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\"";
    120123                        foreach ($argv as $key=>$value) {
    121124                                $ret .= " ".$key."=\"".$value."\"";
    122125                        }
     
    153156         * @private
    154157         */
    155158        function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) {
    156                 global $wgContLang, $wgUseTeX, $wgScriptPath;
     159                global $wgContLang, $wgUseTeX, $wgScriptPath, $RTEprotectedTags;
    157160
    158161                wfProfileIn( __METHOD__ );
    159162                $render = ($this->mOutputType == OT_HTML);
     
    163166                $nowikiItems = array();
    164167                $generalItems = array();
    165168
     169                if(!isset($RTEprotectedTags)){$RTEprotectedTags=array();}
    166170                $elements = array_merge(
    167171                array( 'nowiki', 'gallery', 'math' ),
     172                array_keys( $RTEprotectedTags ),
    168173                array_keys( $this->mTagHooks ) );
    169174                global $wgRawHtml;
    170175                if( $wgRawHtml ) {
     
    215220                                                //$output = $this->renderImageGallery( $content, $params );
    216221                                                break;
    217222                                        default:
    218                                                 if( isset( $this->mTagHooks[$tagName] ) ) {
     223                                                if ( in_array($tagName, array_keys($RTEprotectedTags)) && ($RTEprotectedTags[$tagName]['protect'])) {
     224                                                        $output = $this->fck_wikiTag($tagName, $content, $params, 'special');
     225                                                } else if( isset( $this->mTagHooks[$tagName] ) ) {
    219226                                                        $this->fck_mw_taghook = $tagName; //required by FCKeditor
    220227                                                        $output = call_user_func_array( $this->mTagHooks[$tagName],
    221228                                                        array( $content, $params, $this ) );
  • FCKeditorSajax.body.php

     
    3737}
    3838
    3939function wfSajaxSearchSpecialTagFCKeditor($empty) {
    40         global $wgParser, $wgRawHtml;
     40        global $wgParser, $RTEprotectedTags, $wgRawHtml;
    4141
    42         $ret = "nowiki\nincludeonly\nonlyinclude\nnoinclude\ngallery\n";
    43         if( $wgRawHtml )
     42        $ret = array("nowiki", "includeonly", "onlyinclude", "noinclude", "gallery");
     43       
     44        foreach ($RTEprotectedTags as $key => $h) {     //2432
     45                $customtag = $key;
     46
     47                if (!empty($RTEprotectedTags[$key]['args'])) {
     48                                $customtag.=':'. implode(":", $RTEprotectedTags[$key]['args']);
     49                }
     50                $ret[] = $customtag;
     51        }
     52       
     53        if( $wgRawHtml && !in_array('html', $ret))
    4454        {
    45                 $ret.="html\n";
     55                $ret[] = 'html';
    4656        }
    4757        foreach ($wgParser->getTags() as $h) {
    4858                if (!in_array($h, array("pre", "math", "ref", "references"))) {
    49                         $ret .= $h ."\n";
     59                        $ret[] = $h;
    5060                }
    5161        }
     62       
     63        sort($ret);
     64        $ret = implode("\n", $ret);
    5265        return $ret;
    5366}
    5467
  • mw12/FCKeditorParser_OldPP.body.php

     
    112112        * @param array $argv Arguments
    113113        * @return string
    114114        */
    115         function fck_wikiTag( $tagName, $str, $argv = array()) {
     115        function fck_wikiTag( $tagName, $str, $argv = array(), $class= NULL) {
     116                if (!$class) {
     117                        $class = $tagName;
     118                }
    116119                if (empty($argv)) {
    117                         $ret = "<span class=\"fck_mw_".$tagName."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
     120                        $ret = "<span class=\"fck_mw_".$class."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
    118121                }
    119122                else {
    120                         $ret = "<span class=\"fck_mw_".$tagName."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\">";
     123                        $ret = "<span class=\"fck_mw_".$class."\" _fck_mw_customtag=\"true\" _fck_mw_tagname=\"".$tagName."\"";
    121124                        foreach ($argv as $key=>$value) {
    122125                                $ret .= " ".$key."=\"".$value."\"";
    123126                        }
     
    154157         * @private
    155158         */
    156159        function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) {
    157                 global $wgContLang, $wgUseTeX, $wgScriptPath;
     160                global $wgContLang, $wgUseTeX, $wgScriptPath, $RTEprotectedTags;
    158161
    159162                wfProfileIn( __METHOD__ );
    160163                $render = ($this->mOutputType == OT_HTML);
     
    164167                $nowikiItems = array();
    165168                $generalItems = array();
    166169
     170                if(!isset($RTEprotectedTags)){$RTEprotectedTags=array();}
    167171                $elements = array_merge(
    168172                array( 'nowiki', 'gallery', 'math' ),
     173                array_keys( $RTEprotectedTags ),
    169174                array_keys( $this->mTagHooks ) );
    170175                global $wgRawHtml;
    171176                if( $wgRawHtml ) {
     
    216221                                                //$output = $this->renderImageGallery( $content, $params );
    217222                                                break;
    218223                                        default:
    219                                                 if( isset( $this->mTagHooks[$tagName] ) ) {
     224                                                if ( in_array($tagName, array_keys($RTEprotectedTags)) && ($RTEprotectedTags[$tagName]['protect'])) {
     225                                                        $output = $this->fck_wikiTag($tagName, $content, $params, 'special');
     226                                                } else if( isset( $this->mTagHooks[$tagName] ) ) {
    220227                                                        $this->fck_mw_taghook = $tagName; //required by FCKeditor
    221228                                                        $output = call_user_func_array( $this->mTagHooks[$tagName],
    222229                                                        array( $content, $params, $this ) );
  • plugins/mediawiki/dialogs/special.html

     
    4545var oTemplateSpan ;
    4646var sFakeClass = 'FCK__MWSpecial';
    4747var sSelectedTag = "";
     48var tagData = Array();
    4849
    4950if ( oFakeImage )
    5051{
     
    113114
    114115        if ( results.length > 0 && !( results.length == 1 && results[0].length == 0 ) )
    115116        {
    116                 for ( var i = 0 ; i < results.length ; i++ )
    117                         FCKTools.AddSelectOption( select, results[i], results[i] ) ;
     117                for ( var i = 0 ; i < results.length ; i++ ) {
     118                        var tagName = results[i].toString().split( ':' );
     119                        tagData[tagName[0]] = tagName;
     120                        FCKTools.AddSelectOption( select, tagName[0], tagName[0] ) ;
     121
     122                        if ((sSelectedTag == tagName[0]) && (tagName.length>1)) {               //2432
     123                                var argsDiv = GetE( 'args' );
     124                                var argsHTML='<table cellpadding=0 border=0>';
     125
     126                                for( var j=1 ; j < tagName.length; j++ ) {
     127                                        var args = tagName[j].toString().split( ';' );
     128                                        var argValue = "";
     129                                        if(oTemplateSpan){
     130                                                 argValue = oTemplateSpan.getAttribute( args[0] );
     131                                        }
     132                                        if (argValue == null) argValue="";
     133                                        argsHTML+='<tr><td>'+args[0]+':</td> <td><input id="'+ args[0] +'" type="text" value="'+ argValue +'"></td></tr>';
     134                                }
     135                                argsHTML+="</table>";
     136                                argsDiv.innerHTML=argsHTML;
     137                        }
     138                }
    118139        }
     140
    119141       
    120142        if ( sSelectedTag ) {
    121143                select.value = sSelectedTag ;
     
    142164function LoadDocumentation()
    143165{
    144166        var tagName = GetE('xSelectTag').value;
     167        var argsDiv = GetE( 'args' );
     168        var argsHTML='<table  cellpadding=0 cellspacing=0 border=0>';
     169        var selTagData = tagData[tagName];
     170        if (selTagData) {                       //2432
     171
     172                for( var j=1 ; j < selTagData.length; j++ ) {
     173                        var args = selTagData[j].toString().split( ';' );
     174                        var argValue = "";
     175                        if(oTemplateSpan){
     176                                 argValue = oTemplateSpan.getAttribute( args[0] );
     177                        }
     178                        if(argValue == null) argValue="";
     179                        argsHTML+='<tr><td>'+args[0]+':</td> <td><input id="'+ args[0] +'" type="text" value="'+ argValue +'"></td></tr>';
     180                }
     181        }
     182        argsHTML+="</table>";
     183        argsDiv.innerHTML=argsHTML;
     184                               
    145185        if (tagName == 'dpl')
    146186                GetE('xDefinition').innerHTML = 'DPL stands for Dynamic Page List, and allows to generate a formatted list of pages based on selection criteria. See <a href="#" onclick="javascript:window.open(\'http://semeb.com/dpldemo/index.php?title=Dynamic_Page_List\')">manual</a> for details';
    147187               
     
    161201       
    162202        var templateData = FCKTools.HTMLEncode(GetE('xTemplateRaw').value.Trim().replace(/(\r\n|\n)/g, 'fckLR' )).replace( /"/g, '&quot;' ) ;
    163203       
     204        var selTagData = tagData[GetE('xSelectTag').value];             //2432 add custom attributes
     205        if (selTagData) {
     206                for( var j=1 ; j < selTagData.length; j++ ) {
     207                        var args = selTagData[j].toString().split( ';' );
     208                        argObj = GetE(args[0]);
     209                        if(argObj){
     210                                argValue = argObj.value;
     211                                if ( argValue != "" )
     212                                        oTemplateSpan.setAttribute(args[0], FCKTools.HTMLEncode(argValue),0);
     213                                else
     214                                        oTemplateSpan.removeAttribute(args[0]);
     215                        }
     216                }
     217        }
     218
    164219        oTemplateSpan.innerHTML = templateData ;
    165220        SetAttribute( oTemplateSpan, '_fck_mw_tagname', GetE('xSelectTag').value ) ;   
    166221
     
    203258
    204259        </script>
    205260</head>
    206 <body style="overflow: hidden">
     261<body >
    207262        <div id="divInfo">
    208263                <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
    209264                        <tr>
     
    225280                                                cols="50" rows="10" wrap="off"></textarea>
    226281                                </td>
    227282                        </tr>
     283                        <tr>
     284                                <td>
     285                                        <div id="args"></div>
     286                                </td>
     287                        </tr>
    228288                </table>
    229289        </div>
    230290</body>
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy