Ticket #2432: 2432.patch
File 2432.patch, 9.3 KB (added by , 15 years ago) |
---|
-
FCKeditorParser.body.php
111 111 * @param array $argv Arguments 112 112 * @return string 113 113 */ 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 } 115 118 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."\">"; 117 120 } 118 121 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."\""; 120 123 foreach ($argv as $key=>$value) { 121 124 $ret .= " ".$key."=\"".$value."\""; 122 125 } … … 153 156 * @private 154 157 */ 155 158 function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) { 156 global $wgContLang, $wgUseTeX, $wgScriptPath ;159 global $wgContLang, $wgUseTeX, $wgScriptPath, $RTEprotectedTags; 157 160 158 161 wfProfileIn( __METHOD__ ); 159 162 $render = ($this->mOutputType == OT_HTML); … … 163 166 $nowikiItems = array(); 164 167 $generalItems = array(); 165 168 169 if(!isset($RTEprotectedTags)){$RTEprotectedTags=array();} 166 170 $elements = array_merge( 167 171 array( 'nowiki', 'gallery', 'math' ), 172 array_keys( $RTEprotectedTags ), 168 173 array_keys( $this->mTagHooks ) ); 169 174 global $wgRawHtml; 170 175 if( $wgRawHtml ) { … … 215 220 //$output = $this->renderImageGallery( $content, $params ); 216 221 break; 217 222 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] ) ) { 219 226 $this->fck_mw_taghook = $tagName; //required by FCKeditor 220 227 $output = call_user_func_array( $this->mTagHooks[$tagName], 221 228 array( $content, $params, $this ) ); -
FCKeditorSajax.body.php
37 37 } 38 38 39 39 function wfSajaxSearchSpecialTagFCKeditor($empty) { 40 global $wgParser, $ wgRawHtml;40 global $wgParser, $RTEprotectedTags, $wgRawHtml; 41 41 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)) 44 54 { 45 $ret .="html\n";55 $ret[] = 'html'; 46 56 } 47 57 foreach ($wgParser->getTags() as $h) { 48 58 if (!in_array($h, array("pre", "math", "ref", "references"))) { 49 $ret .= $h ."\n";59 $ret[] = $h; 50 60 } 51 61 } 62 63 sort($ret); 64 $ret = implode("\n", $ret); 52 65 return $ret; 53 66 } 54 67 -
mw12/FCKeditorParser_OldPP.body.php
112 112 * @param array $argv Arguments 113 113 * @return string 114 114 */ 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 } 116 119 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."\">"; 118 121 } 119 122 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."\""; 121 124 foreach ($argv as $key=>$value) { 122 125 $ret .= " ".$key."=\"".$value."\""; 123 126 } … … 154 157 * @private 155 158 */ 156 159 function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) { 157 global $wgContLang, $wgUseTeX, $wgScriptPath ;160 global $wgContLang, $wgUseTeX, $wgScriptPath, $RTEprotectedTags; 158 161 159 162 wfProfileIn( __METHOD__ ); 160 163 $render = ($this->mOutputType == OT_HTML); … … 164 167 $nowikiItems = array(); 165 168 $generalItems = array(); 166 169 170 if(!isset($RTEprotectedTags)){$RTEprotectedTags=array();} 167 171 $elements = array_merge( 168 172 array( 'nowiki', 'gallery', 'math' ), 173 array_keys( $RTEprotectedTags ), 169 174 array_keys( $this->mTagHooks ) ); 170 175 global $wgRawHtml; 171 176 if( $wgRawHtml ) { … … 216 221 //$output = $this->renderImageGallery( $content, $params ); 217 222 break; 218 223 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] ) ) { 220 227 $this->fck_mw_taghook = $tagName; //required by FCKeditor 221 228 $output = call_user_func_array( $this->mTagHooks[$tagName], 222 229 array( $content, $params, $this ) ); -
plugins/mediawiki/dialogs/special.html
45 45 var oTemplateSpan ; 46 46 var sFakeClass = 'FCK__MWSpecial'; 47 47 var sSelectedTag = ""; 48 var tagData = Array(); 48 49 49 50 if ( oFakeImage ) 50 51 { … … 113 114 114 115 if ( results.length > 0 && !( results.length == 1 && results[0].length == 0 ) ) 115 116 { 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 } 118 139 } 140 119 141 120 142 if ( sSelectedTag ) { 121 143 select.value = sSelectedTag ; … … 142 164 function LoadDocumentation() 143 165 { 144 166 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 145 185 if (tagName == 'dpl') 146 186 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'; 147 187 … … 161 201 162 202 var templateData = FCKTools.HTMLEncode(GetE('xTemplateRaw').value.Trim().replace(/(\r\n|\n)/g, 'fckLR' )).replace( /"/g, '"' ) ; 163 203 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 164 219 oTemplateSpan.innerHTML = templateData ; 165 220 SetAttribute( oTemplateSpan, '_fck_mw_tagname', GetE('xSelectTag').value ) ; 166 221 … … 203 258 204 259 </script> 205 260 </head> 206 <body style="overflow: hidden">261 <body > 207 262 <div id="divInfo"> 208 263 <table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%"> 209 264 <tr> … … 225 280 cols="50" rows="10" wrap="off"></textarea> 226 281 </td> 227 282 </tr> 283 <tr> 284 <td> 285 <div id="args"></div> 286 </td> 287 </tr> 228 288 </table> 229 289 </div> 230 290 </body>