From 635afb7815eb164fb4689e98e44f619264891ada Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Sat, 2 Nov 2013 13:07:41 +0100 Subject: [PATCH] tinymce heading plugin --- config/tinymce.yml | 7 ++ .../tinymce/plugins/heading/README.md | 59 ++++++++++++++++ .../tinymce/plugins/heading/editor_plugin.js | 63 ++++++++++++++++++ .../tinymce/plugins/heading/img/h1.gif | Bin 0 -> 1206 bytes .../tinymce/plugins/heading/img/h2.gif | Bin 0 -> 1206 bytes .../tinymce/plugins/heading/img/h3.gif | Bin 0 -> 1205 bytes .../tinymce/plugins/heading/img/h4.gif | Bin 0 -> 1207 bytes .../tinymce/plugins/heading/img/h5.gif | Bin 0 -> 1205 bytes .../tinymce/plugins/heading/img/h6.gif | Bin 0 -> 1205 bytes 9 files changed, 129 insertions(+) create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/README.md create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/editor_plugin.js create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h1.gif create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h2.gif create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h3.gif create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h4.gif create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h5.gif create mode 100644 vendor/assets/javascripts/tinymce/plugins/heading/img/h6.gif diff --git a/config/tinymce.yml b/config/tinymce.yml index 4563521..c456e07 100755 --- a/config/tinymce.yml +++ b/config/tinymce.yml @@ -2,6 +2,11 @@ theme_advanced_toolbar_location: top theme_advanced_toolbar_align: left theme_advanced_statusbar_location: bottom +theme_advanced_buttons1_add_before: + - h1 + - h2 + - h3 + - separator theme_advanced_buttons3_add: - tablecontrols - fullscreen @@ -9,3 +14,5 @@ plugins: - table - fullscreen - advimage + - heading +heading_clear_tag: p diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/README.md b/vendor/assets/javascripts/tinymce/plugins/heading/README.md new file mode 100644 index 0000000..4aa60bd --- /dev/null +++ b/vendor/assets/javascripts/tinymce/plugins/heading/README.md @@ -0,0 +1,59 @@ +Plugin: Heading +=============== + +Here is a Heading plugin for TinyMCE by WSL.RU +This plugin adds H1-H6 buttons to TinyMCE. +This plugin was developed by Andrey G and modified by ggoodd. +Further modifications made by Merten van Gerven. + + +Version History +=============== + +### 1.4 by Merten van Gerven +* refactored to reduce code duplication by using closures +* changed button icons to fit the default theme. +* fix for broken command execution (http://www.tinymce.com/forum/viewtopic.php?id=25260) + +### 1.3 +* rewrited for TinyMCE 3.x +- removed keyboard shortcuts (use Ctrl+1-6) + +### 1.2 by ggoodd ++ added keyboard shortcuts ++ added heading_clear_tag option +- removed language pack, advansed theme variables used instead + +### 1.1 by ggoodd ++ added buttons switching +- removed NoHeading button + +### 1.0 by Andrey G +* initial version + + +Installation +============ + +* clone this repository to your TinyMCE plugins directory and rename to 'heading'. +* Add plugin to TinyMCE plugin option list. +* Add heading buttons to button list. +* Set heading_clear_tag option if you need. Default value is undefined. + This option holds formating tag which is added on heading removal. + + +Initialization Example +====================== + +```js +tinyMCE.init({ + + theme : "advanced", + mode : "exact", + + plugins : "heading", + heading_clear_tag : "p", + theme_advanced_buttons1_add_before : "h1,h2,h3,h4,h5,h6,separator", + +}); +``` diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/editor_plugin.js b/vendor/assets/javascripts/tinymce/plugins/heading/editor_plugin.js new file mode 100644 index 0000000..b7c4a4d --- /dev/null +++ b/vendor/assets/javascripts/tinymce/plugins/heading/editor_plugin.js @@ -0,0 +1,63 @@ +/** + * + * @author WSL.RU + * @copyright Copyright (c) 2006-2009. All rights reserved. + * + */ + +(function(tinymce) { + + /** + * Add a new command to tiny MCE + */ + function addCommand(ed, url, headingNumber) { + var headingTag = 'h' + headingNumber; + + ed.addButton(headingTag, { + title : ed.getLang('advanced.' + headingTag, headingTag) + ' (Ctrl+' + headingNumber + ')', + image : url + '/img/' + headingTag + '.gif', + cmd: 'mceHeading' + headingNumber + }); + + ed.addCommand('mceHeading' + headingNumber, function() { + var ct = ed.getParam("heading_clear_tag", false) ? ed.getParam("heading_clear_tag", "") : ""; + + if (ed.selection.getNode().nodeName.toLowerCase() != headingTag) { + ct = headingTag; + } + + ed.execCommand('FormatBlock', false, ct) + }); + + ed.onNodeChange.add( function(ed, cm, n) { + cm.setActive(headingTag, n.nodeName.toLowerCase() == headingTag); + }); + } + + tinymce.create('tinymce.plugins.heading', { + /** + * Initialize the plugin + */ + init : function(ed, url) { + for (var headingNumber = 1; headingNumber <= 6; headingNumber++) { + addCommand(ed, url, headingNumber); + } + }, + + /** + * Plugin information + */ + getInfo : function() { + return { + longname : 'Heading plugin', + author : 'WSL.RU / Andrey G, ggoodd, Merten van Gerven', + authorurl : 'http://wsl.ru', + infourl : 'mailto:merten.vg@gmail.com', + version : '1.4' + }; + } + }); + + tinymce.PluginManager.add('heading', tinymce.plugins.heading); + +})(tinymce); \ No newline at end of file diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/img/h1.gif b/vendor/assets/javascripts/tinymce/plugins/heading/img/h1.gif new file mode 100644 index 0000000000000000000000000000000000000000..d61ab294545dec5362ef247ab187ab4d73ebbe23 GIT binary patch literal 1206 zcmZ?wbhEHb6k!lyXkcUjg8%>jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvKL?fq0y6ST@{2R_ z3lyA#O%=j3^HTE5i$ReC@vBQ}QD#|cid#{Bt^zo8tunFL?q)#9*ATra?I;nZU{89wW7>xh_{r&U%*Uul{zkU7k`P0V_@87+B^ZM1x z7tfzPee(Fx!w2{8-Mw@B*3BE&uU)-z`O?J;=g*xzbNbZD6UUDoJ#zTa!2|pE?cK9` z*UlZ=w{6|BdDF%X>({MavwGFa70Z_`U9x!5!Ugl^&7CuQ*322xr%jzQdD6rQ{e8VX z-Cdm>?QN|s%}tFB^>wv1)m4=h1nAc$w`R`@o}*+(NU2R z;bEa6!9jrm{(inb-d>&_?ryFw&Q6XF_I9>5)>f7l=4PfQ#zw$Qsi&)>t);1EF>tv&&SKd&Be*V&c@2Z%mgfA6o0Y+Nk#@8P-z1ycNm!T zd-_+Ne#^gj4qJqP-a6}>p9^J$(xk&C#m;JyvflOS&D!MC7nd!Xd0%=lNBfaSix?QJ E0dDxHF8}}l literal 0 HcmV?d00001 diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/img/h2.gif b/vendor/assets/javascripts/tinymce/plugins/heading/img/h2.gif new file mode 100644 index 0000000000000000000000000000000000000000..93c670519ab8152d5808e3308f9cb5ba65b6a151 GIT binary patch literal 1206 zcmZ?wbhEHb6k!lyXkcUjg8%>jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvKL?fq0y6ST@{2R_ z3lyA#O%=j3^HTE5i$ReC@vBQ}QD#|cid#{Bt^zo8tunFL?q)#9*ATra?I;nZU{89wW7>xh_{r&U%*Uul{zkU7k`P0V_@87+B^ZM1x z7tfzPee(Fx!w2{8-Mw@B*3BE&uU)-z`O?J;=g*xzbNbZD6UUDoJ#zTa!2|pE?cK9` z*UlZ=w{6|BdDF%X>({MavwGFa70Z_`U9x!5!Ugl^&7CuQ*322xr%jzQdD6rQ{e8VX z-Cdm>?QN|s%}tFB^>wv1)m4=h1nAc$w`R`@o}*+(NU2R z;bEa6!9jrm{(inb-d>&_?ryFw&Q6XF_I9>5)>f7l=4PfQ#zw$Qsi&)>t);1EF>tv&&SKd&Be*V&c@2Z%mgfA6o0Y+Nk#@8P-z1ycNm!T zd-_+Ne#^gj4qJqP-ZhJxpHmaer^!W5RNS=e&dN2p*=bs*?rF}bpY?Y!NBfaSiy0WK E0ryp?xBvhE literal 0 HcmV?d00001 diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/img/h3.gif b/vendor/assets/javascripts/tinymce/plugins/heading/img/h3.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb56260d3132d98965ec8bb8b6579e12eb141c77 GIT binary patch literal 1205 zcmZ?wbhEHb6k!lyXkcUjg8%>jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvnT#O7Y&CCoe%nc1)jhvj_jGP@^ zU0n^FU0n=KOkjFF^NLFn^O93x_GSX@h3W;`ibt=Nb5UwyNq$jCetr%t1q5W|m*f{` z1N{AbeZ0LqJ>1<~U7Vd99qjFFZLF;GkxlJpGn`@f@}Y0ljM$H$SH)m`{_7oT#{Inau5FYBlG|mX%rl$^7BU$<=jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvKL?fq0y6ST@{2R_ z3lyA#O%=j3^HTE5i$ReC@vBQ}QD#|cid#{Bt^zo8tunFL?q)#9*ATra?I;nZU{89wW7>xh_{r&U%*Uul{zkU7k`P0V_@87+B^ZM1x z7tfzPee(Fx!w2{8-Mw@B*3BE&uU)-z`O?J;=g*xzbNbZD6UUDoJ#zTa!2|pE?cK9` z*UlZ=w{6|BdDF%X>({MavwGFa70Z_`U9x!5!Ugl^&7CuQ*322xr%jzQdD6rQ{e8VX z-Cdm>?QN|s%}tFB^>wv1)m4=h1nAc$w`R`@o}*+(NU2R z;bEa6!9jrm{(inb-d>&_?ryFw&Q6XF_I9>5)>f7l=4PfQ#zw$Qsi&)>t);1EF>tv&&SKd&Be*V&c@2Z%mgfA6o0Y+Nk#@8P-z1ycNmxq zdiqzMe#^gj4qJqPo?Y12U5$$3b&+OGD(zLbw$EJMmDQ=ay?o}gZMt58ZATUr1~M>M F0{}b;rzHRY literal 0 HcmV?d00001 diff --git a/vendor/assets/javascripts/tinymce/plugins/heading/img/h5.gif b/vendor/assets/javascripts/tinymce/plugins/heading/img/h5.gif new file mode 100644 index 0000000000000000000000000000000000000000..a31a651d8ed1da466502c1fa56d9c897bf12a515 GIT binary patch literal 1205 zcmZ?wbhEHb6k!lyXkcUjg8%>jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lv=F@2z8^g&4j zDXGAOfawp!geQC;2cC6O^MLuK2$(S#|Nr~@=l8FlKfZta`sMSdk00K@d;8|~tCugH zKYRM*@uPti4*$!dV9LN zIy>6iT3ec%8XM~CYHO;iDl5v%N=u513Jdb{a&xk?GBeWCQd5$X5)DCA|t}X zLPLUs0t5X0e0{vVJU!gqTwR=<93AZKY;CNqEG^8jEB@z>@C{IKNi0bO(l+)L1&PVosU-?Ysp*+{wo31J z?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&Psj#ZZEyztRNmQuF&B-ga zs<2f`Ovz75wF0t1!um=IU?nBlwn~m52?day&iO^D3Z{Any2%D+1`1||dWOa(=H})) z3PuKo2Koj@`i4fjhUQkrMpgy}3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qXu2*iX zmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2NtnTP2`N zAzsKW@b!fooL8&|_K;q3ey)B+Vu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9lvNUcv*UGslHL)bWC?r2W2bKZ?GV)9Ei!<^I z6r6)i6~Z&~Qu51-L6HOTt4nH8W?5>ATTyQsQUuHxjQ{`r{qy_R&mZ5vef{$J)5j0*-@SeF`qj%9 z&!0Vg^7zri2lwyYy>t84%^TORUA=Po(!~qs&z(JU`qar2$B!L7a`@1}1N-;w-Lrew z&K=vgZQZhY)5ZeMTG_VdAT{+S(zE>X{jm6Nr?&Zaj`McQIQeh zVWAmo_rKzE=rmCW> zq^KY-Co3Z@B`F~;CMqH&FX1T10{f3g5cMg|>FX#*;E7?|{W z`d6NQ%fEOITZDk#y0Fr^ntRi7A4$x*wPK}$Qk~JyY40=d=iOSX>c`2|?&8MCU=0As C&8Aua literal 0 HcmV?d00001