<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.direct.quickconnect.to/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software - software:development:web:docs:web:wysiwyg</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Sat, 11 Apr 2026 04:55:22 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.direct.quickconnect.to/</link>
        </image>
        <item>
            <title>nicedit_nicedit_js_n</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_js_n&amp;rev=1767790605</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niceditjs&quot;&gt;nicEdit.js&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://js.nicedit.com/nicEdit.js&quot; class=&quot;urlextern&quot; title=&quot;https://js.nicedit.com/nicEdit.js&quot; rel=&quot;ugc nofollow&quot;&gt;https://js.nicedit.com/nicEdit.js&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_js_n&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;nicEdit.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;/* NicEdit — встроенный микро WYSIWYG
 * Авторские права принадлежат Брайану Кирхоффу, 2007-2008 гг.
 *
 * NicEdit распространяется на условиях лицензии MIT.
 * Для получения дополнительной информации посетите http://nicedit.com/
 * Не удаляйте это сообщение об авторских правах
 */
var bkExtend=function(){var A=arguments;if(A.length==1){A=[this,A[0]]}for(var B in A[1]){A[0][B]=A[1][B]}return A[0]};function bkClass(){}bkClass.prototype.construct=function(){};bkClass.extend=function(C){var A=function(){if(arguments[0]!==bkClass){return this.construct.apply(this,arguments)}};var B=new this(bkClass);bkExtend(B,C);A.prototype=B;A.extend=this.extend;return A};var bkElement=bkClass.extend({construct:function(B,A){if(typeof (B)==&amp;quot;string&amp;quot;){B=(A||document).createElement(B)}B=$BK(B);return B},appendTo:function(A){A.appendChild(this);return this},appendBefore:function(A){A.parentNode.insertBefore(this,A);return this},addEvent:function(B,A){bkLib.addEvent(this,B,A);return this},setContent:function(A){this.innerHTML=A;return this},pos:function(){var C=curtop=0;var B=obj=this;if(obj.offsetParent){do{C+=obj.offsetLeft;curtop+=obj.offsetTop}while(obj=obj.offsetParent)}var A=(!window.opera)?parseInt(this.getStyle(&amp;quot;border-width&amp;quot;)||this.style.border)||0:0;return[C+A,curtop+A+this.offsetHeight]},noSelect:function(){bkLib.noSelect(this);return this},parentTag:function(A){var B=this;do{if(B&amp;amp;&amp;amp;B.nodeName&amp;amp;&amp;amp;B.nodeName.toUpperCase()==A){return B}B=B.parentNode}while(B);return false},hasClass:function(A){return this.className.match(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+A+&amp;quot;(\\s|$)&amp;quot;))},addClass:function(A){if(!this.hasClass(A)){this.className+=&amp;quot; nicEdit-&amp;quot;+A}return this},removeClass:function(A){if(this.hasClass(A)){this.className=this.className.replace(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+A+&amp;quot;(\\s|$)&amp;quot;),&amp;quot; &amp;quot;)}return this},setStyle:function(A){var B=this.style;for(var C in A){switch(C){case&amp;quot;float&amp;quot;:B.cssFloat=B.styleFloat=A[C];break;case&amp;quot;opacity&amp;quot;:B.opacity=A[C];B.filter=&amp;quot;alpha(opacity=&amp;quot;+Math.round(A[C]*100)+&amp;quot;)&amp;quot;;break;case&amp;quot;className&amp;quot;:this.className=A[C];break;default:B[C]=A[C]}}return this},getStyle:function(A,C){var B=(!C)?document.defaultView:C;if(this.nodeType==1){return(B&amp;amp;&amp;amp;B.getComputedStyle)?B.getComputedStyle(this,null).getPropertyValue(A):this.currentStyle[bkLib.camelize(A)]}},remove:function(){this.parentNode.removeChild(this);return this},setAttributes:function(A){for(var B in A){this[B]=A[B]}return this}});var bkLib={isMSIE:(navigator.appVersion.indexOf(&amp;quot;MSIE&amp;quot;)!=-1),addEvent:function(C,B,A){(C.addEventListener)?C.addEventListener(B,A,false):C.attachEvent(&amp;quot;on&amp;quot;+B,A)},toArray:function(C){var B=C.length,A=new Array(B);while(B--){A[B]=C[B]}return A},noSelect:function(B){if(B.setAttribute&amp;amp;&amp;amp;B.nodeName.toLowerCase()!=&amp;quot;input&amp;quot;&amp;amp;&amp;amp;B.nodeName.toLowerCase()!=&amp;quot;textarea&amp;quot;){B.setAttribute(&amp;quot;unselectable&amp;quot;,&amp;quot;on&amp;quot;)}for(var A=0;A&amp;lt;B.childNodes.length;A++){bkLib.noSelect(B.childNodes[A])}},camelize:function(A){return A.replace(/\-(.)/g,function(B,C){return C.toUpperCase()})},inArray:function(A,B){return(bkLib.search(A,B)!=null)},search:function(A,C){for(var B=0;B&amp;lt;A.length;B++){if(A[B]==C){return B}}return null},cancelEvent:function(A){A=A||window.event;if(A.preventDefault&amp;amp;&amp;amp;A.stopPropagation){A.preventDefault();A.stopPropagation()}return false},domLoad:[],domLoaded:function(){if(arguments.callee.done){return }arguments.callee.done=true;for(i=0;i&amp;lt;bkLib.domLoad.length;i++){bkLib.domLoad[i]()}},onDomLoaded:function(A){this.domLoad.push(A);if(document.addEventListener){document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;,bkLib.domLoaded,null)}else{if(bkLib.isMSIE){document.write(&amp;quot;&amp;lt;style&amp;gt;.nicEdit-main p { margin: 0; }&amp;lt;/style&amp;gt;&amp;lt;script id=__ie_onload defer &amp;quot;+((location.protocol==&amp;quot;https:&amp;quot;)?&amp;quot;src=&#039;javascript:void(0)&#039;&amp;quot;:&amp;quot;src=//0&amp;quot;)+&amp;quot;&amp;gt;&amp;lt;\/script&amp;gt;&amp;quot;);$BK(&amp;quot;__ie_onload&amp;quot;).onreadystatechange=function(){if(this.readyState==&amp;quot;complete&amp;quot;){bkLib.domLoaded()}}}}window.onload=bkLib.domLoaded}};function $BK(A){if(typeof (A)==&amp;quot;string&amp;quot;){A=document.getElementById(A)}return(A&amp;amp;&amp;amp;!A.appendTo)?bkExtend(A,bkElement.prototype):A}var bkEvent={addEvent:function(A,B){if(B){this.eventList=this.eventList||{};this.eventList[A]=this.eventList[A]||[];this.eventList[A].push(B)}return this},fireEvent:function(){var A=bkLib.toArray(arguments),C=A.shift();if(this.eventList&amp;amp;&amp;amp;this.eventList[C]){for(var B=0;B&amp;lt;this.eventList[C].length;B++){this.eventList[C][B].apply(this,A)}}}};function __(A){return A}Function.prototype.closure=function(){var A=this,B=bkLib.toArray(arguments),C=B.shift();return function(){if(typeof (bkLib)!=&amp;quot;undefined&amp;quot;){return A.apply(C,B.concat(bkLib.toArray(arguments)))}}};Function.prototype.closureListener=function(){var A=this,C=bkLib.toArray(arguments),B=C.shift();return function(E){E=E||window.event;if(E.target){var D=E.target}else{var D=E.srcElement}return A.apply(B,[E,D].concat(C))}};
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
var nicEditorConfig = bkClass.extend({
	buttons : {
		&#039;bold&#039; : {name : __(&#039;Click to Bold&#039;), command : &#039;Bold&#039;, tags : [&#039;B&#039;,&#039;STRONG&#039;], css : {&#039;font-weight&#039; : &#039;bold&#039;}, key : &#039;b&#039;},
		&#039;italic&#039; : {name : __(&#039;Click to Italic&#039;), command : &#039;Italic&#039;, tags : [&#039;EM&#039;,&#039;I&#039;], css : {&#039;font-style&#039; : &#039;italic&#039;}, key : &#039;i&#039;},
		&#039;underline&#039; : {name : __(&#039;Click to Underline&#039;), command : &#039;Underline&#039;, tags : [&#039;U&#039;], css : {&#039;text-decoration&#039; : &#039;underline&#039;}, key : &#039;u&#039;},
		&#039;left&#039; : {name : __(&#039;Left Align&#039;), command : &#039;justifyleft&#039;, noActive : true},
		&#039;center&#039; : {name : __(&#039;Center Align&#039;), command : &#039;justifycenter&#039;, noActive : true},
		&#039;right&#039; : {name : __(&#039;Right Align&#039;), command : &#039;justifyright&#039;, noActive : true},
		&#039;justify&#039; : {name : __(&#039;Justify Align&#039;), command : &#039;justifyfull&#039;, noActive : true},
		&#039;ol&#039; : {name : __(&#039;Insert Ordered List&#039;), command : &#039;insertorderedlist&#039;, tags : [&#039;OL&#039;]},
		&#039;ul&#039; : 	{name : __(&#039;Insert Unordered List&#039;), command : &#039;insertunorderedlist&#039;, tags : [&#039;UL&#039;]},
		&#039;subscript&#039; : {name : __(&#039;Click to Subscript&#039;), command : &#039;subscript&#039;, tags : [&#039;SUB&#039;]},
		&#039;superscript&#039; : {name : __(&#039;Click to Superscript&#039;), command : &#039;superscript&#039;, tags : [&#039;SUP&#039;]},
		&#039;strikethrough&#039; : {name : __(&#039;Click to Strike Through&#039;), command : &#039;strikeThrough&#039;, css : {&#039;text-decoration&#039; : &#039;line-through&#039;}},
		&#039;removeformat&#039; : {name : __(&#039;Remove Formatting&#039;), command : &#039;removeformat&#039;, noActive : true},
		&#039;indent&#039; : {name : __(&#039;Indent Text&#039;), command : &#039;indent&#039;, noActive : true},
		&#039;outdent&#039; : {name : __(&#039;Remove Indent&#039;), command : &#039;outdent&#039;, noActive : true},
		&#039;hr&#039; : {name : __(&#039;Horizontal Rule&#039;), command : &#039;insertHorizontalRule&#039;, noActive : true}
	},
	iconsPath : &#039;http://js.nicedit.com/nicEditIcons-latest.gif&#039;,
	buttonList : [&#039;save&#039;,&#039;bold&#039;,&#039;italic&#039;,&#039;underline&#039;,&#039;left&#039;,&#039;center&#039;,&#039;right&#039;,&#039;justify&#039;,&#039;ol&#039;,&#039;ul&#039;,&#039;fontSize&#039;,&#039;fontFamily&#039;,&#039;fontFormat&#039;,&#039;indent&#039;,&#039;outdent&#039;,&#039;image&#039;,&#039;upload&#039;,&#039;link&#039;,&#039;unlink&#039;,&#039;forecolor&#039;,&#039;bgcolor&#039;],
	iconList : {&amp;quot;xhtml&amp;quot;:1,&amp;quot;bgcolor&amp;quot;:2,&amp;quot;forecolor&amp;quot;:3,&amp;quot;bold&amp;quot;:4,&amp;quot;center&amp;quot;:5,&amp;quot;hr&amp;quot;:6,&amp;quot;indent&amp;quot;:7,&amp;quot;italic&amp;quot;:8,&amp;quot;justify&amp;quot;:9,&amp;quot;left&amp;quot;:10,&amp;quot;ol&amp;quot;:11,&amp;quot;outdent&amp;quot;:12,&amp;quot;removeformat&amp;quot;:13,&amp;quot;right&amp;quot;:14,&amp;quot;save&amp;quot;:25,&amp;quot;strikethrough&amp;quot;:16,&amp;quot;subscript&amp;quot;:17,&amp;quot;superscript&amp;quot;:18,&amp;quot;ul&amp;quot;:19,&amp;quot;underline&amp;quot;:20,&amp;quot;image&amp;quot;:21,&amp;quot;link&amp;quot;:22,&amp;quot;unlink&amp;quot;:23,&amp;quot;close&amp;quot;:24,&amp;quot;arrow&amp;quot;:26,&amp;quot;upload&amp;quot;:27}
&amp;nbsp;
});
;
var nicEditors={nicPlugins:[],editors:[],registerPlugin:function(B,A){this.nicPlugins.push({p:B,o:A})},allTextAreas:function(C){var A=document.getElementsByTagName(&amp;quot;textarea&amp;quot;);for(var B=0;B&amp;lt;A.length;B++){nicEditors.editors.push(new nicEditor(C).panelInstance(A[B]))}return nicEditors.editors},findEditor:function(C){var B=nicEditors.editors;for(var A=0;A&amp;lt;B.length;A++){if(B[A].instanceById(C)){return B[A].instanceById(C)}}}};var nicEditor=bkClass.extend({construct:function(C){this.options=new nicEditorConfig();bkExtend(this.options,C);this.nicInstances=new Array();this.loadedPlugins=new Array();var A=nicEditors.nicPlugins;for(var B=0;B&amp;lt;A.length;B++){this.loadedPlugins.push(new A[B].p(this,A[B].o))}nicEditors.editors.push(this);bkLib.addEvent(document.body,&amp;quot;mousedown&amp;quot;,this.selectCheck.closureListener(this))},panelInstance:function(B,C){B=this.checkReplace($BK(B));var A=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:(parseInt(B.getStyle(&amp;quot;width&amp;quot;))||B.clientWidth)+&amp;quot;px&amp;quot;}).appendBefore(B);this.setPanel(A);return this.addInstance(B,C)},checkReplace:function(B){var A=nicEditors.findEditor(B);if(A){A.removeInstance(B);A.removePanel()}return B},addInstance:function(B,C){B=this.checkReplace($BK(B));if(B.contentEditable||!!window.opera){var A=new nicEditorInstance(B,C,this)}else{var A=new nicEditorIFrameInstance(B,C,this)}this.nicInstances.push(A);return this},removeInstance:function(C){C=$BK(C);var B=this.nicInstances;for(var A=0;A&amp;lt;B.length;A++){if(B[A].e==C){B[A].remove();this.nicInstances.splice(A,1)}}},removePanel:function(A){if(this.nicPanel){this.nicPanel.remove();this.nicPanel=null}},instanceById:function(C){C=$BK(C);var B=this.nicInstances;for(var A=0;A&amp;lt;B.length;A++){if(B[A].e==C){return B[A]}}},setPanel:function(A){this.nicPanel=new nicEditorPanel($BK(A),this.options,this);this.fireEvent(&amp;quot;panel&amp;quot;,this.nicPanel);return this},nicCommand:function(B,A){if(this.selectedInstance){this.selectedInstance.nicCommand(B,A)}},getIcon:function(D,A){var C=this.options.iconList[D];var B=(A.iconFiles)?A.iconFiles[D]:&amp;quot;&amp;quot;;return{backgroundImage:&amp;quot;url(&#039;&amp;quot;+((C)?this.options.iconsPath:B)+&amp;quot;&#039;)&amp;quot;,backgroundPosition:((C)?((C-1)*-18):0)+&amp;quot;px 0px&amp;quot;}},selectCheck:function(C,A){var B=false;do{if(A.className&amp;amp;&amp;amp;A.className.indexOf(&amp;quot;nicEdit&amp;quot;)!=-1){return false}}while(A=A.parentNode);this.fireEvent(&amp;quot;blur&amp;quot;,this.selectedInstance,A);this.lastSelectedInstance=this.selectedInstance;this.selectedInstance=null;return false}});nicEditor=nicEditor.extend(bkEvent);
var nicEditorInstance=bkClass.extend({isSelected:false,construct:function(G,D,C){this.ne=C;this.elm=this.e=G;this.options=D||{};newX=parseInt(G.getStyle(&amp;quot;width&amp;quot;))||G.clientWidth;newY=parseInt(G.getStyle(&amp;quot;height&amp;quot;))||G.clientHeight;this.initialHeight=newY-8;var H=(G.nodeName.toLowerCase()==&amp;quot;textarea&amp;quot;);if(H||this.options.hasPanel){var B=(bkLib.isMSIE&amp;amp;&amp;amp;!((typeof document.body.style.maxHeight!=&amp;quot;undefined&amp;quot;)&amp;amp;&amp;amp;document.compatMode==&amp;quot;CSS1Compat&amp;quot;));var E={width:newX+&amp;quot;px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,borderTop:0,overflowY:&amp;quot;auto&amp;quot;,overflowX:&amp;quot;hidden&amp;quot;};E[(B)?&amp;quot;height&amp;quot;:&amp;quot;maxHeight&amp;quot;]=(this.ne.options.maxHeight)?this.ne.options.maxHeight+&amp;quot;px&amp;quot;:null;this.editorContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle(E).appendBefore(G);var A=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:(newX-8)+&amp;quot;px&amp;quot;,margin:&amp;quot;4px&amp;quot;,minHeight:newY+&amp;quot;px&amp;quot;}).addClass(&amp;quot;main&amp;quot;).appendTo(this.editorContain);G.setStyle({display:&amp;quot;none&amp;quot;});A.innerHTML=G.innerHTML;if(H){A.setContent(G.value);this.copyElm=G;var F=G.parentTag(&amp;quot;FORM&amp;quot;);if(F){bkLib.addEvent(F,&amp;quot;submit&amp;quot;,this.saveContent.closure(this))}}A.setStyle((B)?{height:newY+&amp;quot;px&amp;quot;}:{overflow:&amp;quot;hidden&amp;quot;});this.elm=A}this.ne.addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this));this.init();this.blur()},init:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;true&amp;quot;);if(this.getContent()==&amp;quot;&amp;quot;){this.setContent(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)}this.instanceDoc=document.defaultView;this.elm.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keypress&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;focus&amp;quot;,this.selected.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this));this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},remove:function(){this.saveContent();if(this.copyElm||this.options.hasPanel){this.editorContain.remove();this.e.setStyle({display:&amp;quot;block&amp;quot;});this.ne.removePanel()}this.disable();this.ne.fireEvent(&amp;quot;remove&amp;quot;,this)},disable:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;false&amp;quot;)},getSel:function(){return(window.getSelection)?window.getSelection():document.selection},getRng:function(){var A=this.getSel();if(!A||A.rangeCount===0){return }return(A.rangeCount&amp;gt;0)?A.getRangeAt(0):A.createRange()},selRng:function(A,B){if(window.getSelection){B.removeAllRanges();B.addRange(A)}else{A.select()}},selElm:function(){var C=this.getRng();if(!C){return }if(C.startContainer){var D=C.startContainer;if(C.cloneContents().childNodes.length==1){for(var B=0;B&amp;lt;D.childNodes.length;B++){var A=D.childNodes[B].ownerDocument.createRange();A.selectNode(D.childNodes[B]);if(C.compareBoundaryPoints(Range.START_TO_START,A)!=1&amp;amp;&amp;amp;C.compareBoundaryPoints(Range.END_TO_END,A)!=-1){return $BK(D.childNodes[B])}}}return $BK(D)}else{return $BK((this.getSel().type==&amp;quot;Control&amp;quot;)?C.item(0):C.parentElement())}},saveRng:function(){this.savedRange=this.getRng();this.savedSel=this.getSel()},restoreRng:function(){if(this.savedRange){this.selRng(this.savedRange,this.savedSel)}},keyDown:function(B,A){if(B.ctrlKey){this.ne.fireEvent(&amp;quot;key&amp;quot;,this,B)}},selected:function(C,A){if(!A&amp;amp;&amp;amp;!(A=this.selElm)){A=this.selElm()}if(!C.ctrlKey){var B=this.ne.selectedInstance;if(B!=this){if(B){this.ne.fireEvent(&amp;quot;blur&amp;quot;,B,A)}this.ne.selectedInstance=this;this.ne.fireEvent(&amp;quot;focus&amp;quot;,B,A)}this.ne.fireEvent(&amp;quot;selected&amp;quot;,B,A);this.isFocused=true;this.elm.addClass(&amp;quot;selected&amp;quot;)}return false},blur:function(){this.isFocused=false;this.elm.removeClass(&amp;quot;selected&amp;quot;)},saveContent:function(){if(this.copyElm||this.options.hasPanel){this.ne.fireEvent(&amp;quot;save&amp;quot;,this);(this.copyElm)?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent()}},getElm:function(){return this.elm},getContent:function(){this.content=this.getElm().innerHTML;this.ne.fireEvent(&amp;quot;get&amp;quot;,this);return this.content},setContent:function(A){this.content=A;this.ne.fireEvent(&amp;quot;set&amp;quot;,this);this.elm.innerHTML=this.content},nicCommand:function(B,A){document.execCommand(B,false,A)}});
var nicEditorIFrameInstance=nicEditorInstance.extend({savedStyles:[],init:function(){var B=this.elm.innerHTML.replace(/^\s+|\s+$/g,&amp;quot;&amp;quot;);this.elm.innerHTML=&amp;quot;&amp;quot;;(!B)?B=&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;:B;this.initialContent=B;this.elmFrame=new bkElement(&amp;quot;iframe&amp;quot;).setAttributes({src:&amp;quot;javascript:;&amp;quot;,frameBorder:0,allowTransparency:&amp;quot;true&amp;quot;,scrolling:&amp;quot;no&amp;quot;}).setStyle({height:&amp;quot;100px&amp;quot;,width:&amp;quot;100%&amp;quot;}).addClass(&amp;quot;frame&amp;quot;).appendTo(this.elm);if(this.copyElm){this.elmFrame.setStyle({width:(this.elm.offsetWidth-4)+&amp;quot;px&amp;quot;})}var A=[&amp;quot;font-size&amp;quot;,&amp;quot;font-family&amp;quot;,&amp;quot;font-weight&amp;quot;,&amp;quot;color&amp;quot;];for(itm in A){this.savedStyles[bkLib.camelize(itm)]=this.elm.getStyle(itm)}setTimeout(this.initFrame.closure(this),50)},disable:function(){this.elm.innerHTML=this.getContent()},initFrame:function(){var B=$BK(this.elmFrame.contentWindow.document);B.designMode=&amp;quot;on&amp;quot;;B.open();var A=this.ne.options.externalCSS;B.write(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;quot;+((A)?&#039;&amp;lt;link href=&amp;quot;&#039;+A+&#039;&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&#039;:&amp;quot;&amp;quot;)+&#039;&amp;lt;/head&amp;gt;&amp;lt;body id=&amp;quot;nicEditContent&amp;quot; style=&amp;quot;margin: 0 !important; background-color: transparent !important;&amp;quot;&amp;gt;&#039;+this.initialContent+&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);B.close();this.frameDoc=B;this.frameWin=$BK(this.elmFrame.contentWindow);this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles);this.instanceDoc=this.frameWin.document.defaultView;this.heightUpdate();this.frameDoc.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.heightUpdate.closureListener(this)).addEvent(&amp;quot;keydown&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this));this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},getElm:function(){return this.frameContent},setContent:function(A){this.content=A;this.ne.fireEvent(&amp;quot;set&amp;quot;,this);this.frameContent.innerHTML=this.content;this.heightUpdate()},getSel:function(){return(this.frameWin)?this.frameWin.getSelection():this.frameDoc.selection},heightUpdate:function(){this.elmFrame.style.height=Math.max(this.frameContent.offsetHeight,this.initialHeight)+&amp;quot;px&amp;quot;},nicCommand:function(B,A){this.frameDoc.execCommand(B,false,A);setTimeout(this.heightUpdate.closure(this),100)}});
var nicEditorPanel=bkClass.extend({construct:function(E,B,A){this.elm=E;this.options=B;this.ne=A;this.panelButtons=new Array();this.buttonList=bkExtend([],this.ne.options.buttonList);this.panelContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;100%&amp;quot;,border:&amp;quot;1px solid #cccccc&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}).addClass(&amp;quot;panelContain&amp;quot;);this.panelElm=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({margin:&amp;quot;2px&amp;quot;,marginTop:&amp;quot;0px&amp;quot;,zoom:1,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;panel&amp;quot;).appendTo(this.panelContain);this.panelContain.appendTo(E);var C=this.ne.options;var D=C.buttons;for(button in D){this.addButton(button,C,true)}this.reorder();E.noSelect()},addButton:function(buttonName,options,noOrder){var button=options.buttons[buttonName];var type=(button.type)?eval(&amp;quot;(typeof(&amp;quot;+button.type+&#039;) == &amp;quot;undefined&amp;quot;) ? null : &#039;+button.type+&amp;quot;;&amp;quot;):nicEditorButton;var hasButton=bkLib.inArray(this.buttonList,buttonName);if(type&amp;amp;&amp;amp;(hasButton||this.ne.options.fullPanel)){this.panelButtons.push(new type(this.panelElm,buttonName,options,this.ne));if(!hasButton){this.buttonList.push(buttonName)}}},findButton:function(B){for(var A=0;A&amp;lt;this.panelButtons.length;A++){if(this.panelButtons[A].name==B){return this.panelButtons[A]}}},reorder:function(){var C=this.buttonList;for(var B=0;B&amp;lt;C.length;B++){var A=this.findButton(C[B]);if(A){this.panelElm.appendChild(A.margin)}}},remove:function(){this.elm.remove()}});
var nicEditorButton=bkClass.extend({construct:function(D,A,C,B){this.options=C.buttons[A];this.name=A;this.ne=B;this.elm=D;this.margin=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,marginTop:&amp;quot;2px&amp;quot;}).appendTo(D);this.contain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;20px&amp;quot;,height:&amp;quot;20px&amp;quot;}).addClass(&amp;quot;buttonContain&amp;quot;).appendTo(this.margin);this.border=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #efefef&amp;quot;}).appendTo(this.contain);this.button=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;18px&amp;quot;,height:&amp;quot;18px&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,zoom:1,cursor:&amp;quot;pointer&amp;quot;}).addClass(&amp;quot;button&amp;quot;).setStyle(this.ne.getIcon(A,C)).appendTo(this.border);this.button.addEvent(&amp;quot;mouseover&amp;quot;,this.hoverOn.closure(this)).addEvent(&amp;quot;mouseout&amp;quot;,this.hoverOff.closure(this)).addEvent(&amp;quot;mousedown&amp;quot;,this.mouseClick.closure(this)).noSelect();if(!window.opera){this.button.onmousedown=this.button.onclick=bkLib.cancelEvent}B.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this)).addEvent(&amp;quot;key&amp;quot;,this.key.closure(this));this.disable();this.init()},init:function(){},hide:function(){this.contain.setStyle({display:&amp;quot;none&amp;quot;})},updateState:function(){if(this.isDisabled){this.setBg()}else{if(this.isHover){this.setBg(&amp;quot;hover&amp;quot;)}else{if(this.isActive){this.setBg(&amp;quot;active&amp;quot;)}else{this.setBg()}}}},setBg:function(A){switch(A){case&amp;quot;hover&amp;quot;:var B={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ddd&amp;quot;};break;case&amp;quot;active&amp;quot;:var B={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ccc&amp;quot;};break;default:var B={border:&amp;quot;1px solid #efefef&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}}this.border.setStyle(B).addClass(&amp;quot;button-&amp;quot;+A)},checkNodes:function(A){var B=A;do{if(this.options.tags&amp;amp;&amp;amp;bkLib.inArray(this.options.tags,B.nodeName)){this.activate();return true}}while(B=B.parentNode&amp;amp;&amp;amp;B.className!=&amp;quot;nicEdit&amp;quot;);B=$BK(A);while(B.nodeType==3){B=$BK(B.parentNode)}if(this.options.css){for(itm in this.options.css){if(B.getStyle(itm,this.ne.selectedInstance.instanceDoc)==this.options.css[itm]){this.activate();return true}}}this.deactivate();return false},activate:function(){if(!this.isDisabled){this.isActive=true;this.updateState();this.ne.fireEvent(&amp;quot;buttonActivate&amp;quot;,this)}},deactivate:function(){this.isActive=false;this.updateState();if(!this.isDisabled){this.ne.fireEvent(&amp;quot;buttonDeactivate&amp;quot;,this)}},enable:function(A,B){this.isDisabled=false;this.contain.setStyle({opacity:1}).addClass(&amp;quot;buttonEnabled&amp;quot;);this.updateState();this.checkNodes(B)},disable:function(A,B){this.isDisabled=true;this.contain.setStyle({opacity:0.6}).removeClass(&amp;quot;buttonEnabled&amp;quot;);this.updateState()},toggleActive:function(){(this.isActive)?this.deactivate():this.activate()},hoverOn:function(){if(!this.isDisabled){this.isHover=true;this.updateState();this.ne.fireEvent(&amp;quot;buttonOver&amp;quot;,this)}},hoverOff:function(){this.isHover=false;this.updateState();this.ne.fireEvent(&amp;quot;buttonOut&amp;quot;,this)},mouseClick:function(){if(this.options.command){this.ne.nicCommand(this.options.command,this.options.commandArgs);if(!this.options.noActive){this.toggleActive()}}this.ne.fireEvent(&amp;quot;buttonClick&amp;quot;,this)},key:function(A,B){if(this.options.key&amp;amp;&amp;amp;B.ctrlKey&amp;amp;&amp;amp;String.fromCharCode(B.keyCode||B.charCode).toLowerCase()==this.options.key){this.mouseClick();if(B.preventDefault){B.preventDefault()}}}});
var nicPlugin=bkClass.extend({construct:function(B,A){this.options=A;this.ne=B;this.ne.addEvent(&amp;quot;panel&amp;quot;,this.loadPanel.closure(this));this.init()},loadPanel:function(C){var B=this.options.buttons;for(var A in B){C.addButton(A,this.options)}C.reorder()},init:function(){}});
&amp;nbsp;
&amp;nbsp;
var nicPaneOptions = { };
&amp;nbsp;
var nicEditorPane=bkClass.extend({construct:function(D,C,B,A){this.ne=C;this.elm=D;this.pos=D.pos();this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({zIndex:&amp;quot;99999&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,position:&amp;quot;absolute&amp;quot;,left:this.pos[0]+&amp;quot;px&amp;quot;,top:this.pos[1]+&amp;quot;px&amp;quot;});this.pane=new bkElement(&amp;quot;div&amp;quot;).setStyle({fontSize:&amp;quot;12px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,padding:&amp;quot;4px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,backgroundColor:&amp;quot;#ffffc9&amp;quot;}).addClass(&amp;quot;pane&amp;quot;).setStyle(B).appendTo(this.contain);if(A&amp;amp;&amp;amp;!A.options.noClose){this.close=new bkElement(&amp;quot;div&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;right&amp;quot;,height:&amp;quot;16px&amp;quot;,width:&amp;quot;16px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;}).setStyle(this.ne.getIcon(&amp;quot;close&amp;quot;,nicPaneOptions)).addEvent(&amp;quot;mousedown&amp;quot;,A.removePane.closure(this)).appendTo(this.pane)}this.contain.noSelect().appendTo(document.body);this.position();this.init()},init:function(){},position:function(){if(this.ne.nicPanel){var B=this.ne.nicPanel.elm;var A=B.pos();var C=A[0]+parseInt(B.getStyle(&amp;quot;width&amp;quot;))-(parseInt(this.pane.getStyle(&amp;quot;width&amp;quot;))+8);if(C&amp;lt;this.pos[0]){this.contain.setStyle({left:C+&amp;quot;px&amp;quot;})}}},toggle:function(){this.isVisible=!this.isVisible;this.contain.setStyle({display:((this.isVisible)?&amp;quot;block&amp;quot;:&amp;quot;none&amp;quot;)})},remove:function(){if(this.contain){this.contain.remove();this.contain=null}},append:function(A){A.appendTo(this.pane)},setContent:function(A){this.pane.setContent(A)}});
&amp;nbsp;
&amp;nbsp;
var nicSelectOptions = {
	buttons : {
		&#039;fontSize&#039; : {name : __(&#039;Select Font Size&#039;), type : &#039;nicEditorFontSizeSelect&#039;, command : &#039;fontsize&#039;},
		&#039;fontFamily&#039; : {name : __(&#039;Select Font Family&#039;), type : &#039;nicEditorFontFamilySelect&#039;, command : &#039;fontname&#039;},
		&#039;fontFormat&#039; : {name : __(&#039;Select Font Format&#039;), type : &#039;nicEditorFontFormatSelect&#039;, command : &#039;formatBlock&#039;}
	}
};
&amp;nbsp;
var nicEditorSelect=bkClass.extend({construct:function(D,A,C,B){this.options=C.buttons[A];this.elm=D;this.ne=B;this.name=A;this.selOptions=new Array();this.margin=new bkElement(&amp;quot;div&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 1px 0 1px&amp;quot;}).appendTo(this.elm);this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({width:&amp;quot;90px&amp;quot;,height:&amp;quot;20px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;selectContain&amp;quot;).addEvent(&amp;quot;click&amp;quot;,this.toggle.closure(this)).appendTo(this.margin);this.items=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,zoom:1,border:&amp;quot;1px solid #ccc&amp;quot;,paddingLeft:&amp;quot;3px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;}).appendTo(this.contain);this.control=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;right&amp;quot;,height:&amp;quot;18px&amp;quot;,width:&amp;quot;16px&amp;quot;}).addClass(&amp;quot;selectControl&amp;quot;).setStyle(this.ne.getIcon(&amp;quot;arrow&amp;quot;,C)).appendTo(this.items);this.txt=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,width:&amp;quot;66px&amp;quot;,height:&amp;quot;14px&amp;quot;,marginTop:&amp;quot;1px&amp;quot;,fontFamily:&amp;quot;sans-serif&amp;quot;,textAlign:&amp;quot;center&amp;quot;,fontSize:&amp;quot;12px&amp;quot;}).addClass(&amp;quot;selectTxt&amp;quot;).appendTo(this.items);if(!window.opera){this.contain.onmousedown=this.control.onmousedown=this.txt.onmousedown=bkLib.cancelEvent}this.margin.noSelect();this.ne.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this));this.disable();this.init()},disable:function(){this.isDisabled=true;this.close();this.contain.setStyle({opacity:0.6})},enable:function(A){this.isDisabled=false;this.close();this.contain.setStyle({opacity:1})},setDisplay:function(A){this.txt.setContent(A)},toggle:function(){if(!this.isDisabled){(this.pane)?this.close():this.open()}},open:function(){this.pane=new nicEditorPane(this.items,this.ne,{width:&amp;quot;88px&amp;quot;,padding:&amp;quot;0px&amp;quot;,borderTop:0,borderLeft:&amp;quot;1px solid #ccc&amp;quot;,borderRight:&amp;quot;1px solid #ccc&amp;quot;,borderBottom:&amp;quot;0px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;});for(var C=0;C&amp;lt;this.selOptions.length;C++){var B=this.selOptions[C];var A=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,borderBottom:&amp;quot;1px solid #ccc&amp;quot;,width:&amp;quot;88px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,cursor:&amp;quot;pointer&amp;quot;});var D=new bkElement(&amp;quot;div&amp;quot;).setStyle({padding:&amp;quot;0px 4px&amp;quot;}).setContent(B[1]).appendTo(A).noSelect();D.addEvent(&amp;quot;click&amp;quot;,this.update.closure(this,B[0])).addEvent(&amp;quot;mouseover&amp;quot;,this.over.closure(this,D)).addEvent(&amp;quot;mouseout&amp;quot;,this.out.closure(this,D)).setAttributes(&amp;quot;id&amp;quot;,B[0]);this.pane.append(A);if(!window.opera){D.onmousedown=bkLib.cancelEvent}}},close:function(){if(this.pane){this.pane=this.pane.remove()}},over:function(A){A.setStyle({backgroundColor:&amp;quot;#ccc&amp;quot;})},out:function(A){A.setStyle({backgroundColor:&amp;quot;#fff&amp;quot;})},add:function(B,A){this.selOptions.push(new Array(B,A))},update:function(A){this.ne.nicCommand(this.options.command,A);this.close()}});var nicEditorFontSizeSelect=nicEditorSelect.extend({sel:{1:&amp;quot;1&amp;amp;nbsp;(8pt)&amp;quot;,2:&amp;quot;2&amp;amp;nbsp;(10pt)&amp;quot;,3:&amp;quot;3&amp;amp;nbsp;(12pt)&amp;quot;,4:&amp;quot;4&amp;amp;nbsp;(14pt)&amp;quot;,5:&amp;quot;5&amp;amp;nbsp;(18pt)&amp;quot;,6:&amp;quot;6&amp;amp;nbsp;(24pt)&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Size...&amp;quot;);for(itm in this.sel){this.add(itm,&#039;&amp;lt;font size=&amp;quot;&#039;+itm+&#039;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}});var nicEditorFontFamilySelect=nicEditorSelect.extend({sel:{arial:&amp;quot;Arial&amp;quot;,&amp;quot;comic sans ms&amp;quot;:&amp;quot;Comic Sans&amp;quot;,&amp;quot;courier new&amp;quot;:&amp;quot;Courier New&amp;quot;,georgia:&amp;quot;Georgia&amp;quot;,helvetica:&amp;quot;Helvetica&amp;quot;,impact:&amp;quot;Impact&amp;quot;,&amp;quot;times new roman&amp;quot;:&amp;quot;Times&amp;quot;,&amp;quot;trebuchet ms&amp;quot;:&amp;quot;Trebuchet&amp;quot;,verdana:&amp;quot;Verdana&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Family...&amp;quot;);for(itm in this.sel){this.add(itm,&#039;&amp;lt;font face=&amp;quot;&#039;+itm+&#039;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}});var nicEditorFontFormatSelect=nicEditorSelect.extend({sel:{p:&amp;quot;Paragraph&amp;quot;,pre:&amp;quot;Pre&amp;quot;,h6:&amp;quot;Heading&amp;amp;nbsp;6&amp;quot;,h5:&amp;quot;Heading&amp;amp;nbsp;5&amp;quot;,h4:&amp;quot;Heading&amp;amp;nbsp;4&amp;quot;,h3:&amp;quot;Heading&amp;amp;nbsp;3&amp;quot;,h2:&amp;quot;Heading&amp;amp;nbsp;2&amp;quot;,h1:&amp;quot;Heading&amp;amp;nbsp;1&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Format...&amp;quot;);for(itm in this.sel){var A=itm.toUpperCase();this.add(&amp;quot;&amp;lt;&amp;quot;+A+&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;+itm+&#039; style=&amp;quot;padding: 0px; margin: 0px;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/&amp;quot;+A+&amp;quot;&amp;gt;&amp;quot;)}}});nicEditors.registerPlugin(nicPlugin,nicSelectOptions);
&amp;nbsp;
var nicButtonTips=bkClass.extend({construct:function(A){this.ne=A;A.addEvent(&amp;quot;buttonOver&amp;quot;,this.show.closure(this)).addEvent(&amp;quot;buttonOut&amp;quot;,this.hide.closure(this))},show:function(A){this.timer=setTimeout(this.create.closure(this,A),400)},create:function(A){this.timer=null;if(!this.pane){this.pane=new nicEditorPane(A.button,this.ne,{fontSize:&amp;quot;12px&amp;quot;,marginTop:&amp;quot;5px&amp;quot;});this.pane.setContent(A.options.name)}},hide:function(A){if(this.timer){clearTimeout(this.timer)}if(this.pane){this.pane=this.pane.remove()}}});nicEditors.registerPlugin(nicButtonTips);
&amp;nbsp;
var nicEditorAdvancedButton=nicEditorButton.extend({init:function(){this.ne.addEvent(&amp;quot;selected&amp;quot;,this.removePane.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.removePane.closure(this))},mouseClick:function(){if(!this.isDisabled){if(this.pane&amp;amp;&amp;amp;this.pane.pane){this.removePane()}else{this.pane=new nicEditorPane(this.contain,this.ne,{width:(this.width||&amp;quot;270px&amp;quot;),backgroundColor:&amp;quot;#fff&amp;quot;},this);this.addPane();this.ne.selectedInstance.saveRng()}}},addForm:function(C,G){this.form=new bkElement(&amp;quot;form&amp;quot;).addEvent(&amp;quot;submit&amp;quot;,this.submit.closureListener(this));this.pane.append(this.form);this.inputs={};for(itm in C){var D=C[itm];var F=&amp;quot;&amp;quot;;if(G){F=G.getAttribute(itm)}if(!F){F=D.value||&amp;quot;&amp;quot;}var A=C[itm].type;if(A==&amp;quot;title&amp;quot;){new bkElement(&amp;quot;div&amp;quot;).setContent(D.txt).setStyle({fontSize:&amp;quot;14px&amp;quot;,fontWeight:&amp;quot;bold&amp;quot;,padding:&amp;quot;0px&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(this.form)}else{var B=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form);if(D.txt){new bkElement(&amp;quot;label&amp;quot;).setAttributes({&amp;quot;for&amp;quot;:itm}).setContent(D.txt).setStyle({margin:&amp;quot;2px 4px&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,width:&amp;quot;50px&amp;quot;,lineHeight:&amp;quot;20px&amp;quot;,textAlign:&amp;quot;right&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).appendTo(B)}switch(A){case&amp;quot;text&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;input&amp;quot;).setAttributes({id:itm,value:F,type:&amp;quot;text&amp;quot;}).setStyle({margin:&amp;quot;2px 0&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,height:&amp;quot;20px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).setStyle(D.style).appendTo(B);break;case&amp;quot;select&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;select&amp;quot;).setAttributes({id:itm}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(B);for(opt in D.options){var E=new bkElement(&amp;quot;option&amp;quot;).setAttributes({value:opt,selected:(opt==F)?&amp;quot;selected&amp;quot;:&amp;quot;&amp;quot;}).setContent(D.options[opt]).appendTo(this.inputs[itm])}break;case&amp;quot;content&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;textarea&amp;quot;).setAttributes({id:itm}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).setStyle(D.style).appendTo(B);this.inputs[itm].value=F}}}new bkElement(&amp;quot;input&amp;quot;).setAttributes({type:&amp;quot;submit&amp;quot;}).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,margin:&amp;quot;3px 0&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form);this.form.onsubmit=bkLib.cancelEvent},submit:function(){},findElm:function(B,A,E){var D=this.ne.selectedInstance.getElm().getElementsByTagName(B);for(var C=0;C&amp;lt;D.length;C++){if(D[C].getAttribute(A)==E){return $BK(D[C])}}},removePane:function(){if(this.pane){this.pane.remove();this.pane=null;this.ne.selectedInstance.restoreRng()}}});
&amp;nbsp;
&amp;nbsp;
var nicLinkOptions = {
	buttons : {
		&#039;link&#039; : {name : &#039;Add Link&#039;, type : &#039;nicLinkButton&#039;, tags : [&#039;A&#039;]},
		&#039;unlink&#039; : {name : &#039;Remove Link&#039;,  command : &#039;unlink&#039;, noActive : true}
	}
};
&amp;nbsp;
var nicLinkButton=nicEditorAdvancedButton.extend({addPane:function(){this.ln=this.ne.selectedInstance.selElm().parentTag(&amp;quot;A&amp;quot;);this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Link&amp;quot;},href:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},title:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Title&amp;quot;},target:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Open In&amp;quot;,options:{&amp;quot;&amp;quot;:&amp;quot;Current Window&amp;quot;,_blank:&amp;quot;New Window&amp;quot;},style:{width:&amp;quot;100px&amp;quot;}}},this.ln)},submit:function(C){var A=this.inputs.href.value;if(A==&amp;quot;http://&amp;quot;||A==&amp;quot;&amp;quot;){alert(&amp;quot;You must enter a URL to Create a Link&amp;quot;);return false}this.removePane();if(!this.ln){var B=&amp;quot;javascript:nicTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;createlink&amp;quot;,B);this.ln=this.findElm(&amp;quot;A&amp;quot;,&amp;quot;href&amp;quot;,B)}if(this.ln){this.ln.setAttributes({href:this.inputs.href.value,title:this.inputs.title.value,target:this.inputs.target.options[this.inputs.target.selectedIndex].value})}}});nicEditors.registerPlugin(nicPlugin,nicLinkOptions);
&amp;nbsp;
&amp;nbsp;
var nicColorOptions = {
	buttons : {
		&#039;forecolor&#039; : {name : __(&#039;Change Text Color&#039;), type : &#039;nicEditorColorButton&#039;, noClose : true},
		&#039;bgcolor&#039; : {name : __(&#039;Change Background Color&#039;), type : &#039;nicEditorBgColorButton&#039;, noClose : true}
	}
};
&amp;nbsp;
var nicEditorColorButton=nicEditorAdvancedButton.extend({addPane:function(){var D={0:&amp;quot;00&amp;quot;,1:&amp;quot;33&amp;quot;,2:&amp;quot;66&amp;quot;,3:&amp;quot;99&amp;quot;,4:&amp;quot;CC&amp;quot;,5:&amp;quot;FF&amp;quot;};var H=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;270px&amp;quot;});for(var A in D){for(var F in D){for(var E in D){var I=&amp;quot;#&amp;quot;+D[A]+D[E]+D[F];var C=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({cursor:&amp;quot;pointer&amp;quot;,height:&amp;quot;15px&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).appendTo(H);var G=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({border:&amp;quot;2px solid &amp;quot;+I}).appendTo(C);var B=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:I,overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;11px&amp;quot;,height:&amp;quot;11px&amp;quot;}).addEvent(&amp;quot;click&amp;quot;,this.colorSelect.closure(this,I)).addEvent(&amp;quot;mouseover&amp;quot;,this.on.closure(this,G)).addEvent(&amp;quot;mouseout&amp;quot;,this.off.closure(this,G,I)).appendTo(G);if(!window.opera){C.onmousedown=B.onmousedown=bkLib.cancelEvent}}}}this.pane.append(H.noSelect())},colorSelect:function(A){this.ne.nicCommand(&amp;quot;foreColor&amp;quot;,A);this.removePane()},on:function(A){A.setStyle({border:&amp;quot;2px solid #000&amp;quot;})},off:function(A,B){A.setStyle({border:&amp;quot;2px solid &amp;quot;+B})}});var nicEditorBgColorButton=nicEditorColorButton.extend({colorSelect:function(A){this.ne.nicCommand(&amp;quot;hiliteColor&amp;quot;,A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicColorOptions);
&amp;nbsp;
&amp;nbsp;
var nicImageOptions = {
	buttons : {
		&#039;image&#039; : {name : &#039;Add Image&#039;, type : &#039;nicImageButton&#039;, tags : [&#039;IMG&#039;]}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicImageButton=nicEditorAdvancedButton.extend({addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;);this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Image&amp;quot;},src:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},alt:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Alt Text&amp;quot;,style:{width:&amp;quot;100px&amp;quot;}},align:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Align&amp;quot;,options:{none:&amp;quot;Default&amp;quot;,left:&amp;quot;Left&amp;quot;,right:&amp;quot;Right&amp;quot;}}},this.im)},submit:function(B){var C=this.inputs.src.value;if(C==&amp;quot;&amp;quot;||C==&amp;quot;http://&amp;quot;){alert(&amp;quot;You must enter a Image URL to insert&amp;quot;);return false}this.removePane();if(!this.im){var A=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,A);this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,A)}if(this.im){this.im.setAttributes({src:this.inputs.src.value,alt:this.inputs.alt.value,align:this.inputs.align.value})}}});nicEditors.registerPlugin(nicPlugin,nicImageOptions);
&amp;nbsp;
&amp;nbsp;
var nicSaveOptions = {
	buttons : {
		&#039;save&#039; : {name : __(&#039;Save this content&#039;), type : &#039;nicEditorSaveButton&#039;}
	}
};
&amp;nbsp;
var nicEditorSaveButton=nicEditorButton.extend({init:function(){if(!this.ne.options.onSave){this.margin.setStyle({display:&amp;quot;none&amp;quot;})}},mouseClick:function(){var B=this.ne.options.onSave;var A=this.ne.selectedInstance;B(A.getContent(),A.elm.id,A)}});nicEditors.registerPlugin(nicPlugin,nicSaveOptions);
&amp;nbsp;
var nicXHTML=bkClass.extend({stripAttributes:[&amp;quot;_moz_dirty&amp;quot;,&amp;quot;_moz_resizing&amp;quot;,&amp;quot;_extended&amp;quot;],noShort:[&amp;quot;style&amp;quot;,&amp;quot;title&amp;quot;,&amp;quot;script&amp;quot;,&amp;quot;textarea&amp;quot;,&amp;quot;a&amp;quot;],cssReplace:{&amp;quot;font-weight:bold;&amp;quot;:&amp;quot;strong&amp;quot;,&amp;quot;font-style:italic;&amp;quot;:&amp;quot;em&amp;quot;},sizes:{1:&amp;quot;xx-small&amp;quot;,2:&amp;quot;x-small&amp;quot;,3:&amp;quot;small&amp;quot;,4:&amp;quot;medium&amp;quot;,5:&amp;quot;large&amp;quot;,6:&amp;quot;x-large&amp;quot;},construct:function(A){this.ne=A;if(this.ne.options.xhtml){A.addEvent(&amp;quot;get&amp;quot;,this.cleanup.closure(this))}},cleanup:function(A){var B=A.getElm();var C=this.toXHTML(B);A.content=C},toXHTML:function(C,A,L){var G=&amp;quot;&amp;quot;;var O=&amp;quot;&amp;quot;;var P=&amp;quot;&amp;quot;;var I=C.nodeType;var Q=C.nodeName.toLowerCase();var N=C.hasChildNodes&amp;amp;&amp;amp;C.hasChildNodes();var B=new Array();switch(I){case 1:var H=C.attributes;switch(Q){case&amp;quot;b&amp;quot;:Q=&amp;quot;strong&amp;quot;;break;case&amp;quot;i&amp;quot;:Q=&amp;quot;em&amp;quot;;break;case&amp;quot;font&amp;quot;:Q=&amp;quot;span&amp;quot;;break}if(A){for(var F=0;F&amp;lt;H.length;F++){var K=H[F];var M=K.nodeName.toLowerCase();var D=K.nodeValue;if(!K.specified||!D||bkLib.inArray(this.stripAttributes,M)||typeof (D)==&amp;quot;function&amp;quot;){continue}switch(M){case&amp;quot;style&amp;quot;:var J=D.replace(/ /g,&amp;quot;&amp;quot;);for(itm in this.cssReplace){if(J.indexOf(itm)!=-1){B.push(this.cssReplace[itm]);J=J.replace(itm,&amp;quot;&amp;quot;)}}P+=J;D=&amp;quot;&amp;quot;;break;case&amp;quot;class&amp;quot;:D=D.replace(&amp;quot;Apple-style-span&amp;quot;,&amp;quot;&amp;quot;);break;case&amp;quot;size&amp;quot;:P+=&amp;quot;font-size:&amp;quot;+this.sizes[D]+&amp;quot;;&amp;quot;;D=&amp;quot;&amp;quot;;break}if(D){O+=&amp;quot; &amp;quot;+M+&#039;=&amp;quot;&#039;+D+&#039;&amp;quot;&#039;}}if(P){O+=&#039; style=&amp;quot;&#039;+P+&#039;&amp;quot;&#039;}for(var F=0;F&amp;lt;B.length;F++){G+=&amp;quot;&amp;lt;&amp;quot;+B[F]+&amp;quot;&amp;gt;&amp;quot;}if(O==&amp;quot;&amp;quot;&amp;amp;&amp;amp;Q==&amp;quot;span&amp;quot;){A=false}if(A){G+=&amp;quot;&amp;lt;&amp;quot;+Q;if(Q!=&amp;quot;br&amp;quot;){G+=O}}}if(!N&amp;amp;&amp;amp;!bkLib.inArray(this.noShort,M)){if(A){G+=&amp;quot; /&amp;gt;&amp;quot;}}else{if(A){G+=&amp;quot;&amp;gt;&amp;quot;}for(var F=0;F&amp;lt;C.childNodes.length;F++){var E=this.toXHTML(C.childNodes[F],true,true);if(E){G+=E}}}if(A&amp;amp;&amp;amp;N){G+=&amp;quot;&amp;lt;/&amp;quot;+Q+&amp;quot;&amp;gt;&amp;quot;}for(var F=0;F&amp;lt;B.length;F++){G+=&amp;quot;&amp;lt;/&amp;quot;+B[F]+&amp;quot;&amp;gt;&amp;quot;}break;case 3:G+=C.nodeValue;break}return G}});nicEditors.registerPlugin(nicXHTML);
&amp;nbsp;
&amp;nbsp;
var nicCodeOptions = {
	buttons : {
		&#039;xhtml&#039; : {name : &#039;Edit HTML&#039;, type : &#039;nicCodeButton&#039;}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicCodeButton=nicEditorAdvancedButton.extend({width:&amp;quot;350px&amp;quot;,addPane:function(){this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Edit HTML&amp;quot;},code:{type:&amp;quot;content&amp;quot;,value:this.ne.selectedInstance.getContent(),style:{width:&amp;quot;340px&amp;quot;,height:&amp;quot;200px&amp;quot;}}})},submit:function(B){var A=this.inputs.code.value;this.ne.selectedInstance.setContent(A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicCodeOptions);
&amp;nbsp;
var nicBBCode=bkClass.extend({construct:function(A){this.ne=A;if(this.ne.options.bbCode){A.addEvent(&amp;quot;get&amp;quot;,this.bbGet.closure(this));A.addEvent(&amp;quot;set&amp;quot;,this.bbSet.closure(this));var B=this.ne.loadedPlugins;for(itm in B){if(B[itm].toXHTML){this.xhtml=B[itm]}}}},bbGet:function(A){var B=this.xhtml.toXHTML(A.getElm());A.content=this.toBBCode(B)},bbSet:function(A){A.content=this.fromBBCode(A.content)},toBBCode:function(B){function A(D,C){B=B.replace(D,C)}A(/\n/gi,&amp;quot;&amp;quot;);A(/&amp;lt;strong&amp;gt;(.*?)&amp;lt;\/strong&amp;gt;/gi,&amp;quot;[b]$1[/b]&amp;quot;);A(/&amp;lt;em&amp;gt;(.*?)&amp;lt;\/em&amp;gt;/gi,&amp;quot;[i]$1[/i]&amp;quot;);A(/&amp;lt;span.*?style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;(.*?)&amp;lt;\/span&amp;gt;/gi,&amp;quot;[u]$1[/u]&amp;quot;);A(/&amp;lt;ul&amp;gt;(.*?)&amp;lt;\/ul&amp;gt;/gi,&amp;quot;[list]$1[/list]&amp;quot;);A(/&amp;lt;li&amp;gt;(.*?)&amp;lt;\/li&amp;gt;/gi,&amp;quot;[*]$1[]&amp;quot;);A(/&amp;lt;ol&amp;gt;(.*?)&amp;lt;\/ol&amp;gt;/gi,&amp;quot;[list=1]$1[/list]&amp;quot;);A(/&amp;lt;img.*?src=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;/gi,&amp;quot;[img]$1[/img]&amp;quot;);A(/&amp;lt;a.*?href=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;(.*?)&amp;lt;\/a&amp;gt;/gi,&amp;quot;[url=$1]$2[/url]&amp;quot;);A(/&amp;lt;br.*?&amp;gt;/gi,&amp;quot;\n&amp;quot;);A(/&amp;lt;.*?&amp;gt;.*?&amp;lt;\/.*?&amp;gt;/gi,&amp;quot;&amp;quot;);return B},fromBBCode:function(A){function B(D,C){A=A.replace(D,C)}B(/\[b\](.*?)\[\/b\]/gi,&amp;quot;&amp;lt;strong&amp;gt;$1&amp;lt;/strong&amp;gt;&amp;quot;);B(/\[i\](.*?)\[\/i\]/gi,&amp;quot;&amp;lt;em&amp;gt;$1&amp;lt;/em&amp;gt;&amp;quot;);B(/\[u\](.*?)\[\/u\]/gi,&#039;&amp;lt;span style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt;&#039;);B(/\[list\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&amp;quot;);B(/\[list=1\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ol&amp;gt;$1&amp;lt;/ol&amp;gt;&amp;quot;);B(/\[\*\](.*?)\[\/\*\]/gi,&amp;quot;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&amp;quot;);B(/\[img\](.*?)\[\/img\]/gi,&#039;&amp;lt;img src=&amp;quot;$1&amp;quot; /&amp;gt;&#039;);B(/\[url=(.*?)\](.*?)\[\/url\]/gi,&#039;&amp;lt;a href=&amp;quot;$1&amp;quot;&amp;gt;$2&amp;lt;/a&amp;gt;&#039;);B(/\n/gi,&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);return A}});nicEditors.registerPlugin(nicBBCode);
&amp;nbsp;
&amp;nbsp;
var nicUploadOptions = {
	buttons : {
		&#039;upload&#039; : {name : &#039;Upload Image&#039;, type : &#039;nicUploadButton&#039;}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicUploadButton=nicEditorAdvancedButton.extend({nicURI:&amp;quot;http://api.imgur.com/2/upload.json&amp;quot;,errorText:&amp;quot;Failed to upload image&amp;quot;,addPane:function(){if(typeof window.FormData===&amp;quot;undefined&amp;quot;){return this.onError(&amp;quot;Image uploads are not supported in this browser, use Chrome, Firefox, or Safari instead.&amp;quot;)}this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;);var A=new bkElement(&amp;quot;div&amp;quot;).setStyle({padding:&amp;quot;10px&amp;quot;}).appendTo(this.pane.pane);new bkElement(&amp;quot;div&amp;quot;).setStyle({fontSize:&amp;quot;14px&amp;quot;,fontWeight:&amp;quot;bold&amp;quot;,paddingBottom:&amp;quot;5px&amp;quot;}).setContent(&amp;quot;Insert an Image&amp;quot;).appendTo(A);this.fileInput=new bkElement(&amp;quot;input&amp;quot;).setAttributes({type:&amp;quot;file&amp;quot;}).appendTo(A);this.progress=new bkElement(&amp;quot;progress&amp;quot;).setStyle({width:&amp;quot;100%&amp;quot;,display:&amp;quot;none&amp;quot;}).setAttributes(&amp;quot;max&amp;quot;,100).appendTo(A);this.fileInput.onchange=this.uploadFile.closure(this)},onError:function(A){this.removePane();alert(A||&amp;quot;Failed to upload image&amp;quot;)},uploadFile:function(){var B=this.fileInput.files[0];if(!B||!B.type.match(/image.*/)){this.onError(&amp;quot;Only image files can be uploaded&amp;quot;);return }this.fileInput.setStyle({display:&amp;quot;none&amp;quot;});this.setProgress(0);var A=new FormData();A.append(&amp;quot;image&amp;quot;,B);A.append(&amp;quot;key&amp;quot;,&amp;quot;b7ea18a4ecbda8e92203fa4968d10660&amp;quot;);var C=new XMLHttpRequest();C.open(&amp;quot;POST&amp;quot;,this.ne.options.uploadURI||this.nicURI);C.onload=function(){try{var D=JSON.parse(C.responseText)}catch(E){return this.onError()}this.onUploaded(D.upload)}.closure(this);C.onerror=this.onError.closure(this);C.upload.onprogress=function(D){this.setProgress(D.loaded/D.total)}.closure(this);C.send(A)},setProgress:function(A){this.progress.setStyle({display:&amp;quot;block&amp;quot;});if(A&amp;lt;0.98){this.progress.value=A}else{this.progress.removeAttribute(&amp;quot;value&amp;quot;)}},onUploaded:function(B){this.removePane();var D=B.links.original;if(!this.im){this.ne.selectedInstance.restoreRng();var C=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,D);this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,D)}var A=parseInt(this.ne.selectedInstance.elm.getStyle(&amp;quot;width&amp;quot;));if(this.im){this.im.setAttributes({src:D,width:(A&amp;amp;&amp;amp;B.image.width)?Math.min(A,B.image.width):&amp;quot;&amp;quot;})}}});nicEditors.registerPlugin(nicPlugin,nicUploadOptions);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:56:45 +0000</pubDate>
        </item>
        <item>
            <title>nicedit_nicedit_js</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_js&amp;rev=1767789765</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niceditjs&quot;&gt;nicEdit.js&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.js&quot; class=&quot;urlextern&quot; title=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.js&quot; rel=&quot;ugc nofollow&quot;&gt;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.js&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_js&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;nicEdit.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;/* NicEdit - Micro Inline WYSIWYG
 * Copyright 2007-2008 Brian Kirchoff
 *
 * NicEdit is distributed under the terms of the MIT license
 * For more information visit http://nicedit.com/
 * Do not remove this copyright message
 */
var bkExtend = function() {
  var args = arguments;
  if (args.length == 1) args = [this, args[0]];
  for (var prop in args[1]) args[0][prop] = args[1][prop];
  return args[0];
};
&amp;nbsp;
function bkClass() {}
bkClass.prototype.construct = function() {};
bkClass.extend = function(def) {
  var classDef = function() {
    if (arguments[0] !== bkClass) {
      return this.construct.apply(this, arguments);
    }
  };
  var proto = new this(bkClass);
  bkExtend(proto, def);
  classDef.prototype = proto;
  classDef.extend = this.extend;
  return classDef;
};
&amp;nbsp;
var bkElement = bkClass.extend({
  construct: function(elm, d) {
    if (typeof(elm) == &amp;quot;string&amp;quot;) {
      elm = (d || document).createElement(elm);
    }
    elm = $BK(elm);
    return elm;
  },
&amp;nbsp;
  appendTo: function(elm) {
    elm.appendChild(this);
    return this;
  },
&amp;nbsp;
  appendBefore: function(elm) {
    elm.parentNode.insertBefore(this, elm);
    return this;
  },
&amp;nbsp;
  addEvent: function(type, fn) {
    bkLib.addEvent(this, type, fn);
    return this;
  },
&amp;nbsp;
  setContent: function(c) {
    this.innerHTML = c;
    return this;
  },
&amp;nbsp;
  pos: function() {
    var curleft = curtop = 0;
    var o = obj = this;
    if (obj.offsetParent) {
      do {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
      } while (obj = obj.offsetParent);
    }
    var b = (!window.opera) ? parseInt(this.getStyle(&#039;border-width&#039;) || this.style.border, 10) || 0 : 0;
    return [curleft + b, curtop + b + this.offsetHeight];
  },
&amp;nbsp;
  noSelect: function() {
    bkLib.noSelect(this);
    return this;
  },
&amp;nbsp;
  parentTag: function(t) {
    var elm = this;
    do {
      if (elm &amp;amp;&amp;amp; elm.nodeName &amp;amp;&amp;amp; elm.nodeName.toUpperCase() == t) {
        return elm;
      }
      elm = elm.parentNode;
    } while (elm);
    return false;
  },
&amp;nbsp;
  hasClass: function(cls) {
    return this.className.match(new RegExp(&#039;(\\s|^)nicEdit-&#039; + cls + &#039;(\\s|$)&#039;));
  },
&amp;nbsp;
  addClass: function(cls) {
    if (!this.hasClass(cls)) {
      this.className += &amp;quot; nicEdit-&amp;quot; + cls;
    }
    return this;
  },
&amp;nbsp;
  removeClass: function(cls) {
    if (this.hasClass(cls)) {
      this.className = this.className.replace(new RegExp(&#039;(\\s|^)nicEdit-&#039; + cls + &#039;(\\s|$)&#039;), &#039; &#039;);
    }
    return this;
  },
&amp;nbsp;
  setStyle: function(st) {
    var elmStyle = this.style;
    for (var itm in st) {
      switch (itm) {
      case &#039;float&#039;:
        elmStyle[&#039;cssFloat&#039;] = elmStyle[&#039;styleFloat&#039;] = st[itm];
        break;
      case &#039;opacity&#039;:
        elmStyle.opacity = st[itm];
        elmStyle.filter = &amp;quot;alpha(opacity=&amp;quot; + Math.round(st[itm] * 100) + &amp;quot;)&amp;quot;;
        break;
      case &#039;className&#039;:
        this.className = st[itm];
        break;
      default:
        //if(document.compatMode || itm != &amp;quot;cursor&amp;quot;) { // Nasty Workaround for IE 5.5
        elmStyle[itm] = st[itm];
        //}
      }
    }
    return this;
  },
&amp;nbsp;
  getStyle: function(cssRule, d) {
    var doc = (!d) ? document.defaultView : d;
    if (this.nodeType == 1) {
      if (doc &amp;amp;&amp;amp; doc.getComputedStyle) {
        return doc.getComputedStyle(this, null).getPropertyValue(cssRule);
      } else {
        return this.currentStyle[bkLib.camelize(cssRule)];
      }
    }
  },
&amp;nbsp;
  remove: function() {
    this.parentNode.removeChild(this);
    return this;
  },
&amp;nbsp;
  setAttributes: function(at) {
    for (var itm in at) {
      this[itm] = at[itm];
    }
    return this;
  }
});
&amp;nbsp;
var bkLib = {
  isMSIE: (navigator.appVersion.indexOf(&amp;quot;MSIE&amp;quot;) != -1),
&amp;nbsp;
  addEvent: function(obj, type, fn) {
    if (obj.addEventListener) {
      obj.addEventListener(type, fn, false);
    } else {
      obj.attachEvent(&amp;quot;on&amp;quot; + type, fn);
    }
  },
&amp;nbsp;
  toArray: function(iterable) {
    var length = iterable.length,
      results = new Array(length);
    while (length--) {
      results[length] = iterable[length];
    }
    return results;
  },
&amp;nbsp;
  noSelect: function(element) {
    if (element.setAttribute &amp;amp;&amp;amp; element.nodeName.toLowerCase() != &#039;input&#039; &amp;amp;&amp;amp; element.nodeName.toLowerCase() != &#039;textarea&#039;) {
      element.setAttribute(&#039;unselectable&#039;, &#039;on&#039;);
    }
    for (var i = 0; i &amp;lt; element.childNodes.length; i++) {
      bkLib.noSelect(element.childNodes[i]);
    }
  },
  camelize: function(s) {
    return s.replace(/\-(.)/g, function(m, l) {
      return l.toUpperCase();
    });
  },
  inArray: function(arr, item) {
    return (bkLib.search(arr, item) !== null);
  },
  search: function(arr, itm) {
    for (var i = 0; i &amp;lt; arr.length; i++) {
      if (arr[i] == itm)
        return i;
    }
    return null;
  },
  cancelEvent: function(e) {
    e = e || window.event;
    if (e.preventDefault &amp;amp;&amp;amp; e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
    return false;
  },
  domLoad: [],
  domLoaded: function() {
    if (arguments.callee.done) return;
    arguments.callee.done = true;
    for (i = 0; i &amp;lt; bkLib.domLoad.length; i++) bkLib.domLoad[i]();
  },
  onDomLoaded: function(fireThis) {
    this.domLoad.push(fireThis);
    if (document.addEventListener) {
      document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;, bkLib.domLoaded, null);
    } else if (bkLib.isMSIE) {
      document.write(&amp;quot;&amp;lt;style&amp;gt;.nicEdit-main p { margin: 0; }&amp;lt;/style&amp;gt;&amp;lt;scr&amp;quot; + &amp;quot;ipt id=__ie_onload defer &amp;quot; + ((location.protocol == &amp;quot;https:&amp;quot;) ? &amp;quot;src=&#039;javascript:void(0)&#039;&amp;quot; : &amp;quot;src=//0&amp;quot;) + &amp;quot;&amp;gt;&amp;lt;\/scr&amp;quot; + &amp;quot;ipt&amp;gt;&amp;quot;);
      $BK(&amp;quot;__ie_onload&amp;quot;).onreadystatechange = function() {
        if (this.readyState == &amp;quot;complete&amp;quot;) {
          bkLib.domLoaded();
        }
      };
    }
    window.onload = bkLib.domLoaded;
  }
};
&amp;nbsp;
function $BK(elm) {
  if (typeof(elm) == &amp;quot;string&amp;quot;) {
    elm = document.getElementById(elm);
  }
  return (elm &amp;amp;&amp;amp; !elm.appendTo) ? bkExtend(elm, bkElement.prototype) : elm;
}
&amp;nbsp;
var bkEvent = {
  addEvent: function(evType, evFunc) {
    if (evFunc) {
      this.eventList = this.eventList || {};
      this.eventList[evType] = this.eventList[evType] || [];
      this.eventList[evType].push(evFunc);
    }
    return this;
  },
  fireEvent: function() {
    var args = bkLib.toArray(arguments),
      evType = args.shift();
    if (this.eventList &amp;amp;&amp;amp; this.eventList[evType]) {
      for (var i = 0; i &amp;lt; this.eventList[evType].length; i++) {
        this.eventList[evType][i].apply(this, args);
      }
    }
  }
};
&amp;nbsp;
function __(s) {
  return s;
}
&amp;nbsp;
Function.prototype.closure = function() {
  var __method = this,
    args = bkLib.toArray(arguments),
    obj = args.shift();
  return function() {
    if (typeof(bkLib) != &#039;undefined&#039;) {
      return __method.apply(obj, args.concat(bkLib.toArray(arguments)));
    }
  };
};
&amp;nbsp;
Function.prototype.closureListener = function() {
  var __method = this,
    args = bkLib.toArray(arguments),
    object = args.shift();
  return function(e) {
    var target;
    e = e || window.event;
    if (e.target) {
      target = e.target;
    } else {
      target = e.srcElement;
    }
    return __method.apply(object, [e, target].concat(args));
  };
};
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
&amp;nbsp;
var nicEditorConfig = bkClass.extend({
  buttons: {
    &#039;bold&#039;: {
      name: __(&#039;Click to Bold&#039;),
      command: &#039;Bold&#039;,
      tags: [&#039;B&#039;, &#039;STRONG&#039;],
      css: {
        &#039;font-weight&#039;: &#039;bold&#039;
      },
      key: &#039;b&#039;
    },
    &#039;italic&#039;: {
      name: __(&#039;Click to Italic&#039;),
      command: &#039;Italic&#039;,
      tags: [&#039;EM&#039;, &#039;I&#039;],
      css: {
        &#039;font-style&#039;: &#039;italic&#039;
      },
      key: &#039;i&#039;
    },
    &#039;underline&#039;: {
      name: __(&#039;Click to Underline&#039;),
      command: &#039;Underline&#039;,
      tags: [&#039;U&#039;],
      css: {
        &#039;text-decoration&#039;: &#039;underline&#039;
      },
      key: &#039;u&#039;
    },
    &#039;left&#039;: {
      name: __(&#039;Left Align&#039;),
      command: &#039;justifyleft&#039;,
      noActive: true
    },
    &#039;center&#039;: {
      name: __(&#039;Center Align&#039;),
      command: &#039;justifycenter&#039;,
      noActive: true
    },
    &#039;right&#039;: {
      name: __(&#039;Right Align&#039;),
      command: &#039;justifyright&#039;,
      noActive: true
    },
    &#039;justify&#039;: {
      name: __(&#039;Justify Align&#039;),
      command: &#039;justifyfull&#039;,
      noActive: true
    },
    &#039;ol&#039;: {
      name: __(&#039;Insert Ordered List&#039;),
      command: &#039;insertorderedlist&#039;,
      tags: [&#039;OL&#039;]
    },
    &#039;ul&#039;: {
      name: __(&#039;Insert Unordered List&#039;),
      command: &#039;insertunorderedlist&#039;,
      tags: [&#039;UL&#039;]
    },
    &#039;subscript&#039;: {
      name: __(&#039;Click to Subscript&#039;),
      command: &#039;subscript&#039;,
      tags: [&#039;SUB&#039;]
    },
    &#039;superscript&#039;: {
      name: __(&#039;Click to Superscript&#039;),
      command: &#039;superscript&#039;,
      tags: [&#039;SUP&#039;]
    },
    &#039;strikethrough&#039;: {
      name: __(&#039;Click to Strike Through&#039;),
      command: &#039;strikeThrough&#039;,
      css: {
        &#039;text-decoration&#039;: &#039;line-through&#039;
      }
    },
    &#039;removeformat&#039;: {
      name: __(&#039;Remove Formatting&#039;),
      command: &#039;removeformat&#039;,
      noActive: true
    },
    &#039;indent&#039;: {
      name: __(&#039;Indent Text&#039;),
      command: &#039;indent&#039;,
      noActive: true
    },
    &#039;outdent&#039;: {
      name: __(&#039;Remove Indent&#039;),
      command: &#039;outdent&#039;,
      noActive: true
    },
    &#039;hr&#039;: {
      name: __(&#039;Horizontal Rule&#039;),
      command: &#039;insertHorizontalRule&#039;,
      noActive: true
    }
  },
  iconsPath: &#039;../nicEditorIcons.gif&#039;,
  buttonList: [&#039;save&#039;, &#039;bold&#039;, &#039;italic&#039;, &#039;underline&#039;, &#039;left&#039;, &#039;center&#039;, &#039;right&#039;, &#039;justify&#039;, &#039;ol&#039;, &#039;ul&#039;, &#039;fontSize&#039;, &#039;fontFamily&#039;, &#039;fontFormat&#039;, &#039;indent&#039;, &#039;outdent&#039;, &#039;image&#039;, &#039;upload&#039;, &#039;link&#039;, &#039;unlink&#039;, &#039;forecolor&#039;, &#039;bgcolor&#039;],
  iconList: {
    &amp;quot;xhtml&amp;quot;: 1,
    &amp;quot;bgcolor&amp;quot;: 2,
    &amp;quot;forecolor&amp;quot;: 3,
    &amp;quot;bold&amp;quot;: 4,
    &amp;quot;center&amp;quot;: 5,
    &amp;quot;hr&amp;quot;: 6,
    &amp;quot;indent&amp;quot;: 7,
    &amp;quot;italic&amp;quot;: 8,
    &amp;quot;justify&amp;quot;: 9,
    &amp;quot;left&amp;quot;: 10,
    &amp;quot;ol&amp;quot;: 11,
    &amp;quot;outdent&amp;quot;: 12,
    &amp;quot;removeformat&amp;quot;: 13,
    &amp;quot;right&amp;quot;: 14,
    &amp;quot;save&amp;quot;: 25,
    &amp;quot;strikethrough&amp;quot;: 16,
    &amp;quot;subscript&amp;quot;: 17,
    &amp;quot;superscript&amp;quot;: 18,
    &amp;quot;ul&amp;quot;: 19,
    &amp;quot;underline&amp;quot;: 20,
    &amp;quot;image&amp;quot;: 21,
    &amp;quot;link&amp;quot;: 22,
    &amp;quot;unlink&amp;quot;: 23,
    &amp;quot;close&amp;quot;: 24,
    &amp;quot;arrow&amp;quot;: 26,
    &amp;quot;upload&amp;quot;: 27
  },
  initWithLineBreak: true
});
/* END CONFIG */
&amp;nbsp;
&amp;nbsp;
var nicEditors = {
  nicPlugins: [],
  editors: [],
&amp;nbsp;
  registerPlugin: function(plugin, options) {
    this.nicPlugins.push({
      p: plugin,
      o: options
    });
  },
&amp;nbsp;
  allTextAreas: function(nicOptions) {
    var textareas = document.getElementsByTagName(&amp;quot;textarea&amp;quot;);
    for (var i = 0; i &amp;lt; textareas.length; i++) {
      nicEditors.editors.push(new nicEditor(nicOptions).panelInstance(textareas[i]));
    }
    return nicEditors.editors;
  },
&amp;nbsp;
  findEditor: function(e) {
    var editors = nicEditors.editors;
    for (var i = 0; i &amp;lt; editors.length; i++) {
      if (editors[i].instanceById(e)) {
        return editors[i]; // r is an instance of nicEditorInstance therefore it does not have removeInstance or removePanel methods
      }
    }
  }
};
&amp;nbsp;
&amp;nbsp;
var nicEditor = bkClass.extend({
  construct: function(o) {
    this.options = new nicEditorConfig();
    bkExtend(this.options, o);
    this.nicInstances = [];
    this.loadedPlugins = [];
&amp;nbsp;
    var plugins = nicEditors.nicPlugins;
    for (var i = 0; i &amp;lt; plugins.length; i++) {
      this.loadedPlugins.push(new plugins[i].p(this, plugins[i].o));
    }
    nicEditors.editors.push(this);
    bkLib.addEvent(document.body, &#039;mousedown&#039;, this.selectCheck.closureListener(this));
  },
&amp;nbsp;
  panelInstance: function(e, o) {
    e = this.checkReplace($BK(e));
    var panelElm = new bkElement(&#039;DIV&#039;).setStyle({
      width: (parseInt(e.getStyle(&#039;width&#039;), 10) || e.clientWidth) + &#039;px&#039;
    }).appendBefore(e);
    this.setPanel(panelElm);
    return this.addInstance(e, o);
  },
&amp;nbsp;
  checkReplace: function(e) {
    var r = nicEditors.findEditor(e);
    if (r) {
      r.removeInstance(e);
      r.removePanel();
    }
    return e;
  },
&amp;nbsp;
  addInstance: function(e, o) {
    var newInstance;
    e = this.checkReplace($BK(e));
    if (e.contentEditable || !!window.opera) {
      newInstance = new nicEditorInstance(e, o, this);
    } else {
      newInstance = new nicEditorIFrameInstance(e, o, this);
    }
    this.nicInstances.push(newInstance);
    return this;
  },
&amp;nbsp;
  removeInstance: function(e) {
    e = $BK(e);
    var instances = this.nicInstances;
    for (var i = 0; i &amp;lt; instances.length; i++) {
      if (instances[i].e == e) {
        instances[i].remove();
        this.nicInstances.splice(i, 1);
      }
    }
  },
&amp;nbsp;
  removePanel: function(e) {
    if (this.nicPanel) {
      this.nicPanel.remove();
      this.nicPanel = null;
    }
  },
&amp;nbsp;
  instanceById: function(e) {
    e = $BK(e);
    var instances = this.nicInstances;
    for (var i = 0; i &amp;lt; instances.length; i++) {
      if (instances[i].e == e) {
        return instances[i];
      }
    }
  },
&amp;nbsp;
  setPanel: function(e) {
    this.nicPanel = new nicEditorPanel($BK(e), this.options, this);
    this.fireEvent(&#039;panel&#039;, this.nicPanel);
    return this;
  },
&amp;nbsp;
  nicCommand: function(cmd, args) {
    if (this.selectedInstance) {
      this.selectedInstance.nicCommand(cmd, args);
    }
  },
&amp;nbsp;
  getIcon: function(iconName, options) {
    var icon = this.options.iconList[iconName];
    var file = (options.iconFiles) ? options.iconFiles[iconName] : &#039;&#039;;
    return {
      backgroundImage: &amp;quot;url(&#039;&amp;quot; + ((icon) ? this.options.iconsPath : file) + &amp;quot;&#039;)&amp;quot;,
      backgroundPosition: ((icon) ? ((icon - 1) * -18) : 0) + &#039;px 0px&#039;
    };
  },
&amp;nbsp;
  selectCheck: function(e, t) {
    var found = false;
    do {
      if (t.className &amp;amp;&amp;amp; t.className.indexOf(&#039;nicEdit&#039;) != -1) {
        return false;
      }
    } while (t = t.parentNode);
    this.fireEvent(&#039;blur&#039;, this.selectedInstance, t);
    this.lastSelectedInstance = this.selectedInstance;
    this.selectedInstance = null;
    return false;
  }
&amp;nbsp;
});
nicEditor = nicEditor.extend(bkEvent);
&amp;nbsp;
&amp;nbsp;
var nicEditorInstance = bkClass.extend({
  isSelected: false,
&amp;nbsp;
  construct: function(e, options, nicEditor) {
    this.ne = nicEditor;
    this.elm = this.e = e;
    this.options = options || {};
&amp;nbsp;
    newX = parseInt(e.getStyle(&#039;width&#039;), 10) || e.clientWidth;
    newY = parseInt(e.getStyle(&#039;height&#039;), 10) || e.clientHeight;
    this.initialHeight = newY - 8;
&amp;nbsp;
    var isTextarea = (e.nodeName.toLowerCase() == &amp;quot;textarea&amp;quot;);
    if (isTextarea || this.options.hasPanel) {
      var ie7s = (bkLib.isMSIE &amp;amp;&amp;amp; !((typeof document.body.style.maxHeight != &amp;quot;undefined&amp;quot;) &amp;amp;&amp;amp; document.compatMode == &amp;quot;CSS1Compat&amp;quot;));
      var s = {
        width: newX + &#039;px&#039;,
        border: &#039;1px solid #ccc&#039;,
        borderTop: 0,
        overflowY: &#039;auto&#039;,
        overflowX: &#039;hidden&#039;
      };
      s[(ie7s) ? &#039;height&#039; : &#039;maxHeight&#039;] = (this.ne.options.maxHeight) ? this.ne.options.maxHeight + &#039;px&#039; : null;
      this.editorContain = new bkElement(&#039;DIV&#039;).setStyle(s).appendBefore(e);
      var editorElm = new bkElement(&#039;DIV&#039;).setStyle({
        width: (newX - 8) + &#039;px&#039;,
        margin: &#039;4px&#039;,
        minHeight: newY + &#039;px&#039;
      }).addClass(&#039;main&#039;).appendTo(this.editorContain);
&amp;nbsp;
      e.setStyle({
        display: &#039;none&#039;
      });
&amp;nbsp;
      editorElm.innerHTML = e.innerHTML;
      if (isTextarea) {
        this.copyElm = e;
        var f = e.parentTag(&#039;FORM&#039;);
        if (f) {
          bkLib.addEvent(f, &#039;submit&#039;, this.saveContent.closure(this));
        }
      }
      editorElm.setStyle((ie7s) ? {
        height: newY + &#039;px&#039;
      } : {
        overflow: &#039;hidden&#039;
      });
      this.elm = editorElm;
    }
    this.ne.addEvent(&#039;blur&#039;, this.blur.closure(this));
&amp;nbsp;
    this.init();
    this.blur();
  },
&amp;nbsp;
  init: function() {
    this.elm.setAttribute(&#039;contentEditable&#039;, &#039;true&#039;);
    if (this.getContent() === &amp;quot;&amp;quot; &amp;amp;&amp;amp; this.options.initWithLineBreak) {
      this.setContent(&#039;&amp;lt;br /&amp;gt;&#039;);
    }
    this.instanceDoc = document.defaultView;
    this.elm.addEvent(&#039;mousedown&#039;, this.selected.closureListener(this)).addEvent(&#039;keypress&#039;, this.keyDown.closureListener(this)).addEvent(&#039;focus&#039;, this.selected.closure(this)).addEvent(&#039;blur&#039;, this.blur.closure(this)).addEvent(&#039;keyup&#039;, this.selected.closure(this));
    this.ne.fireEvent(&#039;add&#039;, this);
  },
&amp;nbsp;
  remove: function() {
    this.saveContent();
    if (this.copyElm || this.options.hasPanel) {
      this.editorContain.remove();
      this.e.setStyle({
        &#039;display&#039;: &#039;block&#039;
      });
      this.ne.removePanel();
    }
    this.disable();
    this.ne.fireEvent(&#039;remove&#039;, this);
  },
&amp;nbsp;
  disable: function() {
    this.elm.setAttribute(&#039;contentEditable&#039;, &#039;false&#039;);
  },
&amp;nbsp;
  getSel: function() {
    return (window.getSelection) ? window.getSelection() : document.selection;
  },
&amp;nbsp;
  getRng: function() {
    var s = this.getSel();
    if (!s) {
      return null;
    }
    return (s.rangeCount &amp;gt; 0) ? s.getRangeAt(0) :
      s.createRange &amp;amp;&amp;amp; s.createRange() || document.createRange();
  },
&amp;nbsp;
  selRng: function(rng, s) {
    if (window.getSelection) {
      s.removeAllRanges();
      s.addRange(rng);
    } else {
      rng.select();
    }
  },
&amp;nbsp;
  selElm: function() {
    var r = this.getRng();
    if (r.startContainer) {
      var contain = r.startContainer;
      if (r.cloneContents().childNodes.length == 1) {
        for (var i = 0; i &amp;lt; contain.childNodes.length; i++) {
          var rng = contain.childNodes[i].ownerDocument.createRange();
          rng.selectNode(contain.childNodes[i]);
          if (r.compareBoundaryPoints(Range.START_TO_START, rng) != 1 &amp;amp;&amp;amp;
            r.compareBoundaryPoints(Range.END_TO_END, rng) != -1) {
            return $BK(contain.childNodes[i]);
          }
        }
      }
      return $BK(contain);
    } else {
      return $BK((this.getSel().type == &amp;quot;Control&amp;quot;) ? r.item(0) : r.parentElement());
    }
  },
&amp;nbsp;
  saveRng: function() {
    this.savedRange = this.getRng();
    this.savedSel = this.getSel();
  },
&amp;nbsp;
  restoreRng: function() {
    if (this.savedRange) {
      this.selRng(this.savedRange, this.savedSel);
    }
  },
&amp;nbsp;
  keyDown: function(e, t) {
    this.ne.fireEvent(&#039;keyDown&#039;, this, e);
&amp;nbsp;
    if (e.ctrlKey) {
      this.ne.fireEvent(&#039;key&#039;, this, e);
    }
  },
&amp;nbsp;
  selected: function(e, t) {
    if (!t) {
      t = this.selElm();
    }
    if (!e.ctrlKey) {
      var selInstance = this.ne.selectedInstance;
      if (selInstance != this) {
        if (selInstance) {
          this.ne.fireEvent(&#039;blur&#039;, selInstance, t);
        }
        this.ne.selectedInstance = this;
        this.ne.fireEvent(&#039;focus&#039;, selInstance, t);
      }
      this.ne.fireEvent(&#039;selected&#039;, selInstance, t);
      this.isFocused = true;
      this.elm.addClass(&#039;selected&#039;);
    }
    return false;
  },
&amp;nbsp;
  blur: function() {
    this.isFocused = false;
    this.elm.removeClass(&#039;selected&#039;);
  },
&amp;nbsp;
  saveContent: function() {
    if (this.copyElm || this.options.hasPanel) {
      this.ne.fireEvent(&#039;save&#039;, this);
      if (this.copyElm) {
        this.copyElm.value = this.getContent();
      } else {
        this.e.innerHTML = this.getContent();
      }
    }
  },
&amp;nbsp;
  getElm: function() {
    return this.elm;
  },
&amp;nbsp;
  getContent: function() {
    this.content = this.getElm().innerHTML;
    this.ne.fireEvent(&#039;get&#039;, this);
    return this.content;
  },
&amp;nbsp;
  setContent: function(e) {
    this.content = e;
    this.ne.fireEvent(&#039;set&#039;, this);
    this.elm.innerHTML = this.content;
  },
&amp;nbsp;
  nicCommand: function(cmd, args) {
    document.execCommand(cmd, false, args);
  }
});
&amp;nbsp;
var nicEditorIFrameInstance = nicEditorInstance.extend({
  savedStyles: [],
&amp;nbsp;
  init: function() {
    var c = this.elm.innerHTML.replace(/^\s+|\s+$/g, &#039;&#039;);
    this.elm.innerHTML = &#039;&#039;;
    if (!c) {
      c = &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;;
    }
    this.initialContent = c;
&amp;nbsp;
    this.elmFrame = new bkElement(&#039;iframe&#039;).setAttributes({
      &#039;src&#039;: &#039;javascript:;&#039;,
      &#039;frameBorder&#039;: 0,
      &#039;allowTransparency&#039;: &#039;true&#039;,
      &#039;scrolling&#039;: &#039;no&#039;
    }).setStyle({
      height: &#039;100px&#039;,
      width: &#039;100%&#039;
    }).addClass(&#039;frame&#039;).appendTo(this.elm);
&amp;nbsp;
    if (this.copyElm) {
      this.elmFrame.setStyle({
        width: (this.elm.offsetWidth - 4) + &#039;px&#039;
      });
    }
&amp;nbsp;
    var styleList = [&#039;font-size&#039;, &#039;font-family&#039;, &#039;font-weight&#039;, &#039;color&#039;];
    for (var itm in styleList) {
      this.savedStyles[bkLib.camelize(itm)] = this.elm.getStyle(itm);
    }
&amp;nbsp;
    setTimeout(this.initFrame.closure(this), 50);
  },
&amp;nbsp;
  disable: function() {
    this.elm.innerHTML = this.getContent();
  },
&amp;nbsp;
  initFrame: function() {
    var fd = $BK(this.elmFrame.contentWindow.document);
    fd.designMode = &amp;quot;on&amp;quot;;
    fd.open();
    var css = this.ne.options.externalCSS;
    fd.write(&#039;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&#039; + ((css) ? &#039;&amp;lt;link href=&amp;quot;&#039; + css + &#039;&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&#039; : &#039;&#039;) + &#039;&amp;lt;/head&amp;gt;&amp;lt;body id=&amp;quot;nicEditContent&amp;quot; style=&amp;quot;margin: 0 !important; background-color: transparent !important;&amp;quot;&amp;gt;&#039; + this.initialContent + &#039;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&#039;);
    fd.close();
    this.frameDoc = fd;
&amp;nbsp;
    this.frameWin = $BK(this.elmFrame.contentWindow);
    this.frameContent = $BK(this.frameWin.document.body).setStyle(this.savedStyles);
    this.instanceDoc = this.frameWin.document.defaultView;
&amp;nbsp;
    this.heightUpdate();
    this.frameDoc.addEvent(&#039;mousedown&#039;, this.selected.closureListener(this)).addEvent(&#039;keyup&#039;, this.heightUpdate.closureListener(this)).addEvent(&#039;keydown&#039;, this.keyDown.closureListener(this)).addEvent(&#039;keyup&#039;, this.selected.closure(this));
    this.ne.fireEvent(&#039;add&#039;, this);
  },
&amp;nbsp;
  getElm: function() {
    return this.frameContent;
  },
&amp;nbsp;
  setContent: function(c) {
    this.content = c;
    this.ne.fireEvent(&#039;set&#039;, this);
    this.frameContent.innerHTML = this.content;
    this.heightUpdate();
  },
&amp;nbsp;
  getSel: function() {
    return (this.frameWin) ? this.frameWin.getSelection() : this.frameDoc.selection;
  },
&amp;nbsp;
  heightUpdate: function() {
    this.elmFrame.style.height = Math.max(this.frameContent.offsetHeight, this.initialHeight) + &#039;px&#039;;
  },
&amp;nbsp;
  nicCommand: function(cmd, args) {
    this.frameDoc.execCommand(cmd, false, args);
    setTimeout(this.heightUpdate.closure(this), 100);
  }
&amp;nbsp;
&amp;nbsp;
});
var nicEditorPanel = bkClass.extend({
  construct: function(e, options, nicEditor) {
    this.elm = e;
    this.options = options;
    this.ne = nicEditor;
    this.panelButtons = [];
    this.buttonList = bkExtend([], this.ne.options.buttonList);
&amp;nbsp;
    this.panelContain = new bkElement(&#039;DIV&#039;).setStyle({
      overflow: &#039;hidden&#039;,
      width: &#039;100%&#039;,
      border: &#039;1px solid #cccccc&#039;,
      backgroundColor: &#039;#efefef&#039;
    }).addClass(&#039;panelContain&#039;);
    this.panelElm = new bkElement(&#039;DIV&#039;).setStyle({
      margin: &#039;2px&#039;,
      marginTop: &#039;0px&#039;,
      zoom: 1,
      overflow: &#039;hidden&#039;
    }).addClass(&#039;panel&#039;).appendTo(this.panelContain);
    this.panelContain.appendTo(e);
&amp;nbsp;
    var opt = this.ne.options;
    var buttons = opt.buttons;
    for (var button in buttons) {
      this.addButton(button, opt, true);
    }
    this.reorder();
    e.noSelect();
  },
&amp;nbsp;
  addButton: function(buttonName, options, noOrder) {
    var button = options.buttons[buttonName];
    var type = null;
&amp;nbsp;
    if (button[&#039;type&#039;]) {
      type = typeof(window[button[&#039;type&#039;]]) === undefined ? null : window[button[&#039;type&#039;]];
    } else {
      type = nicEditorButton;
    }
    var hasButton = bkLib.inArray(this.buttonList, buttonName);
    if (type &amp;amp;&amp;amp; (hasButton || this.ne.options.fullPanel)) {
      this.panelButtons.push(new type(this.panelElm, buttonName, options, this.ne));
      if (!hasButton) {
        this.buttonList.push(buttonName);
      }
    }
  },
&amp;nbsp;
  findButton: function(itm) {
    for (var i = 0; i &amp;lt; this.panelButtons.length; i++) {
      if (this.panelButtons[i].name == itm)
        return this.panelButtons[i];
    }
  },
&amp;nbsp;
  reorder: function() {
    var bl = this.buttonList;
    for (var i = 0; i &amp;lt; bl.length; i++) {
      var button = this.findButton(bl[i]);
      if (button) {
        this.panelElm.appendChild(button.margin);
      }
    }
  },
&amp;nbsp;
  remove: function() {
    this.elm.remove();
  }
});
var nicEditorButton = bkClass.extend({
&amp;nbsp;
  construct: function(e, buttonName, options, nicEditor) {
    this.options = options.buttons[buttonName];
    this.name = buttonName;
    this.ne = nicEditor;
    this.elm = e;
&amp;nbsp;
    this.margin = new bkElement(&#039;DIV&#039;).setStyle({
      &#039;float&#039;: &#039;left&#039;,
      marginTop: &#039;2px&#039;
    }).appendTo(e);
    this.contain = new bkElement(&#039;DIV&#039;).setStyle({
      width: &#039;20px&#039;,
      height: &#039;20px&#039;
    }).addClass(&#039;buttonContain&#039;).appendTo(this.margin);
    this.border = new bkElement(&#039;DIV&#039;).setStyle({
      backgroundColor: &#039;#efefef&#039;,
      border: &#039;1px solid #efefef&#039;
    }).appendTo(this.contain);
    this.button = new bkElement(&#039;DIV&#039;).setStyle({
      width: &#039;18px&#039;,
      height: &#039;18px&#039;,
      overflow: &#039;hidden&#039;,
      zoom: 1,
      cursor: &#039;pointer&#039;
    }).addClass(&#039;button&#039;).setStyle(this.ne.getIcon(buttonName, options)).appendTo(this.border);
    this.button.addEvent(&#039;mouseover&#039;, this.hoverOn.closure(this)).addEvent(&#039;mouseout&#039;, this.hoverOff.closure(this)).addEvent(&#039;mousedown&#039;, this.mouseClick.closure(this)).noSelect();
&amp;nbsp;
    if (!window.opera) {
      this.button.onmousedown = this.button.onclick = bkLib.cancelEvent;
    }
&amp;nbsp;
    nicEditor.addEvent(&#039;selected&#039;, this.enable.closure(this)).addEvent(&#039;blur&#039;, this.disable.closure(this)).addEvent(&#039;key&#039;, this.key.closure(this));
&amp;nbsp;
    this.disable();
    this.init();
  },
&amp;nbsp;
  init: function() {},
&amp;nbsp;
  hide: function() {
    this.contain.setStyle({
      display: &#039;none&#039;
    });
  },
&amp;nbsp;
  updateState: function() {
    if (this.isDisabled) {
      this.setBg();
    } else if (this.isHover) {
      this.setBg(&#039;hover&#039;);
    } else if (this.isActive) {
      this.setBg(&#039;active&#039;);
    } else {
      this.setBg();
    }
  },
&amp;nbsp;
  setBg: function(state) {
    var stateStyle;
    switch (state) {
    case &#039;hover&#039;:
      stateStyle = {
        border: &#039;1px solid #666&#039;,
        backgroundColor: &#039;#ddd&#039;
      };
      break;
    case &#039;active&#039;:
      stateStyle = {
        border: &#039;1px solid #666&#039;,
        backgroundColor: &#039;#ccc&#039;
      };
      break;
    default:
      stateStyle = {
        border: &#039;1px solid #efefef&#039;,
        backgroundColor: &#039;#efefef&#039;
      };
    }
    this.border.setStyle(stateStyle).addClass(&#039;button-&#039; + state);
  },
&amp;nbsp;
  checkNodes: function(e) {
    var elm = e;
    do {
      if (this.options.tags &amp;amp;&amp;amp; bkLib.inArray(this.options.tags, elm.nodeName)) {
        this.activate();
        return true;
      }
    } while ((elm = elm.parentNode) &amp;amp;&amp;amp; elm.className != &amp;quot;nicEdit&amp;quot;);
    elm = $BK(e);
    while (elm.nodeType == 3) {
      elm = $BK(elm.parentNode);
    }
    if (this.options.css) {
      for (var itm in this.options.css) {
        if (elm.getStyle(itm, this.ne.selectedInstance.instanceDoc) == this.options.css[itm]) {
          this.activate();
          return true;
        }
      }
    }
    this.deactivate();
    return false;
  },
&amp;nbsp;
  activate: function() {
    if (!this.isDisabled) {
      this.isActive = true;
      this.updateState();
      this.ne.fireEvent(&#039;buttonActivate&#039;, this);
    }
  },
&amp;nbsp;
  deactivate: function() {
    this.isActive = false;
    this.updateState();
    if (!this.isDisabled) {
      this.ne.fireEvent(&#039;buttonDeactivate&#039;, this);
    }
  },
&amp;nbsp;
  enable: function(ins, t) {
    this.isDisabled = false;
    this.contain.setStyle({
      &#039;opacity&#039;: 1
    }).addClass(&#039;buttonEnabled&#039;);
    this.updateState();
    if (t !== document) {
      this.checkNodes(t);
    }
  },
&amp;nbsp;
  disable: function(ins, t) {
    this.isDisabled = true;
    this.contain.setStyle({
      &#039;opacity&#039;: 0.6
    }).removeClass(&#039;buttonEnabled&#039;);
    this.updateState();
  },
&amp;nbsp;
  toggleActive: function() {
    if (this.isActive) {
      this.deactivate();
    } else {
      this.activate();
    }
  },
&amp;nbsp;
  hoverOn: function() {
    if (!this.isDisabled) {
      this.isHover = true;
      this.updateState();
      this.ne.fireEvent(&amp;quot;buttonOver&amp;quot;, this);
    }
  },
&amp;nbsp;
  hoverOff: function() {
    this.isHover = false;
    this.updateState();
    this.ne.fireEvent(&amp;quot;buttonOut&amp;quot;, this);
  },
&amp;nbsp;
  mouseClick: function() {
    if (this.options.command) {
      this.ne.nicCommand(this.options.command, this.options.commandArgs);
      if (!this.options.noActive) {
        this.toggleActive();
      }
    }
    this.ne.fireEvent(&amp;quot;buttonClick&amp;quot;, this);
  },
&amp;nbsp;
  key: function(nicInstance, e) {
    if (this.options.key &amp;amp;&amp;amp; e.ctrlKey &amp;amp;&amp;amp; String.fromCharCode(e.keyCode || e.charCode).toLowerCase() == this.options.key) {
      this.mouseClick();
      if (e.preventDefault) e.preventDefault();
    }
  }
&amp;nbsp;
});
&amp;nbsp;
&amp;nbsp;
var nicPlugin = bkClass.extend({
&amp;nbsp;
  construct: function(nicEditor, options) {
    this.options = options;
    this.ne = nicEditor;
    this.ne.addEvent(&#039;panel&#039;, this.loadPanel.closure(this));
&amp;nbsp;
    this.init();
  },
&amp;nbsp;
  loadPanel: function(np) {
    var buttons = this.options.buttons;
    for (var button in buttons) {
      np.addButton(button, this.options);
    }
    np.reorder();
  },
&amp;nbsp;
  init: function() {}
});
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicPaneOptions = {};
/* END CONFIG */
&amp;nbsp;
var nicEditorPane = bkClass.extend({
  construct: function(elm, nicEditor, options, openButton) {
    this.ne = nicEditor;
    this.elm = elm;
    this.pos = elm.pos();
&amp;nbsp;
    this.contain = new bkElement(&#039;div&#039;).setStyle({
      zIndex: &#039;99999&#039;,
      overflow: &#039;hidden&#039;,
      position: &#039;absolute&#039;,
      left: this.pos[0] + &#039;px&#039;,
      top: this.pos[1] + &#039;px&#039;
    });
    this.pane = new bkElement(&#039;div&#039;).setStyle({
      fontSize: &#039;12px&#039;,
      border: &#039;1px solid #ccc&#039;,
      overflow: &#039;hidden&#039;,
      padding: &#039;4px&#039;,
      textAlign: &#039;left&#039;,
      backgroundColor: &#039;#ffffc9&#039;
    }).addClass(&#039;pane&#039;).setStyle(options).appendTo(this.contain);
&amp;nbsp;
    if (openButton &amp;amp;&amp;amp; !openButton.options.noClose) {
      this.close = new bkElement(&#039;div&#039;).setStyle({
        &#039;float&#039;: &#039;right&#039;,
        height: &#039;16px&#039;,
        width: &#039;16px&#039;,
        cursor: &#039;pointer&#039;
      }).setStyle(this.ne.getIcon(&#039;close&#039;, nicPaneOptions)).addEvent(&#039;mousedown&#039;, openButton.removePane.closure(this)).appendTo(this.pane);
    }
&amp;nbsp;
    this.contain.noSelect().appendTo(document.body);
&amp;nbsp;
    this.position();
    this.init();
  },
&amp;nbsp;
  init: function() {},
&amp;nbsp;
  position: function() {
    if (this.ne.nicPanel) {
      var panelElm = this.ne.nicPanel.elm;
      var panelPos = panelElm.pos();
      var newLeft = panelPos[0] + parseInt(panelElm.getStyle(&#039;width&#039;), 10) - (parseInt(this.pane.getStyle(&#039;width&#039;), 10) + 8);
      if (newLeft &amp;lt; this.pos[0]) {
        this.contain.setStyle({
          left: newLeft + &#039;px&#039;
        });
      }
    }
  },
&amp;nbsp;
  toggle: function() {
    this.isVisible = !this.isVisible;
    this.contain.setStyle({
      display: ((this.isVisible) ? &#039;block&#039; : &#039;none&#039;)
    });
  },
&amp;nbsp;
  remove: function() {
    if (this.contain) {
      this.contain.remove();
      this.contain = null;
    }
  },
&amp;nbsp;
  append: function(c) {
    c.appendTo(this.pane);
  },
&amp;nbsp;
  setContent: function(c) {
    this.pane.setContent(c);
  }
&amp;nbsp;
});
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
var nicEditorAdvancedButton = nicEditorButton.extend({
&amp;nbsp;
  init: function() {
    this.ne.addEvent(&#039;selected&#039;, this.removePane.closure(this)).addEvent(&#039;blur&#039;, this.removePane.closure(this));
  },
&amp;nbsp;
  mouseClick: function() {
    if (!this.isDisabled) {
      if (this.pane &amp;amp;&amp;amp; this.pane.pane) {
        this.removePane();
      } else {
        this.pane = new nicEditorPane(this.contain, this.ne, {
          width: (this.width || &#039;270px&#039;),
          backgroundColor: &#039;#fff&#039;
        }, this);
        this.addPane();
        this.ne.selectedInstance.saveRng();
      }
    }
  },
&amp;nbsp;
  addForm: function(f, elm) {
    this.form = new bkElement(&#039;form&#039;).addEvent(&#039;submit&#039;, this.submit.closureListener(this));
    this.pane.append(this.form);
    this.inputs = {};
&amp;nbsp;
    for (var itm in f) {
      var field = f[itm];
      var val = &#039;&#039;;
      if (elm) {
        val = elm.getAttribute(itm);
      }
      if (!val) {
        val = field[&#039;value&#039;] || &#039;&#039;;
      }
      var type = f[itm].type;
&amp;nbsp;
      if (type == &#039;title&#039;) {
        new bkElement(&#039;div&#039;).setContent(field.txt).setStyle({
          fontSize: &#039;14px&#039;,
          fontWeight: &#039;bold&#039;,
          padding: &#039;0px&#039;,
          margin: &#039;2px 0&#039;
        }).appendTo(this.form);
      } else {
        var contain = new bkElement(&#039;div&#039;).setStyle({
          overflow: &#039;hidden&#039;,
          clear: &#039;both&#039;
        }).appendTo(this.form);
        if (field.txt) {
          new bkElement(&#039;label&#039;).setAttributes({
            &#039;for&#039;: itm
          }).setContent(field.txt).setStyle({
            margin: &#039;2px 4px&#039;,
            fontSize: &#039;13px&#039;,
            width: &#039;50px&#039;,
            lineHeight: &#039;20px&#039;,
            textAlign: &#039;right&#039;,
            &#039;float&#039;: &#039;left&#039;
          }).appendTo(contain);
        }
&amp;nbsp;
        switch (type) {
        case &#039;text&#039;:
          this.inputs[itm] = new bkElement(&#039;input&#039;).setAttributes({
            id: itm,
            &#039;value&#039;: val,
            &#039;type&#039;: &#039;text&#039;
          }).setStyle({
            margin: &#039;2px 0&#039;,
            fontSize: &#039;13px&#039;,
            &#039;float&#039;: &#039;left&#039;,
            height: &#039;20px&#039;,
            border: &#039;1px solid #ccc&#039;,
            overflow: &#039;hidden&#039;
          }).setStyle(field.style).appendTo(contain);
          break;
        case &#039;select&#039;:
          this.inputs[itm] = new bkElement(&#039;select&#039;).setAttributes({
            id: itm
          }).setStyle({
            border: &#039;1px solid #ccc&#039;,
            &#039;float&#039;: &#039;left&#039;,
            margin: &#039;2px 0&#039;
          }).appendTo(contain);
          for (var opt in field.options) {
            var o = new bkElement(&#039;option&#039;).setAttributes({
              value: opt,
              selected: (opt == val) ? &#039;selected&#039; : &#039;&#039;
            }).setContent(field.options[opt]).appendTo(this.inputs[itm]);
          }
          break;
        case &#039;content&#039;:
          this.inputs[itm] = new bkElement(&#039;textarea&#039;).setAttributes({
            id: itm
          }).setStyle({
            border: &#039;1px solid #ccc&#039;,
            &#039;float&#039;: &#039;left&#039;
          }).setStyle(field.style).appendTo(contain);
          this.inputs[itm].value = val;
        }
      }
    }
    new bkElement(&#039;input&#039;).setAttributes({
      &#039;type&#039;: &#039;submit&#039;
    }).setStyle({
      backgroundColor: &#039;#efefef&#039;,
      border: &#039;1px solid #ccc&#039;,
      margin: &#039;3px 0&#039;,
      &#039;float&#039;: &#039;left&#039;,
      &#039;clear&#039;: &#039;both&#039;
    }).appendTo(this.form);
    this.form.onsubmit = bkLib.cancelEvent;
  },
&amp;nbsp;
  submit: function() {},
&amp;nbsp;
  findElm: function(tag, attr, val) {
    var list = this.ne.selectedInstance.getElm().getElementsByTagName(tag);
    for (var i = 0; i &amp;lt; list.length; i++) {
      if (list[i].getAttribute(attr) == val) {
        return $BK(list[i]);
      }
    }
  },
&amp;nbsp;
  removePane: function() {
    if (this.pane) {
      this.pane.remove();
      this.pane = null;
      this.ne.selectedInstance.restoreRng();
    }
  }
});
&amp;nbsp;
&amp;nbsp;
var nicButtonTips = bkClass.extend({
  construct: function(nicEditor) {
    this.ne = nicEditor;
    nicEditor.addEvent(&#039;buttonOver&#039;, this.show.closure(this)).addEvent(&#039;buttonOut&#039;, this.hide.closure(this));
&amp;nbsp;
  },
&amp;nbsp;
  show: function(button) {
    this.timer = setTimeout(this.create.closure(this, button), 400);
  },
&amp;nbsp;
  create: function(button) {
    this.timer = null;
    if (!this.pane) {
      this.pane = new nicEditorPane(button.button, this.ne, {
        fontSize: &#039;12px&#039;,
        marginTop: &#039;5px&#039;
      });
      this.pane.setContent(button.options.name);
    }
  },
&amp;nbsp;
  hide: function(button) {
    if (this.timer) {
      clearTimeout(this.timer);
    }
    if (this.pane) {
      this.pane = this.pane.remove();
    }
  }
});
nicEditors.registerPlugin(nicButtonTips);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicSelectOptions = {
  buttons: {
    &#039;fontSize&#039;: {
      name: __(&#039;Select Font Size&#039;),
      type: &#039;nicEditorFontSizeSelect&#039;,
      command: &#039;fontsize&#039;
    },
    &#039;fontFamily&#039;: {
      name: __(&#039;Select Font Family&#039;),
      type: &#039;nicEditorFontFamilySelect&#039;,
      command: &#039;fontname&#039;
    },
    &#039;fontFormat&#039;: {
      name: __(&#039;Select Font Format&#039;),
      type: &#039;nicEditorFontFormatSelect&#039;,
      command: &#039;formatBlock&#039;
    }
  }
};
/* END CONFIG */
var nicEditorSelect = bkClass.extend({
&amp;nbsp;
  construct: function(e, buttonName, options, nicEditor) {
    this.options = options.buttons[buttonName];
    this.elm = e;
    this.ne = nicEditor;
    this.name = buttonName;
    this.selOptions = [];
&amp;nbsp;
    this.margin = new bkElement(&#039;div&#039;).setStyle({
      &#039;float&#039;: &#039;left&#039;,
      margin: &#039;2px 1px 0 1px&#039;
    }).appendTo(this.elm);
    this.contain = new bkElement(&#039;div&#039;).setStyle({
      width: &#039;90px&#039;,
      height: &#039;20px&#039;,
      cursor: &#039;pointer&#039;,
      overflow: &#039;hidden&#039;
    }).addClass(&#039;selectContain&#039;).addEvent(&#039;click&#039;, this.toggle.closure(this)).appendTo(this.margin);
    this.items = new bkElement(&#039;div&#039;).setStyle({
      overflow: &#039;hidden&#039;,
      zoom: 1,
      border: &#039;1px solid #ccc&#039;,
      paddingLeft: &#039;3px&#039;,
      backgroundColor: &#039;#fff&#039;
    }).appendTo(this.contain);
    this.control = new bkElement(&#039;div&#039;).setStyle({
      overflow: &#039;hidden&#039;,
      &#039;float&#039;: &#039;right&#039;,
      height: &#039;18px&#039;,
      width: &#039;16px&#039;
    }).addClass(&#039;selectControl&#039;).setStyle(this.ne.getIcon(&#039;arrow&#039;, options)).appendTo(this.items);
    this.txt = new bkElement(&#039;div&#039;).setStyle({
      overflow: &#039;hidden&#039;,
      &#039;float&#039;: &#039;left&#039;,
      width: &#039;66px&#039;,
      height: &#039;14px&#039;,
      marginTop: &#039;1px&#039;,
      fontFamily: &#039;sans-serif&#039;,
      textAlign: &#039;center&#039;,
      fontSize: &#039;12px&#039;
    }).addClass(&#039;selectTxt&#039;).appendTo(this.items);
&amp;nbsp;
    if (!window.opera) {
      this.contain.onmousedown = this.control.onmousedown = this.txt.onmousedown = bkLib.cancelEvent;
    }
&amp;nbsp;
    this.margin.noSelect();
&amp;nbsp;
    this.ne.addEvent(&#039;selected&#039;, this.enable.closure(this)).addEvent(&#039;blur&#039;, this.disable.closure(this));
&amp;nbsp;
    this.disable();
    this.init();
  },
&amp;nbsp;
  disable: function() {
    this.isDisabled = true;
    this.close();
    this.contain.setStyle({
      opacity: 0.6
    });
  },
&amp;nbsp;
  enable: function(t) {
    this.isDisabled = false;
    this.close();
    this.contain.setStyle({
      opacity: 1
    });
  },
&amp;nbsp;
  setDisplay: function(txt) {
    this.txt.setContent(txt);
  },
&amp;nbsp;
  toggle: function() {
    if (!this.isDisabled) {
      if (this.pane) {
        this.close();
      } else {
        this.open();
      }
    }
  },
&amp;nbsp;
  open: function() {
    this.pane = new nicEditorPane(this.items, this.ne, {
      width: &#039;88px&#039;,
      padding: &#039;0px&#039;,
      borderTop: 0,
      borderLeft: &#039;1px solid #ccc&#039;,
      borderRight: &#039;1px solid #ccc&#039;,
      borderBottom: &#039;0px&#039;,
      backgroundColor: &#039;#fff&#039;
    });
&amp;nbsp;
    for (var i = 0; i &amp;lt; this.selOptions.length; i++) {
      var opt = this.selOptions[i];
      var itmContain = new bkElement(&#039;div&#039;).setStyle({
        overflow: &#039;hidden&#039;,
        borderBottom: &#039;1px solid #ccc&#039;,
        width: &#039;88px&#039;,
        textAlign: &#039;left&#039;,
        cursor: &#039;pointer&#039;
      });
      var itm = new bkElement(&#039;div&#039;).setStyle({
        padding: &#039;0px 4px&#039;
      }).setContent(opt[1]).appendTo(itmContain).noSelect();
      itm.addEvent(&#039;click&#039;, this.update.closure(this, opt[0])).addEvent(&#039;mouseover&#039;, this.over.closure(this, itm)).addEvent(&#039;mouseout&#039;, this.out.closure(this, itm)).setAttributes(&#039;id&#039;, opt[0]);
      this.pane.append(itmContain);
      if (!window.opera) {
        itm.onmousedown = bkLib.cancelEvent;
      }
    }
  },
&amp;nbsp;
  close: function() {
    if (this.pane) {
      this.pane = this.pane.remove();
    }
  },
&amp;nbsp;
  over: function(opt) {
    opt.setStyle({
      backgroundColor: &#039;#ccc&#039;
    });
  },
&amp;nbsp;
  out: function(opt) {
    opt.setStyle({
      backgroundColor: &#039;#fff&#039;
    });
  },
&amp;nbsp;
&amp;nbsp;
  add: function(k, v) {
    this.selOptions.push(new Array(k, v));
  },
&amp;nbsp;
  update: function(elm) {
    this.ne.nicCommand(this.options.command, elm);
    this.close();
  }
});
&amp;nbsp;
var nicEditorFontSizeSelect = nicEditorSelect.extend({
  sel: {
    1: &#039;1&amp;amp;nbsp;(8pt)&#039;,
    2: &#039;2&amp;amp;nbsp;(10pt)&#039;,
    3: &#039;3&amp;amp;nbsp;(12pt)&#039;,
    4: &#039;4&amp;amp;nbsp;(14pt)&#039;,
    5: &#039;5&amp;amp;nbsp;(18pt)&#039;,
    6: &#039;6&amp;amp;nbsp;(24pt)&#039;
  },
  init: function() {
    this.setDisplay(&#039;Font&amp;amp;nbsp;Size...&#039;);
    for (var itm in this.sel) {
      this.add(itm, &#039;&amp;lt;font size=&amp;quot;&#039; + itm + &#039;&amp;quot;&amp;gt;&#039; + this.sel[itm] + &#039;&amp;lt;/font&amp;gt;&#039;);
    }
  }
});
&amp;nbsp;
var nicEditorFontFamilySelect = nicEditorSelect.extend({
  sel: {
    &#039;arial&#039;: &#039;Arial&#039;,
    &#039;comic sans ms&#039;: &#039;Comic Sans&#039;,
    &#039;courier new&#039;: &#039;Courier New&#039;,
    &#039;georgia&#039;: &#039;Georgia&#039;,
    &#039;helvetica&#039;: &#039;Helvetica&#039;,
    &#039;impact&#039;: &#039;Impact&#039;,
    &#039;times new roman&#039;: &#039;Times&#039;,
    &#039;trebuchet ms&#039;: &#039;Trebuchet&#039;,
    &#039;verdana&#039;: &#039;Verdana&#039;
  },
&amp;nbsp;
  init: function() {
    this.setDisplay(&#039;Font&amp;amp;nbsp;Family...&#039;);
    for (var itm in this.sel) {
      this.add(itm, &#039;&amp;lt;font face=&amp;quot;&#039; + itm + &#039;&amp;quot;&amp;gt;&#039; + this.sel[itm] + &#039;&amp;lt;/font&amp;gt;&#039;);
    }
  }
});
&amp;nbsp;
var nicEditorFontFormatSelect = nicEditorSelect.extend({
  sel: {
    &#039;p&#039;: &#039;Paragraph&#039;,
    &#039;pre&#039;: &#039;Pre&#039;,
    &#039;h6&#039;: &#039;Heading&amp;amp;nbsp;6&#039;,
    &#039;h5&#039;: &#039;Heading&amp;amp;nbsp;5&#039;,
    &#039;h4&#039;: &#039;Heading&amp;amp;nbsp;4&#039;,
    &#039;h3&#039;: &#039;Heading&amp;amp;nbsp;3&#039;,
    &#039;h2&#039;: &#039;Heading&amp;amp;nbsp;2&#039;,
    &#039;h1&#039;: &#039;Heading&amp;amp;nbsp;1&#039;
  },
&amp;nbsp;
  init: function() {
    this.setDisplay(&#039;Font&amp;amp;nbsp;Format...&#039;);
    for (var itm in this.sel) {
      var tag = itm.toUpperCase();
      this.add(&#039;&amp;lt;&#039; + tag + &#039;&amp;gt;&#039;, &#039;&amp;lt;&#039; + itm + &#039; style=&amp;quot;padding: 0px; margin: 0px;&amp;quot;&amp;gt;&#039; + this.sel[itm] + &#039;&amp;lt;/&#039; + tag + &#039;&amp;gt;&#039;);
    }
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicSelectOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicLinkOptions = {
  buttons: {
    &#039;link&#039;: {
      name: &#039;Add Link&#039;,
      type: &#039;nicLinkButton&#039;,
      tags: [&#039;A&#039;]
    },
    &#039;unlink&#039;: {
      name: &#039;Remove Link&#039;,
      command: &#039;unlink&#039;,
      noActive: true
    }
  }
};
/* END CONFIG */
&amp;nbsp;
var nicLinkButton = nicEditorAdvancedButton.extend({
  addPane: function() {
    this.ln = this.ne.selectedInstance.selElm().parentTag(&#039;A&#039;);
    this.addForm({
      &#039;&#039;: {
        type: &#039;title&#039;,
        txt: &#039;Add/Edit Link&#039;
      },
      &#039;href&#039;: {
        type: &#039;text&#039;,
        txt: &#039;URL&#039;,
        value: &#039;http://&#039;,
        style: {
          width: &#039;150px&#039;
        }
      },
      &#039;title&#039;: {
        type: &#039;text&#039;,
        txt: &#039;Title&#039;
      },
      &#039;target&#039;: {
        type: &#039;select&#039;,
        txt: &#039;Open In&#039;,
        options: {
          &#039;&#039;: &#039;Current Window&#039;,
          &#039;_blank&#039;: &#039;New Window&#039;
        },
        style: {
          width: &#039;100px&#039;
        }
      }
    }, this.ln);
  },
&amp;nbsp;
  submit: function(e) {
    var url = this.inputs[&#039;href&#039;].value;
    if (url === &amp;quot;http://&amp;quot; || url === &amp;quot;&amp;quot;) {
      alert(&amp;quot;You must enter a URL to Create a Link&amp;quot;);
      return false;
    }
    this.removePane();
&amp;nbsp;
    if (!this.ln) {
      var tmp = &#039;javascript:nicTemp();&#039;;
      this.ne.nicCommand(&amp;quot;createlink&amp;quot;, tmp);
      this.ln = this.findElm(&#039;A&#039;, &#039;href&#039;, tmp);
      // set the link text to the title or the url if there is no text selected
      if (this.ln.innerHTML == tmp) {
        this.ln.innerHTML = this.inputs[&#039;title&#039;].value || url;
      }
    }
    if (this.ln) {
      var oldTitle = this.ln.title;
      this.ln.setAttributes({
        href: this.inputs[&#039;href&#039;].value,
        title: this.inputs[&#039;title&#039;].value,
        target: this.inputs[&#039;target&#039;].options[this.inputs[&#039;target&#039;].selectedIndex].value
      });
      // set the link text to the title or the url if the old text was the old title
      if (this.ln.innerHTML == oldTitle) {
        this.ln.innerHTML = this.inputs[&#039;title&#039;].value || this.inputs[&#039;href&#039;].value;
      }
    }
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicLinkOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicColorOptions = {
  buttons: {
    &#039;forecolor&#039;: {
      name: __(&#039;Change Text Color&#039;),
      type: &#039;nicEditorColorButton&#039;,
      noClose: true
    },
    &#039;bgcolor&#039;: {
      name: __(&#039;Change Background Color&#039;),
      type: &#039;nicEditorBgColorButton&#039;,
      noClose: true
    }
  }
};
/* END CONFIG */
&amp;nbsp;
var nicEditorColorButton = nicEditorAdvancedButton.extend({
  addPane: function() {
    var colorList = {
      0: &#039;00&#039;,
      1: &#039;33&#039;,
      2: &#039;66&#039;,
      3: &#039;99&#039;,
      4: &#039;CC&#039;,
      5: &#039;FF&#039;
    };
    var colorItems = new bkElement(&#039;DIV&#039;).setStyle({
      width: &#039;270px&#039;
    });
&amp;nbsp;
    for (var r in colorList) {
      for (var b in colorList) {
        for (var g in colorList) {
          var colorCode = &#039;#&#039; + colorList[r] + colorList[g] + colorList[b];
&amp;nbsp;
          var colorSquare = new bkElement(&#039;DIV&#039;).setStyle({
            &#039;cursor&#039;: &#039;pointer&#039;,
            &#039;height&#039;: &#039;15px&#039;,
            &#039;float&#039;: &#039;left&#039;
          }).appendTo(colorItems);
          var colorBorder = new bkElement(&#039;DIV&#039;).setStyle({
            border: &#039;2px solid &#039; + colorCode
          }).appendTo(colorSquare);
          var colorInner = new bkElement(&#039;DIV&#039;).setStyle({
            backgroundColor: colorCode,
            overflow: &#039;hidden&#039;,
            width: &#039;11px&#039;,
            height: &#039;11px&#039;
          }).addEvent(&#039;click&#039;, this.colorSelect.closure(this, colorCode)).addEvent(&#039;mouseover&#039;, this.on.closure(this, colorBorder)).addEvent(&#039;mouseout&#039;, this.off.closure(this, colorBorder, colorCode)).appendTo(colorBorder);
&amp;nbsp;
          if (!window.opera) {
            colorSquare.onmousedown = colorInner.onmousedown = bkLib.cancelEvent;
          }
&amp;nbsp;
        }
      }
    }
    this.pane.append(colorItems.noSelect());
  },
&amp;nbsp;
  colorSelect: function(c) {
    this.ne.nicCommand(&#039;foreColor&#039;, c);
    this.removePane();
  },
&amp;nbsp;
  on: function(colorBorder) {
    colorBorder.setStyle({
      border: &#039;2px solid #000&#039;
    });
  },
&amp;nbsp;
  off: function(colorBorder, colorCode) {
    colorBorder.setStyle({
      border: &#039;2px solid &#039; + colorCode
    });
  }
});
&amp;nbsp;
var nicEditorBgColorButton = nicEditorColorButton.extend({
  colorSelect: function(c) {
    this.ne.nicCommand(&#039;hiliteColor&#039;, c);
    this.removePane();
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicColorOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicImageOptions = {
  buttons: {
    &#039;image&#039;: {
      name: &#039;Add Image&#039;,
      type: &#039;nicImageButton&#039;,
      tags: [&#039;IMG&#039;]
    }
  }
&amp;nbsp;
};
/* END CONFIG */
&amp;nbsp;
var nicImageButton = nicEditorAdvancedButton.extend({
  addPane: function() {
    this.im = this.ne.selectedInstance.selElm().parentTag(&#039;IMG&#039;);
    this.addForm({
      &#039;&#039;: {
        type: &#039;title&#039;,
        txt: &#039;Add/Edit Image&#039;
      },
      &#039;src&#039;: {
        type: &#039;text&#039;,
        txt: &#039;URL&#039;,
        &#039;value&#039;: &#039;http://&#039;,
        style: {
          width: &#039;150px&#039;
        }
      },
      &#039;alt&#039;: {
        type: &#039;text&#039;,
        txt: &#039;Alt Text&#039;,
        style: {
          width: &#039;100px&#039;
        }
      },
      &#039;align&#039;: {
        type: &#039;select&#039;,
        txt: &#039;Align&#039;,
        options: {
          none: &#039;Default&#039;,
          &#039;left&#039;: &#039;Left&#039;,
          &#039;right&#039;: &#039;Right&#039;
        }
      }
    }, this.im);
  },
&amp;nbsp;
  submit: function(e) {
    var src = this.inputs[&#039;src&#039;].value;
    if (src === &amp;quot;&amp;quot; || src === &amp;quot;http://&amp;quot;) {
      alert(&amp;quot;You must enter a Image URL to insert&amp;quot;);
      return false;
    }
    this.removePane();
&amp;nbsp;
    if (!this.im) {
      var tmp = &#039;javascript:nicImTemp();&#039;;
      this.ne.nicCommand(&amp;quot;insertImage&amp;quot;, tmp);
      this.im = this.findElm(&#039;IMG&#039;, &#039;src&#039;, tmp);
    }
    if (this.im) {
      this.im.setAttributes({
        src: this.inputs[&#039;src&#039;].value,
        alt: this.inputs[&#039;alt&#039;].value,
        align: this.inputs[&#039;align&#039;].value
      });
    }
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicImageOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicSaveOptions = {
  buttons: {
    &#039;save&#039;: {
      name: __(&#039;Save this content&#039;),
      type: &#039;nicEditorSaveButton&#039;
    }
  }
};
/* END CONFIG */
&amp;nbsp;
var nicEditorSaveButton = nicEditorButton.extend({
  init: function() {
    if (!this.ne.options.onSave) {
      this.margin.setStyle({
        &#039;display&#039;: &#039;none&#039;
      });
    }
  },
  mouseClick: function() {
    var onSave = this.ne.options.onSave;
    var selectedInstance = this.ne.selectedInstance;
    onSave(selectedInstance.getContent(), selectedInstance.elm.id, selectedInstance);
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicSaveOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicUploadOptions = {
  buttons: {
    &#039;upload&#039;: {
      name: &#039;Upload Image&#039;,
      type: &#039;nicUploadButton&#039;
    }
  }
&amp;nbsp;
};
/* END CONFIG */
&amp;nbsp;
var nicUploadButton = nicEditorAdvancedButton.extend({
  nicURI: &#039;http://files.nicedit.com/&#039;,
&amp;nbsp;
  addPane: function() {
    this.im = this.ne.selectedInstance.selElm().parentTag(&#039;IMG&#039;);
    this.myID = Math.round(Math.random() * Math.pow(10, 15));
    this.requestInterval = 1000;
    this.uri = this.ne.options.uploadURI || this.nicURI;
    nicUploadButton.lastPlugin = this;
&amp;nbsp;
    this.myFrame = new bkElement(&#039;iframe&#039;).setAttributes({
      width: &#039;100%&#039;,
      height: &#039;100px&#039;,
      frameBorder: 0,
      scrolling: &#039;no&#039;
    }).setStyle({
      border: 0
    }).appendTo(this.pane.pane);
    this.progressWrapper = new bkElement(&#039;div&#039;).setStyle({
      display: &#039;none&#039;,
      width: &#039;100%&#039;,
      height: &#039;20px&#039;,
      border: &#039;1px solid #ccc&#039;
    }).appendTo(this.pane.pane);
    this.progress = new bkElement(&#039;div&#039;).setStyle({
      width: &#039;0%&#039;,
      height: &#039;20px&#039;,
      backgroundColor: &#039;#ccc&#039;
    }).setContent(&#039;&amp;amp;nbsp&#039;).appendTo(this.progressWrapper);
&amp;nbsp;
    setTimeout(this.addForm.closure(this), 50);
  },
&amp;nbsp;
  addForm: function() {
    var myDoc = this.myDoc = this.myFrame.contentWindow.document;
    myDoc.open();
    myDoc.write(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);
    myDoc.write(&#039;&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;&#039; + this.uri + &#039;?id=&#039; + this.myID + &#039;&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;&#039;);
    myDoc.write(&#039;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;APC_UPLOAD_PROGRESS&amp;quot; value=&amp;quot;&#039; + this.myID + &#039;&amp;quot; /&amp;gt;&#039;);
    if (this.uri == this.nicURI) {
      myDoc.write(&#039;&amp;lt;div style=&amp;quot;position: absolute; margin-left: 160px;&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://imageshack.us/img/imageshack.png&amp;quot; width=&amp;quot;30&amp;quot; style=&amp;quot;float: left;&amp;quot; /&amp;gt;&amp;lt;div style=&amp;quot;float: left; margin-left: 5px; font-size: 10px;&amp;quot;&amp;gt;Hosted by&amp;lt;br /&amp;gt;&amp;lt;a href=&amp;quot;http://www.imageshack.us/&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;ImageShack&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;);
    }
    myDoc.write(&#039;&amp;lt;div style=&amp;quot;font-size: 14px; font-weight: bold; padding-top: 5px;&amp;quot;&amp;gt;Insert an Image&amp;lt;/div&amp;gt;&#039;);
    myDoc.write(&#039;&amp;lt;input name=&amp;quot;nicImage&amp;quot; type=&amp;quot;file&amp;quot; style=&amp;quot;margin-top: 10px;&amp;quot; /&amp;gt;&#039;);
    myDoc.write(&#039;&amp;lt;/form&amp;gt;&#039;);
    myDoc.write(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);
    myDoc.close();
&amp;nbsp;
    this.myBody = myDoc.body;
&amp;nbsp;
    this.myForm = $BK(this.myBody.getElementsByTagName(&#039;form&#039;)[0]);
    this.myInput = $BK(this.myBody.getElementsByTagName(&#039;input&#039;)[1]).addEvent(&#039;change&#039;, this.startUpload.closure(this));
    this.myStatus = new bkElement(&#039;div&#039;, this.myDoc).setStyle({
      textAlign: &#039;center&#039;,
      fontSize: &#039;14px&#039;
    }).appendTo(this.myBody);
  },
&amp;nbsp;
  startUpload: function() {
    this.myForm.setStyle({
      display: &#039;none&#039;
    });
    this.myStatus.setContent(&#039;&amp;lt;img src=&amp;quot;http://files.nicedit.com/ajax-loader.gif&amp;quot; style=&amp;quot;float: right; margin-right: 40px;&amp;quot; /&amp;gt;&amp;lt;strong&amp;gt;Uploading...&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt;Please wait&#039;);
    this.myForm.submit();
    setTimeout(this.makeRequest.closure(this), this.requestInterval);
  },
&amp;nbsp;
  makeRequest: function() {
    if (this.pane &amp;amp;&amp;amp; this.pane.pane) {
      nicUploadButton.lastPlugin = this;
      var s = new bkElement(&#039;script&#039;).setAttributes({
        type: &#039;text/javascript&#039;,
        src: this.uri + &#039;?check=&#039; + this.myID + &#039;&amp;amp;rand=&#039; + Math.round(Math.random() * Math.pow(10, 15))
      }).addEvent(&#039;load&#039;, function() {
        s.parentNode.removeChild(s);
      }).appendTo(document.getElementsByTagName(&#039;head&#039;)[0]);
      if (this.requestInterval) {
        setTimeout(this.makeRequest.closure(this), this.requestInterval);
      }
    }
  },
&amp;nbsp;
  setProgress: function(percent) {
    this.progressWrapper.setStyle({
      display: &#039;block&#039;
    });
    this.progress.setStyle({
      width: percent + &#039;%&#039;
    });
  },
&amp;nbsp;
  update: function(o) {
    if (o === false) {
      this.progressWrapper.setStyle({
        display: &#039;none&#039;
      });
    } else if (o.url) {
      this.setProgress(100);
      this.requestInterval = false;
&amp;nbsp;
      if (!this.im) {
        this.ne.selectedInstance.restoreRng();
        var tmp = &#039;javascript:nicImTemp();&#039;;
        this.ne.nicCommand(&amp;quot;insertImage&amp;quot;, tmp);
        this.im = this.findElm(&#039;IMG&#039;, &#039;src&#039;, tmp);
      }
      var w = parseInt(this.ne.selectedInstance.elm.getStyle(&#039;width&#039;), 10);
      if (this.im) {
        this.im.setAttributes({
          src: o.url,
          width: (w &amp;amp;&amp;amp; o.width) ? Math.min(w, o.width) : &#039;&#039;
        });
      }
&amp;nbsp;
      this.removePane();
    } else if (o.error) {
      this.requestInterval = false;
      this.setProgress(100);
      alert(&amp;quot;There was an error uploading your image (&amp;quot; + o.error + &amp;quot;).&amp;quot;);
      this.removePane();
    } else if (o.noprogress) {
      this.progressWrapper.setStyle({
        display: &#039;none&#039;
      });
      if (this.uri.indexOf(&#039;http:&#039;) == -1 || this.uri.indexOf(window.location.host) != -1) {
        this.requestInterval = false;
      }
    } else {
      this.setProgress(Math.round((o.current / o.total) * 75));
      if (o.interval) {
        this.requestInterval = o.interval;
      }
    }
  }
&amp;nbsp;
});
&amp;nbsp;
nicUploadButton.statusCb = function(o) {
  nicUploadButton.lastPlugin.update(o);
};
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicUploadOptions);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
var nicXHTML = bkClass.extend({
  stripAttributes: [&#039;_moz_dirty&#039;, &#039;_moz_resizing&#039;, &#039;_extended&#039;],
  noShort: [&#039;style&#039;, &#039;title&#039;, &#039;script&#039;, &#039;textarea&#039;, &#039;a&#039;],
  cssReplace: {
    &#039;font-weight:bold;&#039;: &#039;strong&#039;,
    &#039;font-style:italic;&#039;: &#039;em&#039;
  },
  sizes: {
    1: &#039;xx-small&#039;,
    2: &#039;x-small&#039;,
    3: &#039;small&#039;,
    4: &#039;medium&#039;,
    5: &#039;large&#039;,
    6: &#039;x-large&#039;
  },
&amp;nbsp;
  construct: function(nicEditor) {
    this.ne = nicEditor;
    if (this.ne.options.xhtml) {
      nicEditor.addEvent(&#039;get&#039;, this.cleanup.closure(this));
    }
  },
&amp;nbsp;
  cleanup: function(ni) {
    var node = ni.getElm();
    var xhtml = this.toXHTML(node);
    ni.content = xhtml;
  },
&amp;nbsp;
  toXHTML: function(n, r, d) {
    var txt = &#039;&#039;;
    var attrTxt = &#039;&#039;;
    var cssTxt = &#039;&#039;;
    var nType = n.nodeType;
    var nName = n.nodeName.toLowerCase();
    var nChild = n.hasChildNodes &amp;amp;&amp;amp; n.hasChildNodes();
    var extraNodes = [];
&amp;nbsp;
    switch (nType) {
    case 1:
      var nAttributes = n.attributes;
&amp;nbsp;
      switch (nName) {
      case &#039;b&#039;:
        nName = &#039;strong&#039;;
        break;
      case &#039;i&#039;:
        nName = &#039;em&#039;;
        break;
      case &#039;font&#039;:
        nName = &#039;span&#039;;
        break;
      }
&amp;nbsp;
      if (r) {
        for (var i = 0; i &amp;lt; nAttributes.length; i++) {
          var attr = nAttributes[i];
&amp;nbsp;
          var attributeName = attr.nodeName.toLowerCase();
          var attributeValue = attr.nodeValue;
&amp;nbsp;
          if (!attr.specified || !attributeValue || bkLib.inArray(this.stripAttributes, attributeName) || typeof(attributeValue) == &amp;quot;function&amp;quot;) {
            continue;
          }
&amp;nbsp;
          switch (attributeName) {
          case &#039;style&#039;:
            var css = attributeValue.replace(/ /g, &amp;quot;&amp;quot;);
            for (var itm in this.cssReplace) {
              if (css.indexOf(itm) != -1) {
                extraNodes.push(this.cssReplace[itm]);
                css = css.replace(itm, &#039;&#039;);
              }
            }
            cssTxt += css;
            attributeValue = &amp;quot;&amp;quot;;
            break;
          case &#039;class&#039;:
            attributeValue = attributeValue.replace(&amp;quot;Apple-style-span&amp;quot;, &amp;quot;&amp;quot;);
            break;
          case &#039;size&#039;:
            cssTxt += &amp;quot;font-size:&amp;quot; + this.sizes[attributeValue] + &#039;;&#039;;
            attributeValue = &amp;quot;&amp;quot;;
            break;
          }
&amp;nbsp;
          if (attributeValue) {
            attrTxt += &#039; &#039; + attributeName + &#039;=&amp;quot;&#039; + attributeValue + &#039;&amp;quot;&#039;;
          }
        }
&amp;nbsp;
        if (cssTxt) {
          attrTxt += &#039; style=&amp;quot;&#039; + cssTxt + &#039;&amp;quot;&#039;;
        }
&amp;nbsp;
        for (var j = 0; j &amp;lt; extraNodes.length; j++) {
          txt += &#039;&amp;lt;&#039; + extraNodes[j] + &#039;&amp;gt;&#039;;
        }
&amp;nbsp;
        if (attrTxt === &amp;quot;&amp;quot; &amp;amp;&amp;amp; nName == &amp;quot;span&amp;quot;) {
          r = false;
        }
        if (r) {
          txt += &#039;&amp;lt;&#039; + nName;
          if (nName != &#039;br&#039;) {
            txt += attrTxt;
          }
        }
      }
&amp;nbsp;
      if (!nChild &amp;amp;&amp;amp; !bkLib.inArray(this.noShort, attributeName)) {
        if (r) {
          txt += &#039; /&amp;gt;&#039;;
        }
      } else {
        if (r) {
          txt += &#039;&amp;gt;&#039;;
        }
&amp;nbsp;
        for (var k = 0; k &amp;lt; n.childNodes.length; k++) {
          var results = this.toXHTML(n.childNodes[k], true, true);
          if (results) {
            txt += results;
          }
        }
      }
&amp;nbsp;
      if (r &amp;amp;&amp;amp; nChild) {
        txt += &#039;&amp;lt;/&#039; + nName + &#039;&amp;gt;&#039;;
      }
&amp;nbsp;
      for (var l = 0; l &amp;lt; extraNodes.length; l++) {
        txt += &#039;&amp;lt;/&#039; + extraNodes[l] + &#039;&amp;gt;&#039;;
      }
&amp;nbsp;
      break;
    case 3:
      //if(n.nodeValue != &#039;\n&#039;) {
      txt += n.nodeValue;
      //}
      break;
    }
&amp;nbsp;
    return txt;
  }
});
nicEditors.registerPlugin(nicXHTML);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
var nicBBCode = bkClass.extend({
  construct: function(nicEditor) {
    this.ne = nicEditor;
    if (this.ne.options.bbCode) {
      nicEditor.addEvent(&#039;get&#039;, this.bbGet.closure(this));
      nicEditor.addEvent(&#039;set&#039;, this.bbSet.closure(this));
&amp;nbsp;
      var loadedPlugins = this.ne.loadedPlugins;
      for (var itm in loadedPlugins) {
        if (loadedPlugins[itm].toXHTML) {
          this.xhtml = loadedPlugins[itm];
        }
      }
    }
  },
&amp;nbsp;
  bbGet: function(ni) {
    var xhtml = this.xhtml.toXHTML(ni.getElm());
    ni.content = this.toBBCode(xhtml);
  },
&amp;nbsp;
  bbSet: function(ni) {
    ni.content = this.fromBBCode(ni.content);
  },
&amp;nbsp;
  toBBCode: function(xhtml) {
    function rp(r, m) {
      xhtml = xhtml.replace(r, m);
    }
&amp;nbsp;
    rp(/\n/gi, &amp;quot;&amp;quot;);
    rp(/&amp;lt;strong&amp;gt;(.*?)&amp;lt;\/strong&amp;gt;/gi, &amp;quot;[b]$1[/b]&amp;quot;);
    rp(/&amp;lt;em&amp;gt;(.*?)&amp;lt;\/em&amp;gt;/gi, &amp;quot;[i]$1[/i]&amp;quot;);
    rp(/&amp;lt;span.*?style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;(.*?)&amp;lt;\/span&amp;gt;/gi, &amp;quot;[u]$1[/u]&amp;quot;);
    rp(/&amp;lt;ul&amp;gt;(.*?)&amp;lt;\/ul&amp;gt;/gi, &amp;quot;[list]$1[/list]&amp;quot;);
    rp(/&amp;lt;li&amp;gt;(.*?)&amp;lt;\/li&amp;gt;/gi, &amp;quot;[*]$1[/*]&amp;quot;);
    rp(/&amp;lt;ol&amp;gt;(.*?)&amp;lt;\/ol&amp;gt;/gi, &amp;quot;[list=1]$1[/list]&amp;quot;);
    rp(/&amp;lt;img.*?src=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;/gi, &amp;quot;[img]$1[/img]&amp;quot;);
    rp(/&amp;lt;a.*?href=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;(.*?)&amp;lt;\/a&amp;gt;/gi, &amp;quot;[url=$1]$2[/url]&amp;quot;);
    rp(/&amp;lt;br.*?&amp;gt;/gi, &amp;quot;\n&amp;quot;);
    rp(/&amp;lt;.*?&amp;gt;.*?&amp;lt;\/.*?&amp;gt;/gi, &amp;quot;&amp;quot;);
&amp;nbsp;
    return xhtml;
  },
&amp;nbsp;
  fromBBCode: function(bbCode) {
    function rp(r, m) {
      bbCode = bbCode.replace(r, m);
    }
&amp;nbsp;
    rp(/\[b\](.*?)\[\/b\]/gi, &amp;quot;&amp;lt;strong&amp;gt;$1&amp;lt;/strong&amp;gt;&amp;quot;);
    rp(/\[i\](.*?)\[\/i\]/gi, &amp;quot;&amp;lt;em&amp;gt;$1&amp;lt;/em&amp;gt;&amp;quot;);
    rp(/\[u\](.*?)\[\/u\]/gi, &amp;quot;&amp;lt;span style=\&amp;quot;text-decoration:underline;\&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt;&amp;quot;);
    rp(/\[list\](.*?)\[\/list\]/gi, &amp;quot;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&amp;quot;);
    rp(/\[list=1\](.*?)\[\/list\]/gi, &amp;quot;&amp;lt;ol&amp;gt;$1&amp;lt;/ol&amp;gt;&amp;quot;);
    rp(/\[\*\](.*?)\[\/\*\]/gi, &amp;quot;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&amp;quot;);
    rp(/\[img\](.*?)\[\/img\]/gi, &amp;quot;&amp;lt;img src=\&amp;quot;$1\&amp;quot; /&amp;gt;&amp;quot;);
    rp(/\[url=(.*?)\](.*?)\[\/url\]/gi, &amp;quot;&amp;lt;a href=\&amp;quot;$1\&amp;quot;&amp;gt;$2&amp;lt;/a&amp;gt;&amp;quot;);
    rp(/\n/gi, &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);
    //rp(/\[.*?\](.*?)\[\/.*?\]/gi,&amp;quot;$1&amp;quot;);
&amp;nbsp;
    return bbCode;
  }
&amp;nbsp;
&amp;nbsp;
});
nicEditors.registerPlugin(nicBBCode);
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
nicEditor = nicEditor.extend({
  floatingPanel: function() {
    this.floating = new bkElement(&#039;DIV&#039;).setStyle({
      position: &#039;absolute&#039;,
      top: &#039;-1000px&#039;
    }).appendTo(document.body);
    this.addEvent(&#039;focus&#039;, this.reposition.closure(this)).addEvent(&#039;blur&#039;, this.hide.closure(this));
    this.setPanel(this.floating);
  },
&amp;nbsp;
  reposition: function() {
    var e = this.selectedInstance.e;
    this.floating.setStyle({
      width: (parseInt(e.getStyle(&#039;width&#039;), 10) || e.clientWidth) + &#039;px&#039;
    });
    var top = e.offsetTop - this.floating.offsetHeight;
    if (top &amp;lt; 0) {
      top = e.offsetTop + e.offsetHeight;
    }
&amp;nbsp;
    this.floating.setStyle({
      top: top + &#039;px&#039;,
      left: e.offsetLeft + &#039;px&#039;,
      display: &#039;block&#039;
    });
  },
&amp;nbsp;
  hide: function() {
    this.floating.setStyle({
      top: &#039;-1000px&#039;
    });
  }
});
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
/* START CONFIG */
var nicCodeOptions = {
  buttons: {
    &#039;xhtml&#039;: {
      name: &#039;Edit HTML&#039;,
      type: &#039;nicCodeButton&#039;
    }
  }
&amp;nbsp;
};
/* END CONFIG */
&amp;nbsp;
var nicCodeButton = nicEditorAdvancedButton.extend({
  width: &#039;350px&#039;,
&amp;nbsp;
  addPane: function() {
    this.addForm({
      &#039;&#039;: {
        type: &#039;title&#039;,
        txt: &#039;Edit HTML&#039;
      },
      &#039;code&#039;: {
        type: &#039;content&#039;,
        &#039;value&#039;: this.ne.selectedInstance.getContent(),
        style: {
          width: &#039;340px&#039;,
          height: &#039;200px&#039;
        }
      }
    });
  },
&amp;nbsp;
  submit: function(e) {
    var code = this.inputs[&#039;code&#039;].value;
    this.ne.selectedInstance.setContent(code);
    this.removePane();
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin, nicCodeOptions);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:42:45 +0000</pubDate>
        </item>
        <item>
            <title>nicedit_nicedit_latest_js</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_latest_js&amp;rev=1767790377</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nicedit-latestjs&quot;&gt;nicEdit-latest.js&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://js.nicedit.com/nicEdit-latest.js&quot; class=&quot;urlextern&quot; title=&quot;https://js.nicedit.com/nicEdit-latest.js&quot; rel=&quot;ugc nofollow&quot;&gt;https://js.nicedit.com/nicEdit-latest.js&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_latest_js&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;nicEdit-latest.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;/* NicEdit - Micro Inline WYSIWYG
 * Copyright 2007-2008 Brian Kirchoff
 *
 * NicEdit is distributed under the terms of the MIT license
 * For more information visit http://nicedit.com/
 * Do not remove this copyright message
 */
var bkExtend=function(){var A=arguments;if(A.length==1){A=[this,A[0]]}for(var B in A[1]){A[0][B]=A[1][B]}return A[0]};function bkClass(){}bkClass.prototype.construct=function(){};bkClass.extend=function(C){var A=function(){if(arguments[0]!==bkClass){return this.construct.apply(this,arguments)}};var B=new this(bkClass);bkExtend(B,C);A.prototype=B;A.extend=this.extend;return A};var bkElement=bkClass.extend({construct:function(B,A){if(typeof (B)==&amp;quot;string&amp;quot;){B=(A||document).createElement(B)}B=$BK(B);return B},appendTo:function(A){A.appendChild(this);return this},appendBefore:function(A){A.parentNode.insertBefore(this,A);return this},addEvent:function(B,A){bkLib.addEvent(this,B,A);return this},setContent:function(A){this.innerHTML=A;return this},pos:function(){var C=curtop=0;var B=obj=this;if(obj.offsetParent){do{C+=obj.offsetLeft;curtop+=obj.offsetTop}while(obj=obj.offsetParent)}var A=(!window.opera)?parseInt(this.getStyle(&amp;quot;border-width&amp;quot;)||this.style.border)||0:0;return[C+A,curtop+A+this.offsetHeight]},noSelect:function(){bkLib.noSelect(this);return this},parentTag:function(A){var B=this;do{if(B&amp;amp;&amp;amp;B.nodeName&amp;amp;&amp;amp;B.nodeName.toUpperCase()==A){return B}B=B.parentNode}while(B);return false},hasClass:function(A){return this.className.match(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+A+&amp;quot;(\\s|$)&amp;quot;))},addClass:function(A){if(!this.hasClass(A)){this.className+=&amp;quot; nicEdit-&amp;quot;+A}return this},removeClass:function(A){if(this.hasClass(A)){this.className=this.className.replace(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+A+&amp;quot;(\\s|$)&amp;quot;),&amp;quot; &amp;quot;)}return this},setStyle:function(A){var B=this.style;for(var C in A){switch(C){case&amp;quot;float&amp;quot;:B.cssFloat=B.styleFloat=A[C];break;case&amp;quot;opacity&amp;quot;:B.opacity=A[C];B.filter=&amp;quot;alpha(opacity=&amp;quot;+Math.round(A[C]*100)+&amp;quot;)&amp;quot;;break;case&amp;quot;className&amp;quot;:this.className=A[C];break;default:B[C]=A[C]}}return this},getStyle:function(A,C){var B=(!C)?document.defaultView:C;if(this.nodeType==1){return(B&amp;amp;&amp;amp;B.getComputedStyle)?B.getComputedStyle(this,null).getPropertyValue(A):this.currentStyle[bkLib.camelize(A)]}},remove:function(){this.parentNode.removeChild(this);return this},setAttributes:function(A){for(var B in A){this[B]=A[B]}return this}});var bkLib={isMSIE:(navigator.appVersion.indexOf(&amp;quot;MSIE&amp;quot;)!=-1),addEvent:function(C,B,A){(C.addEventListener)?C.addEventListener(B,A,false):C.attachEvent(&amp;quot;on&amp;quot;+B,A)},toArray:function(C){var B=C.length,A=new Array(B);while(B--){A[B]=C[B]}return A},noSelect:function(B){if(B.setAttribute&amp;amp;&amp;amp;B.nodeName.toLowerCase()!=&amp;quot;input&amp;quot;&amp;amp;&amp;amp;B.nodeName.toLowerCase()!=&amp;quot;textarea&amp;quot;){B.setAttribute(&amp;quot;unselectable&amp;quot;,&amp;quot;on&amp;quot;)}for(var A=0;A&amp;lt;B.childNodes.length;A++){bkLib.noSelect(B.childNodes[A])}},camelize:function(A){return A.replace(/\-(.)/g,function(B,C){return C.toUpperCase()})},inArray:function(A,B){return(bkLib.search(A,B)!=null)},search:function(A,C){for(var B=0;B&amp;lt;A.length;B++){if(A[B]==C){return B}}return null},cancelEvent:function(A){A=A||window.event;if(A.preventDefault&amp;amp;&amp;amp;A.stopPropagation){A.preventDefault();A.stopPropagation()}return false},domLoad:[],domLoaded:function(){if(arguments.callee.done){return }arguments.callee.done=true;for(i=0;i&amp;lt;bkLib.domLoad.length;i++){bkLib.domLoad[i]()}},onDomLoaded:function(A){this.domLoad.push(A);if(document.addEventListener){document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;,bkLib.domLoaded,null)}else{if(bkLib.isMSIE){document.write(&amp;quot;&amp;lt;style&amp;gt;.nicEdit-main p { margin: 0; }&amp;lt;/style&amp;gt;&amp;lt;script id=__ie_onload defer &amp;quot;+((location.protocol==&amp;quot;https:&amp;quot;)?&amp;quot;src=&#039;javascript:void(0)&#039;&amp;quot;:&amp;quot;src=//0&amp;quot;)+&amp;quot;&amp;gt;&amp;lt;\/script&amp;gt;&amp;quot;);$BK(&amp;quot;__ie_onload&amp;quot;).onreadystatechange=function(){if(this.readyState==&amp;quot;complete&amp;quot;){bkLib.domLoaded()}}}}window.onload=bkLib.domLoaded}};function $BK(A){if(typeof (A)==&amp;quot;string&amp;quot;){A=document.getElementById(A)}return(A&amp;amp;&amp;amp;!A.appendTo)?bkExtend(A,bkElement.prototype):A}var bkEvent={addEvent:function(A,B){if(B){this.eventList=this.eventList||{};this.eventList[A]=this.eventList[A]||[];this.eventList[A].push(B)}return this},fireEvent:function(){var A=bkLib.toArray(arguments),C=A.shift();if(this.eventList&amp;amp;&amp;amp;this.eventList[C]){for(var B=0;B&amp;lt;this.eventList[C].length;B++){this.eventList[C][B].apply(this,A)}}}};function __(A){return A}Function.prototype.closure=function(){var A=this,B=bkLib.toArray(arguments),C=B.shift();return function(){if(typeof (bkLib)!=&amp;quot;undefined&amp;quot;){return A.apply(C,B.concat(bkLib.toArray(arguments)))}}};Function.prototype.closureListener=function(){var A=this,C=bkLib.toArray(arguments),B=C.shift();return function(E){E=E||window.event;if(E.target){var D=E.target}else{var D=E.srcElement}return A.apply(B,[E,D].concat(C))}};
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
var nicEditorConfig = bkClass.extend({
	buttons : {
		&#039;bold&#039; : {name : __(&#039;Click to Bold&#039;), command : &#039;Bold&#039;, tags : [&#039;B&#039;,&#039;STRONG&#039;], css : {&#039;font-weight&#039; : &#039;bold&#039;}, key : &#039;b&#039;},
		&#039;italic&#039; : {name : __(&#039;Click to Italic&#039;), command : &#039;Italic&#039;, tags : [&#039;EM&#039;,&#039;I&#039;], css : {&#039;font-style&#039; : &#039;italic&#039;}, key : &#039;i&#039;},
		&#039;underline&#039; : {name : __(&#039;Click to Underline&#039;), command : &#039;Underline&#039;, tags : [&#039;U&#039;], css : {&#039;text-decoration&#039; : &#039;underline&#039;}, key : &#039;u&#039;},
		&#039;left&#039; : {name : __(&#039;Left Align&#039;), command : &#039;justifyleft&#039;, noActive : true},
		&#039;center&#039; : {name : __(&#039;Center Align&#039;), command : &#039;justifycenter&#039;, noActive : true},
		&#039;right&#039; : {name : __(&#039;Right Align&#039;), command : &#039;justifyright&#039;, noActive : true},
		&#039;justify&#039; : {name : __(&#039;Justify Align&#039;), command : &#039;justifyfull&#039;, noActive : true},
		&#039;ol&#039; : {name : __(&#039;Insert Ordered List&#039;), command : &#039;insertorderedlist&#039;, tags : [&#039;OL&#039;]},
		&#039;ul&#039; : 	{name : __(&#039;Insert Unordered List&#039;), command : &#039;insertunorderedlist&#039;, tags : [&#039;UL&#039;]},
		&#039;subscript&#039; : {name : __(&#039;Click to Subscript&#039;), command : &#039;subscript&#039;, tags : [&#039;SUB&#039;]},
		&#039;superscript&#039; : {name : __(&#039;Click to Superscript&#039;), command : &#039;superscript&#039;, tags : [&#039;SUP&#039;]},
		&#039;strikethrough&#039; : {name : __(&#039;Click to Strike Through&#039;), command : &#039;strikeThrough&#039;, css : {&#039;text-decoration&#039; : &#039;line-through&#039;}},
		&#039;removeformat&#039; : {name : __(&#039;Remove Formatting&#039;), command : &#039;removeformat&#039;, noActive : true},
		&#039;indent&#039; : {name : __(&#039;Indent Text&#039;), command : &#039;indent&#039;, noActive : true},
		&#039;outdent&#039; : {name : __(&#039;Remove Indent&#039;), command : &#039;outdent&#039;, noActive : true},
		&#039;hr&#039; : {name : __(&#039;Horizontal Rule&#039;), command : &#039;insertHorizontalRule&#039;, noActive : true}
	},
	iconsPath : &#039;http://js.nicedit.com/nicEditIcons-latest.gif&#039;,
	buttonList : [&#039;save&#039;,&#039;bold&#039;,&#039;italic&#039;,&#039;underline&#039;,&#039;left&#039;,&#039;center&#039;,&#039;right&#039;,&#039;justify&#039;,&#039;ol&#039;,&#039;ul&#039;,&#039;fontSize&#039;,&#039;fontFamily&#039;,&#039;fontFormat&#039;,&#039;indent&#039;,&#039;outdent&#039;,&#039;image&#039;,&#039;upload&#039;,&#039;link&#039;,&#039;unlink&#039;,&#039;forecolor&#039;,&#039;bgcolor&#039;],
	iconList : {&amp;quot;xhtml&amp;quot;:1,&amp;quot;bgcolor&amp;quot;:2,&amp;quot;forecolor&amp;quot;:3,&amp;quot;bold&amp;quot;:4,&amp;quot;center&amp;quot;:5,&amp;quot;hr&amp;quot;:6,&amp;quot;indent&amp;quot;:7,&amp;quot;italic&amp;quot;:8,&amp;quot;justify&amp;quot;:9,&amp;quot;left&amp;quot;:10,&amp;quot;ol&amp;quot;:11,&amp;quot;outdent&amp;quot;:12,&amp;quot;removeformat&amp;quot;:13,&amp;quot;right&amp;quot;:14,&amp;quot;save&amp;quot;:25,&amp;quot;strikethrough&amp;quot;:16,&amp;quot;subscript&amp;quot;:17,&amp;quot;superscript&amp;quot;:18,&amp;quot;ul&amp;quot;:19,&amp;quot;underline&amp;quot;:20,&amp;quot;image&amp;quot;:21,&amp;quot;link&amp;quot;:22,&amp;quot;unlink&amp;quot;:23,&amp;quot;close&amp;quot;:24,&amp;quot;arrow&amp;quot;:26,&amp;quot;upload&amp;quot;:27}
&amp;nbsp;
});
;
var nicEditors={nicPlugins:[],editors:[],registerPlugin:function(B,A){this.nicPlugins.push({p:B,o:A})},allTextAreas:function(C){var A=document.getElementsByTagName(&amp;quot;textarea&amp;quot;);for(var B=0;B&amp;lt;A.length;B++){nicEditors.editors.push(new nicEditor(C).panelInstance(A[B]))}return nicEditors.editors},findEditor:function(C){var B=nicEditors.editors;for(var A=0;A&amp;lt;B.length;A++){if(B[A].instanceById(C)){return B[A].instanceById(C)}}}};var nicEditor=bkClass.extend({construct:function(C){this.options=new nicEditorConfig();bkExtend(this.options,C);this.nicInstances=new Array();this.loadedPlugins=new Array();var A=nicEditors.nicPlugins;for(var B=0;B&amp;lt;A.length;B++){this.loadedPlugins.push(new A[B].p(this,A[B].o))}nicEditors.editors.push(this);bkLib.addEvent(document.body,&amp;quot;mousedown&amp;quot;,this.selectCheck.closureListener(this))},panelInstance:function(B,C){B=this.checkReplace($BK(B));var A=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:(parseInt(B.getStyle(&amp;quot;width&amp;quot;))||B.clientWidth)+&amp;quot;px&amp;quot;}).appendBefore(B);this.setPanel(A);return this.addInstance(B,C)},checkReplace:function(B){var A=nicEditors.findEditor(B);if(A){A.removeInstance(B);A.removePanel()}return B},addInstance:function(B,C){B=this.checkReplace($BK(B));if(B.contentEditable||!!window.opera){var A=new nicEditorInstance(B,C,this)}else{var A=new nicEditorIFrameInstance(B,C,this)}this.nicInstances.push(A);return this},removeInstance:function(C){C=$BK(C);var B=this.nicInstances;for(var A=0;A&amp;lt;B.length;A++){if(B[A].e==C){B[A].remove();this.nicInstances.splice(A,1)}}},removePanel:function(A){if(this.nicPanel){this.nicPanel.remove();this.nicPanel=null}},instanceById:function(C){C=$BK(C);var B=this.nicInstances;for(var A=0;A&amp;lt;B.length;A++){if(B[A].e==C){return B[A]}}},setPanel:function(A){this.nicPanel=new nicEditorPanel($BK(A),this.options,this);this.fireEvent(&amp;quot;panel&amp;quot;,this.nicPanel);return this},nicCommand:function(B,A){if(this.selectedInstance){this.selectedInstance.nicCommand(B,A)}},getIcon:function(D,A){var C=this.options.iconList[D];var B=(A.iconFiles)?A.iconFiles[D]:&amp;quot;&amp;quot;;return{backgroundImage:&amp;quot;url(&#039;&amp;quot;+((C)?this.options.iconsPath:B)+&amp;quot;&#039;)&amp;quot;,backgroundPosition:((C)?((C-1)*-18):0)+&amp;quot;px 0px&amp;quot;}},selectCheck:function(C,A){var B=false;do{if(A.className&amp;amp;&amp;amp;A.className.indexOf(&amp;quot;nicEdit&amp;quot;)!=-1){return false}}while(A=A.parentNode);this.fireEvent(&amp;quot;blur&amp;quot;,this.selectedInstance,A);this.lastSelectedInstance=this.selectedInstance;this.selectedInstance=null;return false}});nicEditor=nicEditor.extend(bkEvent);
var nicEditorInstance=bkClass.extend({isSelected:false,construct:function(G,D,C){this.ne=C;this.elm=this.e=G;this.options=D||{};newX=parseInt(G.getStyle(&amp;quot;width&amp;quot;))||G.clientWidth;newY=parseInt(G.getStyle(&amp;quot;height&amp;quot;))||G.clientHeight;this.initialHeight=newY-8;var H=(G.nodeName.toLowerCase()==&amp;quot;textarea&amp;quot;);if(H||this.options.hasPanel){var B=(bkLib.isMSIE&amp;amp;&amp;amp;!((typeof document.body.style.maxHeight!=&amp;quot;undefined&amp;quot;)&amp;amp;&amp;amp;document.compatMode==&amp;quot;CSS1Compat&amp;quot;));var E={width:newX+&amp;quot;px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,borderTop:0,overflowY:&amp;quot;auto&amp;quot;,overflowX:&amp;quot;hidden&amp;quot;};E[(B)?&amp;quot;height&amp;quot;:&amp;quot;maxHeight&amp;quot;]=(this.ne.options.maxHeight)?this.ne.options.maxHeight+&amp;quot;px&amp;quot;:null;this.editorContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle(E).appendBefore(G);var A=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:(newX-8)+&amp;quot;px&amp;quot;,margin:&amp;quot;4px&amp;quot;,minHeight:newY+&amp;quot;px&amp;quot;}).addClass(&amp;quot;main&amp;quot;).appendTo(this.editorContain);G.setStyle({display:&amp;quot;none&amp;quot;});A.innerHTML=G.innerHTML;if(H){A.setContent(G.value);this.copyElm=G;var F=G.parentTag(&amp;quot;FORM&amp;quot;);if(F){bkLib.addEvent(F,&amp;quot;submit&amp;quot;,this.saveContent.closure(this))}}A.setStyle((B)?{height:newY+&amp;quot;px&amp;quot;}:{overflow:&amp;quot;hidden&amp;quot;});this.elm=A}this.ne.addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this));this.init();this.blur()},init:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;true&amp;quot;);if(this.getContent()==&amp;quot;&amp;quot;){this.setContent(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;)}this.instanceDoc=document.defaultView;this.elm.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keypress&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;focus&amp;quot;,this.selected.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this));this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},remove:function(){this.saveContent();if(this.copyElm||this.options.hasPanel){this.editorContain.remove();this.e.setStyle({display:&amp;quot;block&amp;quot;});this.ne.removePanel()}this.disable();this.ne.fireEvent(&amp;quot;remove&amp;quot;,this)},disable:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;false&amp;quot;)},getSel:function(){return(window.getSelection)?window.getSelection():document.selection},getRng:function(){var A=this.getSel();if(!A||A.rangeCount===0){return }return(A.rangeCount&amp;gt;0)?A.getRangeAt(0):A.createRange()},selRng:function(A,B){if(window.getSelection){B.removeAllRanges();B.addRange(A)}else{A.select()}},selElm:function(){var C=this.getRng();if(!C){return }if(C.startContainer){var D=C.startContainer;if(C.cloneContents().childNodes.length==1){for(var B=0;B&amp;lt;D.childNodes.length;B++){var A=D.childNodes[B].ownerDocument.createRange();A.selectNode(D.childNodes[B]);if(C.compareBoundaryPoints(Range.START_TO_START,A)!=1&amp;amp;&amp;amp;C.compareBoundaryPoints(Range.END_TO_END,A)!=-1){return $BK(D.childNodes[B])}}}return $BK(D)}else{return $BK((this.getSel().type==&amp;quot;Control&amp;quot;)?C.item(0):C.parentElement())}},saveRng:function(){this.savedRange=this.getRng();this.savedSel=this.getSel()},restoreRng:function(){if(this.savedRange){this.selRng(this.savedRange,this.savedSel)}},keyDown:function(B,A){if(B.ctrlKey){this.ne.fireEvent(&amp;quot;key&amp;quot;,this,B)}},selected:function(C,A){if(!A&amp;amp;&amp;amp;!(A=this.selElm)){A=this.selElm()}if(!C.ctrlKey){var B=this.ne.selectedInstance;if(B!=this){if(B){this.ne.fireEvent(&amp;quot;blur&amp;quot;,B,A)}this.ne.selectedInstance=this;this.ne.fireEvent(&amp;quot;focus&amp;quot;,B,A)}this.ne.fireEvent(&amp;quot;selected&amp;quot;,B,A);this.isFocused=true;this.elm.addClass(&amp;quot;selected&amp;quot;)}return false},blur:function(){this.isFocused=false;this.elm.removeClass(&amp;quot;selected&amp;quot;)},saveContent:function(){if(this.copyElm||this.options.hasPanel){this.ne.fireEvent(&amp;quot;save&amp;quot;,this);(this.copyElm)?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent()}},getElm:function(){return this.elm},getContent:function(){this.content=this.getElm().innerHTML;this.ne.fireEvent(&amp;quot;get&amp;quot;,this);return this.content},setContent:function(A){this.content=A;this.ne.fireEvent(&amp;quot;set&amp;quot;,this);this.elm.innerHTML=this.content},nicCommand:function(B,A){document.execCommand(B,false,A)}});
var nicEditorIFrameInstance=nicEditorInstance.extend({savedStyles:[],init:function(){var B=this.elm.innerHTML.replace(/^\s+|\s+$/g,&amp;quot;&amp;quot;);this.elm.innerHTML=&amp;quot;&amp;quot;;(!B)?B=&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;:B;this.initialContent=B;this.elmFrame=new bkElement(&amp;quot;iframe&amp;quot;).setAttributes({src:&amp;quot;javascript:;&amp;quot;,frameBorder:0,allowTransparency:&amp;quot;true&amp;quot;,scrolling:&amp;quot;no&amp;quot;}).setStyle({height:&amp;quot;100px&amp;quot;,width:&amp;quot;100%&amp;quot;}).addClass(&amp;quot;frame&amp;quot;).appendTo(this.elm);if(this.copyElm){this.elmFrame.setStyle({width:(this.elm.offsetWidth-4)+&amp;quot;px&amp;quot;})}var A=[&amp;quot;font-size&amp;quot;,&amp;quot;font-family&amp;quot;,&amp;quot;font-weight&amp;quot;,&amp;quot;color&amp;quot;];for(itm in A){this.savedStyles[bkLib.camelize(itm)]=this.elm.getStyle(itm)}setTimeout(this.initFrame.closure(this),50)},disable:function(){this.elm.innerHTML=this.getContent()},initFrame:function(){var B=$BK(this.elmFrame.contentWindow.document);B.designMode=&amp;quot;on&amp;quot;;B.open();var A=this.ne.options.externalCSS;B.write(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;quot;+((A)?&#039;&amp;lt;link href=&amp;quot;&#039;+A+&#039;&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&#039;:&amp;quot;&amp;quot;)+&#039;&amp;lt;/head&amp;gt;&amp;lt;body id=&amp;quot;nicEditContent&amp;quot; style=&amp;quot;margin: 0 !important; background-color: transparent !important;&amp;quot;&amp;gt;&#039;+this.initialContent+&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);B.close();this.frameDoc=B;this.frameWin=$BK(this.elmFrame.contentWindow);this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles);this.instanceDoc=this.frameWin.document.defaultView;this.heightUpdate();this.frameDoc.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.heightUpdate.closureListener(this)).addEvent(&amp;quot;keydown&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this));this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},getElm:function(){return this.frameContent},setContent:function(A){this.content=A;this.ne.fireEvent(&amp;quot;set&amp;quot;,this);this.frameContent.innerHTML=this.content;this.heightUpdate()},getSel:function(){return(this.frameWin)?this.frameWin.getSelection():this.frameDoc.selection},heightUpdate:function(){this.elmFrame.style.height=Math.max(this.frameContent.offsetHeight,this.initialHeight)+&amp;quot;px&amp;quot;},nicCommand:function(B,A){this.frameDoc.execCommand(B,false,A);setTimeout(this.heightUpdate.closure(this),100)}});
var nicEditorPanel=bkClass.extend({construct:function(E,B,A){this.elm=E;this.options=B;this.ne=A;this.panelButtons=new Array();this.buttonList=bkExtend([],this.ne.options.buttonList);this.panelContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;100%&amp;quot;,border:&amp;quot;1px solid #cccccc&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}).addClass(&amp;quot;panelContain&amp;quot;);this.panelElm=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({margin:&amp;quot;2px&amp;quot;,marginTop:&amp;quot;0px&amp;quot;,zoom:1,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;panel&amp;quot;).appendTo(this.panelContain);this.panelContain.appendTo(E);var C=this.ne.options;var D=C.buttons;for(button in D){this.addButton(button,C,true)}this.reorder();E.noSelect()},addButton:function(buttonName,options,noOrder){var button=options.buttons[buttonName];var type=(button.type)?eval(&amp;quot;(typeof(&amp;quot;+button.type+&#039;) == &amp;quot;undefined&amp;quot;) ? null : &#039;+button.type+&amp;quot;;&amp;quot;):nicEditorButton;var hasButton=bkLib.inArray(this.buttonList,buttonName);if(type&amp;amp;&amp;amp;(hasButton||this.ne.options.fullPanel)){this.panelButtons.push(new type(this.panelElm,buttonName,options,this.ne));if(!hasButton){this.buttonList.push(buttonName)}}},findButton:function(B){for(var A=0;A&amp;lt;this.panelButtons.length;A++){if(this.panelButtons[A].name==B){return this.panelButtons[A]}}},reorder:function(){var C=this.buttonList;for(var B=0;B&amp;lt;C.length;B++){var A=this.findButton(C[B]);if(A){this.panelElm.appendChild(A.margin)}}},remove:function(){this.elm.remove()}});
var nicEditorButton=bkClass.extend({construct:function(D,A,C,B){this.options=C.buttons[A];this.name=A;this.ne=B;this.elm=D;this.margin=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,marginTop:&amp;quot;2px&amp;quot;}).appendTo(D);this.contain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;20px&amp;quot;,height:&amp;quot;20px&amp;quot;}).addClass(&amp;quot;buttonContain&amp;quot;).appendTo(this.margin);this.border=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #efefef&amp;quot;}).appendTo(this.contain);this.button=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;18px&amp;quot;,height:&amp;quot;18px&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,zoom:1,cursor:&amp;quot;pointer&amp;quot;}).addClass(&amp;quot;button&amp;quot;).setStyle(this.ne.getIcon(A,C)).appendTo(this.border);this.button.addEvent(&amp;quot;mouseover&amp;quot;,this.hoverOn.closure(this)).addEvent(&amp;quot;mouseout&amp;quot;,this.hoverOff.closure(this)).addEvent(&amp;quot;mousedown&amp;quot;,this.mouseClick.closure(this)).noSelect();if(!window.opera){this.button.onmousedown=this.button.onclick=bkLib.cancelEvent}B.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this)).addEvent(&amp;quot;key&amp;quot;,this.key.closure(this));this.disable();this.init()},init:function(){},hide:function(){this.contain.setStyle({display:&amp;quot;none&amp;quot;})},updateState:function(){if(this.isDisabled){this.setBg()}else{if(this.isHover){this.setBg(&amp;quot;hover&amp;quot;)}else{if(this.isActive){this.setBg(&amp;quot;active&amp;quot;)}else{this.setBg()}}}},setBg:function(A){switch(A){case&amp;quot;hover&amp;quot;:var B={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ddd&amp;quot;};break;case&amp;quot;active&amp;quot;:var B={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ccc&amp;quot;};break;default:var B={border:&amp;quot;1px solid #efefef&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}}this.border.setStyle(B).addClass(&amp;quot;button-&amp;quot;+A)},checkNodes:function(A){var B=A;do{if(this.options.tags&amp;amp;&amp;amp;bkLib.inArray(this.options.tags,B.nodeName)){this.activate();return true}}while(B=B.parentNode&amp;amp;&amp;amp;B.className!=&amp;quot;nicEdit&amp;quot;);B=$BK(A);while(B.nodeType==3){B=$BK(B.parentNode)}if(this.options.css){for(itm in this.options.css){if(B.getStyle(itm,this.ne.selectedInstance.instanceDoc)==this.options.css[itm]){this.activate();return true}}}this.deactivate();return false},activate:function(){if(!this.isDisabled){this.isActive=true;this.updateState();this.ne.fireEvent(&amp;quot;buttonActivate&amp;quot;,this)}},deactivate:function(){this.isActive=false;this.updateState();if(!this.isDisabled){this.ne.fireEvent(&amp;quot;buttonDeactivate&amp;quot;,this)}},enable:function(A,B){this.isDisabled=false;this.contain.setStyle({opacity:1}).addClass(&amp;quot;buttonEnabled&amp;quot;);this.updateState();this.checkNodes(B)},disable:function(A,B){this.isDisabled=true;this.contain.setStyle({opacity:0.6}).removeClass(&amp;quot;buttonEnabled&amp;quot;);this.updateState()},toggleActive:function(){(this.isActive)?this.deactivate():this.activate()},hoverOn:function(){if(!this.isDisabled){this.isHover=true;this.updateState();this.ne.fireEvent(&amp;quot;buttonOver&amp;quot;,this)}},hoverOff:function(){this.isHover=false;this.updateState();this.ne.fireEvent(&amp;quot;buttonOut&amp;quot;,this)},mouseClick:function(){if(this.options.command){this.ne.nicCommand(this.options.command,this.options.commandArgs);if(!this.options.noActive){this.toggleActive()}}this.ne.fireEvent(&amp;quot;buttonClick&amp;quot;,this)},key:function(A,B){if(this.options.key&amp;amp;&amp;amp;B.ctrlKey&amp;amp;&amp;amp;String.fromCharCode(B.keyCode||B.charCode).toLowerCase()==this.options.key){this.mouseClick();if(B.preventDefault){B.preventDefault()}}}});
var nicPlugin=bkClass.extend({construct:function(B,A){this.options=A;this.ne=B;this.ne.addEvent(&amp;quot;panel&amp;quot;,this.loadPanel.closure(this));this.init()},loadPanel:function(C){var B=this.options.buttons;for(var A in B){C.addButton(A,this.options)}C.reorder()},init:function(){}});
&amp;nbsp;
&amp;nbsp;
var nicPaneOptions = { };
&amp;nbsp;
var nicEditorPane=bkClass.extend({construct:function(D,C,B,A){this.ne=C;this.elm=D;this.pos=D.pos();this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({zIndex:&amp;quot;99999&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,position:&amp;quot;absolute&amp;quot;,left:this.pos[0]+&amp;quot;px&amp;quot;,top:this.pos[1]+&amp;quot;px&amp;quot;});this.pane=new bkElement(&amp;quot;div&amp;quot;).setStyle({fontSize:&amp;quot;12px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,padding:&amp;quot;4px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,backgroundColor:&amp;quot;#ffffc9&amp;quot;}).addClass(&amp;quot;pane&amp;quot;).setStyle(B).appendTo(this.contain);if(A&amp;amp;&amp;amp;!A.options.noClose){this.close=new bkElement(&amp;quot;div&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;right&amp;quot;,height:&amp;quot;16px&amp;quot;,width:&amp;quot;16px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;}).setStyle(this.ne.getIcon(&amp;quot;close&amp;quot;,nicPaneOptions)).addEvent(&amp;quot;mousedown&amp;quot;,A.removePane.closure(this)).appendTo(this.pane)}this.contain.noSelect().appendTo(document.body);this.position();this.init()},init:function(){},position:function(){if(this.ne.nicPanel){var B=this.ne.nicPanel.elm;var A=B.pos();var C=A[0]+parseInt(B.getStyle(&amp;quot;width&amp;quot;))-(parseInt(this.pane.getStyle(&amp;quot;width&amp;quot;))+8);if(C&amp;lt;this.pos[0]){this.contain.setStyle({left:C+&amp;quot;px&amp;quot;})}}},toggle:function(){this.isVisible=!this.isVisible;this.contain.setStyle({display:((this.isVisible)?&amp;quot;block&amp;quot;:&amp;quot;none&amp;quot;)})},remove:function(){if(this.contain){this.contain.remove();this.contain=null}},append:function(A){A.appendTo(this.pane)},setContent:function(A){this.pane.setContent(A)}});
&amp;nbsp;
&amp;nbsp;
var nicSelectOptions = {
	buttons : {
		&#039;fontSize&#039; : {name : __(&#039;Select Font Size&#039;), type : &#039;nicEditorFontSizeSelect&#039;, command : &#039;fontsize&#039;},
		&#039;fontFamily&#039; : {name : __(&#039;Select Font Family&#039;), type : &#039;nicEditorFontFamilySelect&#039;, command : &#039;fontname&#039;},
		&#039;fontFormat&#039; : {name : __(&#039;Select Font Format&#039;), type : &#039;nicEditorFontFormatSelect&#039;, command : &#039;formatBlock&#039;}
	}
};
&amp;nbsp;
var nicEditorSelect=bkClass.extend({construct:function(D,A,C,B){this.options=C.buttons[A];this.elm=D;this.ne=B;this.name=A;this.selOptions=new Array();this.margin=new bkElement(&amp;quot;div&amp;quot;).setStyle({&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 1px 0 1px&amp;quot;}).appendTo(this.elm);this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({width:&amp;quot;90px&amp;quot;,height:&amp;quot;20px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;selectContain&amp;quot;).addEvent(&amp;quot;click&amp;quot;,this.toggle.closure(this)).appendTo(this.margin);this.items=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,zoom:1,border:&amp;quot;1px solid #ccc&amp;quot;,paddingLeft:&amp;quot;3px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;}).appendTo(this.contain);this.control=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;right&amp;quot;,height:&amp;quot;18px&amp;quot;,width:&amp;quot;16px&amp;quot;}).addClass(&amp;quot;selectControl&amp;quot;).setStyle(this.ne.getIcon(&amp;quot;arrow&amp;quot;,C)).appendTo(this.items);this.txt=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,width:&amp;quot;66px&amp;quot;,height:&amp;quot;14px&amp;quot;,marginTop:&amp;quot;1px&amp;quot;,fontFamily:&amp;quot;sans-serif&amp;quot;,textAlign:&amp;quot;center&amp;quot;,fontSize:&amp;quot;12px&amp;quot;}).addClass(&amp;quot;selectTxt&amp;quot;).appendTo(this.items);if(!window.opera){this.contain.onmousedown=this.control.onmousedown=this.txt.onmousedown=bkLib.cancelEvent}this.margin.noSelect();this.ne.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this));this.disable();this.init()},disable:function(){this.isDisabled=true;this.close();this.contain.setStyle({opacity:0.6})},enable:function(A){this.isDisabled=false;this.close();this.contain.setStyle({opacity:1})},setDisplay:function(A){this.txt.setContent(A)},toggle:function(){if(!this.isDisabled){(this.pane)?this.close():this.open()}},open:function(){this.pane=new nicEditorPane(this.items,this.ne,{width:&amp;quot;88px&amp;quot;,padding:&amp;quot;0px&amp;quot;,borderTop:0,borderLeft:&amp;quot;1px solid #ccc&amp;quot;,borderRight:&amp;quot;1px solid #ccc&amp;quot;,borderBottom:&amp;quot;0px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;});for(var C=0;C&amp;lt;this.selOptions.length;C++){var B=this.selOptions[C];var A=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,borderBottom:&amp;quot;1px solid #ccc&amp;quot;,width:&amp;quot;88px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,cursor:&amp;quot;pointer&amp;quot;});var D=new bkElement(&amp;quot;div&amp;quot;).setStyle({padding:&amp;quot;0px 4px&amp;quot;}).setContent(B[1]).appendTo(A).noSelect();D.addEvent(&amp;quot;click&amp;quot;,this.update.closure(this,B[0])).addEvent(&amp;quot;mouseover&amp;quot;,this.over.closure(this,D)).addEvent(&amp;quot;mouseout&amp;quot;,this.out.closure(this,D)).setAttributes(&amp;quot;id&amp;quot;,B[0]);this.pane.append(A);if(!window.opera){D.onmousedown=bkLib.cancelEvent}}},close:function(){if(this.pane){this.pane=this.pane.remove()}},over:function(A){A.setStyle({backgroundColor:&amp;quot;#ccc&amp;quot;})},out:function(A){A.setStyle({backgroundColor:&amp;quot;#fff&amp;quot;})},add:function(B,A){this.selOptions.push(new Array(B,A))},update:function(A){this.ne.nicCommand(this.options.command,A);this.close()}});var nicEditorFontSizeSelect=nicEditorSelect.extend({sel:{1:&amp;quot;1&amp;amp;nbsp;(8pt)&amp;quot;,2:&amp;quot;2&amp;amp;nbsp;(10pt)&amp;quot;,3:&amp;quot;3&amp;amp;nbsp;(12pt)&amp;quot;,4:&amp;quot;4&amp;amp;nbsp;(14pt)&amp;quot;,5:&amp;quot;5&amp;amp;nbsp;(18pt)&amp;quot;,6:&amp;quot;6&amp;amp;nbsp;(24pt)&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Size...&amp;quot;);for(itm in this.sel){this.add(itm,&#039;&amp;lt;font size=&amp;quot;&#039;+itm+&#039;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}});var nicEditorFontFamilySelect=nicEditorSelect.extend({sel:{arial:&amp;quot;Arial&amp;quot;,&amp;quot;comic sans ms&amp;quot;:&amp;quot;Comic Sans&amp;quot;,&amp;quot;courier new&amp;quot;:&amp;quot;Courier New&amp;quot;,georgia:&amp;quot;Georgia&amp;quot;,helvetica:&amp;quot;Helvetica&amp;quot;,impact:&amp;quot;Impact&amp;quot;,&amp;quot;times new roman&amp;quot;:&amp;quot;Times&amp;quot;,&amp;quot;trebuchet ms&amp;quot;:&amp;quot;Trebuchet&amp;quot;,verdana:&amp;quot;Verdana&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Family...&amp;quot;);for(itm in this.sel){this.add(itm,&#039;&amp;lt;font face=&amp;quot;&#039;+itm+&#039;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}});var nicEditorFontFormatSelect=nicEditorSelect.extend({sel:{p:&amp;quot;Paragraph&amp;quot;,pre:&amp;quot;Pre&amp;quot;,h6:&amp;quot;Heading&amp;amp;nbsp;6&amp;quot;,h5:&amp;quot;Heading&amp;amp;nbsp;5&amp;quot;,h4:&amp;quot;Heading&amp;amp;nbsp;4&amp;quot;,h3:&amp;quot;Heading&amp;amp;nbsp;3&amp;quot;,h2:&amp;quot;Heading&amp;amp;nbsp;2&amp;quot;,h1:&amp;quot;Heading&amp;amp;nbsp;1&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Format...&amp;quot;);for(itm in this.sel){var A=itm.toUpperCase();this.add(&amp;quot;&amp;lt;&amp;quot;+A+&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;+itm+&#039; style=&amp;quot;padding: 0px; margin: 0px;&amp;quot;&amp;gt;&#039;+this.sel[itm]+&amp;quot;&amp;lt;/&amp;quot;+A+&amp;quot;&amp;gt;&amp;quot;)}}});nicEditors.registerPlugin(nicPlugin,nicSelectOptions);
&amp;nbsp;
var nicButtonTips=bkClass.extend({construct:function(A){this.ne=A;A.addEvent(&amp;quot;buttonOver&amp;quot;,this.show.closure(this)).addEvent(&amp;quot;buttonOut&amp;quot;,this.hide.closure(this))},show:function(A){this.timer=setTimeout(this.create.closure(this,A),400)},create:function(A){this.timer=null;if(!this.pane){this.pane=new nicEditorPane(A.button,this.ne,{fontSize:&amp;quot;12px&amp;quot;,marginTop:&amp;quot;5px&amp;quot;});this.pane.setContent(A.options.name)}},hide:function(A){if(this.timer){clearTimeout(this.timer)}if(this.pane){this.pane=this.pane.remove()}}});nicEditors.registerPlugin(nicButtonTips);
&amp;nbsp;
var nicEditorAdvancedButton=nicEditorButton.extend({init:function(){this.ne.addEvent(&amp;quot;selected&amp;quot;,this.removePane.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.removePane.closure(this))},mouseClick:function(){if(!this.isDisabled){if(this.pane&amp;amp;&amp;amp;this.pane.pane){this.removePane()}else{this.pane=new nicEditorPane(this.contain,this.ne,{width:(this.width||&amp;quot;270px&amp;quot;),backgroundColor:&amp;quot;#fff&amp;quot;},this);this.addPane();this.ne.selectedInstance.saveRng()}}},addForm:function(C,G){this.form=new bkElement(&amp;quot;form&amp;quot;).addEvent(&amp;quot;submit&amp;quot;,this.submit.closureListener(this));this.pane.append(this.form);this.inputs={};for(itm in C){var D=C[itm];var F=&amp;quot;&amp;quot;;if(G){F=G.getAttribute(itm)}if(!F){F=D.value||&amp;quot;&amp;quot;}var A=C[itm].type;if(A==&amp;quot;title&amp;quot;){new bkElement(&amp;quot;div&amp;quot;).setContent(D.txt).setStyle({fontSize:&amp;quot;14px&amp;quot;,fontWeight:&amp;quot;bold&amp;quot;,padding:&amp;quot;0px&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(this.form)}else{var B=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form);if(D.txt){new bkElement(&amp;quot;label&amp;quot;).setAttributes({&amp;quot;for&amp;quot;:itm}).setContent(D.txt).setStyle({margin:&amp;quot;2px 4px&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,width:&amp;quot;50px&amp;quot;,lineHeight:&amp;quot;20px&amp;quot;,textAlign:&amp;quot;right&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).appendTo(B)}switch(A){case&amp;quot;text&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;input&amp;quot;).setAttributes({id:itm,value:F,type:&amp;quot;text&amp;quot;}).setStyle({margin:&amp;quot;2px 0&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,height:&amp;quot;20px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).setStyle(D.style).appendTo(B);break;case&amp;quot;select&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;select&amp;quot;).setAttributes({id:itm}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(B);for(opt in D.options){var E=new bkElement(&amp;quot;option&amp;quot;).setAttributes({value:opt,selected:(opt==F)?&amp;quot;selected&amp;quot;:&amp;quot;&amp;quot;}).setContent(D.options[opt]).appendTo(this.inputs[itm])}break;case&amp;quot;content&amp;quot;:this.inputs[itm]=new bkElement(&amp;quot;textarea&amp;quot;).setAttributes({id:itm}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).setStyle(D.style).appendTo(B);this.inputs[itm].value=F}}}new bkElement(&amp;quot;input&amp;quot;).setAttributes({type:&amp;quot;submit&amp;quot;}).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,margin:&amp;quot;3px 0&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form);this.form.onsubmit=bkLib.cancelEvent},submit:function(){},findElm:function(B,A,E){var D=this.ne.selectedInstance.getElm().getElementsByTagName(B);for(var C=0;C&amp;lt;D.length;C++){if(D[C].getAttribute(A)==E){return $BK(D[C])}}},removePane:function(){if(this.pane){this.pane.remove();this.pane=null;this.ne.selectedInstance.restoreRng()}}});
&amp;nbsp;
&amp;nbsp;
var nicLinkOptions = {
	buttons : {
		&#039;link&#039; : {name : &#039;Add Link&#039;, type : &#039;nicLinkButton&#039;, tags : [&#039;A&#039;]},
		&#039;unlink&#039; : {name : &#039;Remove Link&#039;,  command : &#039;unlink&#039;, noActive : true}
	}
};
&amp;nbsp;
var nicLinkButton=nicEditorAdvancedButton.extend({addPane:function(){this.ln=this.ne.selectedInstance.selElm().parentTag(&amp;quot;A&amp;quot;);this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Link&amp;quot;},href:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},title:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Title&amp;quot;},target:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Open In&amp;quot;,options:{&amp;quot;&amp;quot;:&amp;quot;Current Window&amp;quot;,_blank:&amp;quot;New Window&amp;quot;},style:{width:&amp;quot;100px&amp;quot;}}},this.ln)},submit:function(C){var A=this.inputs.href.value;if(A==&amp;quot;http://&amp;quot;||A==&amp;quot;&amp;quot;){alert(&amp;quot;You must enter a URL to Create a Link&amp;quot;);return false}this.removePane();if(!this.ln){var B=&amp;quot;javascript:nicTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;createlink&amp;quot;,B);this.ln=this.findElm(&amp;quot;A&amp;quot;,&amp;quot;href&amp;quot;,B)}if(this.ln){this.ln.setAttributes({href:this.inputs.href.value,title:this.inputs.title.value,target:this.inputs.target.options[this.inputs.target.selectedIndex].value})}}});nicEditors.registerPlugin(nicPlugin,nicLinkOptions);
&amp;nbsp;
&amp;nbsp;
var nicColorOptions = {
	buttons : {
		&#039;forecolor&#039; : {name : __(&#039;Change Text Color&#039;), type : &#039;nicEditorColorButton&#039;, noClose : true},
		&#039;bgcolor&#039; : {name : __(&#039;Change Background Color&#039;), type : &#039;nicEditorBgColorButton&#039;, noClose : true}
	}
};
&amp;nbsp;
var nicEditorColorButton=nicEditorAdvancedButton.extend({addPane:function(){var D={0:&amp;quot;00&amp;quot;,1:&amp;quot;33&amp;quot;,2:&amp;quot;66&amp;quot;,3:&amp;quot;99&amp;quot;,4:&amp;quot;CC&amp;quot;,5:&amp;quot;FF&amp;quot;};var H=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;270px&amp;quot;});for(var A in D){for(var F in D){for(var E in D){var I=&amp;quot;#&amp;quot;+D[A]+D[E]+D[F];var C=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({cursor:&amp;quot;pointer&amp;quot;,height:&amp;quot;15px&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}).appendTo(H);var G=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({border:&amp;quot;2px solid &amp;quot;+I}).appendTo(C);var B=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:I,overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;11px&amp;quot;,height:&amp;quot;11px&amp;quot;}).addEvent(&amp;quot;click&amp;quot;,this.colorSelect.closure(this,I)).addEvent(&amp;quot;mouseover&amp;quot;,this.on.closure(this,G)).addEvent(&amp;quot;mouseout&amp;quot;,this.off.closure(this,G,I)).appendTo(G);if(!window.opera){C.onmousedown=B.onmousedown=bkLib.cancelEvent}}}}this.pane.append(H.noSelect())},colorSelect:function(A){this.ne.nicCommand(&amp;quot;foreColor&amp;quot;,A);this.removePane()},on:function(A){A.setStyle({border:&amp;quot;2px solid #000&amp;quot;})},off:function(A,B){A.setStyle({border:&amp;quot;2px solid &amp;quot;+B})}});var nicEditorBgColorButton=nicEditorColorButton.extend({colorSelect:function(A){this.ne.nicCommand(&amp;quot;hiliteColor&amp;quot;,A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicColorOptions);
&amp;nbsp;
&amp;nbsp;
var nicImageOptions = {
	buttons : {
		&#039;image&#039; : {name : &#039;Add Image&#039;, type : &#039;nicImageButton&#039;, tags : [&#039;IMG&#039;]}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicImageButton=nicEditorAdvancedButton.extend({addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;);this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Image&amp;quot;},src:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},alt:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Alt Text&amp;quot;,style:{width:&amp;quot;100px&amp;quot;}},align:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Align&amp;quot;,options:{none:&amp;quot;Default&amp;quot;,left:&amp;quot;Left&amp;quot;,right:&amp;quot;Right&amp;quot;}}},this.im)},submit:function(B){var C=this.inputs.src.value;if(C==&amp;quot;&amp;quot;||C==&amp;quot;http://&amp;quot;){alert(&amp;quot;You must enter a Image URL to insert&amp;quot;);return false}this.removePane();if(!this.im){var A=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,A);this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,A)}if(this.im){this.im.setAttributes({src:this.inputs.src.value,alt:this.inputs.alt.value,align:this.inputs.align.value})}}});nicEditors.registerPlugin(nicPlugin,nicImageOptions);
&amp;nbsp;
&amp;nbsp;
var nicSaveOptions = {
	buttons : {
		&#039;save&#039; : {name : __(&#039;Save this content&#039;), type : &#039;nicEditorSaveButton&#039;}
	}
};
&amp;nbsp;
var nicEditorSaveButton=nicEditorButton.extend({init:function(){if(!this.ne.options.onSave){this.margin.setStyle({display:&amp;quot;none&amp;quot;})}},mouseClick:function(){var B=this.ne.options.onSave;var A=this.ne.selectedInstance;B(A.getContent(),A.elm.id,A)}});nicEditors.registerPlugin(nicPlugin,nicSaveOptions);
&amp;nbsp;
var nicXHTML=bkClass.extend({stripAttributes:[&amp;quot;_moz_dirty&amp;quot;,&amp;quot;_moz_resizing&amp;quot;,&amp;quot;_extended&amp;quot;],noShort:[&amp;quot;style&amp;quot;,&amp;quot;title&amp;quot;,&amp;quot;script&amp;quot;,&amp;quot;textarea&amp;quot;,&amp;quot;a&amp;quot;],cssReplace:{&amp;quot;font-weight:bold;&amp;quot;:&amp;quot;strong&amp;quot;,&amp;quot;font-style:italic;&amp;quot;:&amp;quot;em&amp;quot;},sizes:{1:&amp;quot;xx-small&amp;quot;,2:&amp;quot;x-small&amp;quot;,3:&amp;quot;small&amp;quot;,4:&amp;quot;medium&amp;quot;,5:&amp;quot;large&amp;quot;,6:&amp;quot;x-large&amp;quot;},construct:function(A){this.ne=A;if(this.ne.options.xhtml){A.addEvent(&amp;quot;get&amp;quot;,this.cleanup.closure(this))}},cleanup:function(A){var B=A.getElm();var C=this.toXHTML(B);A.content=C},toXHTML:function(C,A,L){var G=&amp;quot;&amp;quot;;var O=&amp;quot;&amp;quot;;var P=&amp;quot;&amp;quot;;var I=C.nodeType;var Q=C.nodeName.toLowerCase();var N=C.hasChildNodes&amp;amp;&amp;amp;C.hasChildNodes();var B=new Array();switch(I){case 1:var H=C.attributes;switch(Q){case&amp;quot;b&amp;quot;:Q=&amp;quot;strong&amp;quot;;break;case&amp;quot;i&amp;quot;:Q=&amp;quot;em&amp;quot;;break;case&amp;quot;font&amp;quot;:Q=&amp;quot;span&amp;quot;;break}if(A){for(var F=0;F&amp;lt;H.length;F++){var K=H[F];var M=K.nodeName.toLowerCase();var D=K.nodeValue;if(!K.specified||!D||bkLib.inArray(this.stripAttributes,M)||typeof (D)==&amp;quot;function&amp;quot;){continue}switch(M){case&amp;quot;style&amp;quot;:var J=D.replace(/ /g,&amp;quot;&amp;quot;);for(itm in this.cssReplace){if(J.indexOf(itm)!=-1){B.push(this.cssReplace[itm]);J=J.replace(itm,&amp;quot;&amp;quot;)}}P+=J;D=&amp;quot;&amp;quot;;break;case&amp;quot;class&amp;quot;:D=D.replace(&amp;quot;Apple-style-span&amp;quot;,&amp;quot;&amp;quot;);break;case&amp;quot;size&amp;quot;:P+=&amp;quot;font-size:&amp;quot;+this.sizes[D]+&amp;quot;;&amp;quot;;D=&amp;quot;&amp;quot;;break}if(D){O+=&amp;quot; &amp;quot;+M+&#039;=&amp;quot;&#039;+D+&#039;&amp;quot;&#039;}}if(P){O+=&#039; style=&amp;quot;&#039;+P+&#039;&amp;quot;&#039;}for(var F=0;F&amp;lt;B.length;F++){G+=&amp;quot;&amp;lt;&amp;quot;+B[F]+&amp;quot;&amp;gt;&amp;quot;}if(O==&amp;quot;&amp;quot;&amp;amp;&amp;amp;Q==&amp;quot;span&amp;quot;){A=false}if(A){G+=&amp;quot;&amp;lt;&amp;quot;+Q;if(Q!=&amp;quot;br&amp;quot;){G+=O}}}if(!N&amp;amp;&amp;amp;!bkLib.inArray(this.noShort,M)){if(A){G+=&amp;quot; /&amp;gt;&amp;quot;}}else{if(A){G+=&amp;quot;&amp;gt;&amp;quot;}for(var F=0;F&amp;lt;C.childNodes.length;F++){var E=this.toXHTML(C.childNodes[F],true,true);if(E){G+=E}}}if(A&amp;amp;&amp;amp;N){G+=&amp;quot;&amp;lt;/&amp;quot;+Q+&amp;quot;&amp;gt;&amp;quot;}for(var F=0;F&amp;lt;B.length;F++){G+=&amp;quot;&amp;lt;/&amp;quot;+B[F]+&amp;quot;&amp;gt;&amp;quot;}break;case 3:G+=C.nodeValue;break}return G}});nicEditors.registerPlugin(nicXHTML);
&amp;nbsp;
&amp;nbsp;
var nicCodeOptions = {
	buttons : {
		&#039;xhtml&#039; : {name : &#039;Edit HTML&#039;, type : &#039;nicCodeButton&#039;}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicCodeButton=nicEditorAdvancedButton.extend({width:&amp;quot;350px&amp;quot;,addPane:function(){this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Edit HTML&amp;quot;},code:{type:&amp;quot;content&amp;quot;,value:this.ne.selectedInstance.getContent(),style:{width:&amp;quot;340px&amp;quot;,height:&amp;quot;200px&amp;quot;}}})},submit:function(B){var A=this.inputs.code.value;this.ne.selectedInstance.setContent(A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicCodeOptions);
&amp;nbsp;
var nicBBCode=bkClass.extend({construct:function(A){this.ne=A;if(this.ne.options.bbCode){A.addEvent(&amp;quot;get&amp;quot;,this.bbGet.closure(this));A.addEvent(&amp;quot;set&amp;quot;,this.bbSet.closure(this));var B=this.ne.loadedPlugins;for(itm in B){if(B[itm].toXHTML){this.xhtml=B[itm]}}}},bbGet:function(A){var B=this.xhtml.toXHTML(A.getElm());A.content=this.toBBCode(B)},bbSet:function(A){A.content=this.fromBBCode(A.content)},toBBCode:function(B){function A(D,C){B=B.replace(D,C)}A(/\n/gi,&amp;quot;&amp;quot;);A(/&amp;lt;strong&amp;gt;(.*?)&amp;lt;\/strong&amp;gt;/gi,&amp;quot;[b]$1[/b]&amp;quot;);A(/&amp;lt;em&amp;gt;(.*?)&amp;lt;\/em&amp;gt;/gi,&amp;quot;[i]$1[/i]&amp;quot;);A(/&amp;lt;span.*?style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;(.*?)&amp;lt;\/span&amp;gt;/gi,&amp;quot;[u]$1[/u]&amp;quot;);A(/&amp;lt;ul&amp;gt;(.*?)&amp;lt;\/ul&amp;gt;/gi,&amp;quot;[list]$1[/list]&amp;quot;);A(/&amp;lt;li&amp;gt;(.*?)&amp;lt;\/li&amp;gt;/gi,&amp;quot;[*]$1[]&amp;quot;);A(/&amp;lt;ol&amp;gt;(.*?)&amp;lt;\/ol&amp;gt;/gi,&amp;quot;[list=1]$1[/list]&amp;quot;);A(/&amp;lt;img.*?src=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;/gi,&amp;quot;[img]$1[/img]&amp;quot;);A(/&amp;lt;a.*?href=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;(.*?)&amp;lt;\/a&amp;gt;/gi,&amp;quot;[url=$1]$2[/url]&amp;quot;);A(/&amp;lt;br.*?&amp;gt;/gi,&amp;quot;\n&amp;quot;);A(/&amp;lt;.*?&amp;gt;.*?&amp;lt;\/.*?&amp;gt;/gi,&amp;quot;&amp;quot;);return B},fromBBCode:function(A){function B(D,C){A=A.replace(D,C)}B(/\[b\](.*?)\[\/b\]/gi,&amp;quot;&amp;lt;strong&amp;gt;$1&amp;lt;/strong&amp;gt;&amp;quot;);B(/\[i\](.*?)\[\/i\]/gi,&amp;quot;&amp;lt;em&amp;gt;$1&amp;lt;/em&amp;gt;&amp;quot;);B(/\[u\](.*?)\[\/u\]/gi,&#039;&amp;lt;span style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt;&#039;);B(/\[list\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&amp;quot;);B(/\[list=1\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ol&amp;gt;$1&amp;lt;/ol&amp;gt;&amp;quot;);B(/\[\*\](.*?)\[\/\*\]/gi,&amp;quot;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&amp;quot;);B(/\[img\](.*?)\[\/img\]/gi,&#039;&amp;lt;img src=&amp;quot;$1&amp;quot; /&amp;gt;&#039;);B(/\[url=(.*?)\](.*?)\[\/url\]/gi,&#039;&amp;lt;a href=&amp;quot;$1&amp;quot;&amp;gt;$2&amp;lt;/a&amp;gt;&#039;);B(/\n/gi,&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;);return A}});nicEditors.registerPlugin(nicBBCode);
&amp;nbsp;
&amp;nbsp;
var nicUploadOptions = {
	buttons : {
		&#039;upload&#039; : {name : &#039;Upload Image&#039;, type : &#039;nicUploadButton&#039;}
	}
&amp;nbsp;
};
&amp;nbsp;
var nicUploadButton=nicEditorAdvancedButton.extend({nicURI:&amp;quot;https://api.imgur.com/3/image&amp;quot;,errorText:&amp;quot;Failed to upload image&amp;quot;,addPane:function(){if(typeof window.FormData===&amp;quot;undefined&amp;quot;){return this.onError(&amp;quot;Image uploads are not supported in this browser, use Chrome, Firefox, or Safari instead.&amp;quot;)}this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;);var A=new bkElement(&amp;quot;div&amp;quot;).setStyle({padding:&amp;quot;10px&amp;quot;}).appendTo(this.pane.pane);new bkElement(&amp;quot;div&amp;quot;).setStyle({fontSize:&amp;quot;14px&amp;quot;,fontWeight:&amp;quot;bold&amp;quot;,paddingBottom:&amp;quot;5px&amp;quot;}).setContent(&amp;quot;Insert an Image&amp;quot;).appendTo(A);this.fileInput=new bkElement(&amp;quot;input&amp;quot;).setAttributes({type:&amp;quot;file&amp;quot;}).appendTo(A);this.progress=new bkElement(&amp;quot;progress&amp;quot;).setStyle({width:&amp;quot;100%&amp;quot;,display:&amp;quot;none&amp;quot;}).setAttributes(&amp;quot;max&amp;quot;,100).appendTo(A);this.fileInput.onchange=this.uploadFile.closure(this)},onError:function(A){this.removePane();alert(A||&amp;quot;Failed to upload image&amp;quot;)},uploadFile:function(){var B=this.fileInput.files[0];if(!B||!B.type.match(/image.*/)){this.onError(&amp;quot;Only image files can be uploaded&amp;quot;);return }this.fileInput.setStyle({display:&amp;quot;none&amp;quot;});this.setProgress(0);var A=new FormData();A.append(&amp;quot;image&amp;quot;,B);var C=new XMLHttpRequest();C.open(&amp;quot;POST&amp;quot;,this.ne.options.uploadURI||this.nicURI);C.onload=function(){try{var D=JSON.parse(C.responseText).data}catch(E){return this.onError()}if(D.error){return this.onError(D.error)}this.onUploaded(D)}.closure(this);C.onerror=this.onError.closure(this);C.upload.onprogress=function(D){this.setProgress(D.loaded/D.total)}.closure(this);C.setRequestHeader(&amp;quot;Authorization&amp;quot;,&amp;quot;Client-ID c37fc05199a05b7&amp;quot;);C.send(A)},setProgress:function(A){this.progress.setStyle({display:&amp;quot;block&amp;quot;});if(A&amp;lt;0.98){this.progress.value=A}else{this.progress.removeAttribute(&amp;quot;value&amp;quot;)}},onUploaded:function(B){this.removePane();var D=B.link;if(!this.im){this.ne.selectedInstance.restoreRng();var C=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,D);this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,D)}var A=parseInt(this.ne.selectedInstance.elm.getStyle(&amp;quot;width&amp;quot;));if(this.im){this.im.setAttributes({src:D,width:(A&amp;amp;&amp;amp;B.width)?Math.min(A,B.width):&amp;quot;&amp;quot;})}}});nicEditors.registerPlugin(nicPlugin,nicUploadOptions);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:52:57 +0000</pubDate>
        </item>
        <item>
            <title>nicedit_nicedit_min_js_map</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_min_js_map&amp;rev=1767789979</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niceditminjsmap&quot;&gt;nicEdit.min.js.map&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js.map&quot; class=&quot;urlextern&quot; title=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js.map&quot; rel=&quot;ugc nofollow&quot;&gt;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js.map&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_min_js_map&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_map&quot;&gt;nicEdit.min.js.map&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;{&amp;quot;version&amp;quot;:3,&amp;quot;sources&amp;quot;:[&amp;quot;nicEdit.js&amp;quot;],&amp;quot;names&amp;quot;:[&amp;quot;bkClass&amp;quot;,&amp;quot;$BK&amp;quot;,&amp;quot;elm&amp;quot;,&amp;quot;document&amp;quot;,&amp;quot;getElementById&amp;quot;,&amp;quot;appendTo&amp;quot;,&amp;quot;bkExtend&amp;quot;,&amp;quot;bkElement&amp;quot;,&amp;quot;prototype&amp;quot;,&amp;quot;__&amp;quot;,&amp;quot;s&amp;quot;,&amp;quot;args&amp;quot;,&amp;quot;arguments&amp;quot;,&amp;quot;length&amp;quot;,&amp;quot;this&amp;quot;,&amp;quot;prop&amp;quot;,&amp;quot;construct&amp;quot;,&amp;quot;extend&amp;quot;,&amp;quot;def&amp;quot;,&amp;quot;classDef&amp;quot;,&amp;quot;apply&amp;quot;,&amp;quot;proto&amp;quot;,&amp;quot;d&amp;quot;,&amp;quot;createElement&amp;quot;,&amp;quot;appendChild&amp;quot;,&amp;quot;appendBefore&amp;quot;,&amp;quot;parentNode&amp;quot;,&amp;quot;insertBefore&amp;quot;,&amp;quot;addEvent&amp;quot;,&amp;quot;type&amp;quot;,&amp;quot;fn&amp;quot;,&amp;quot;bkLib&amp;quot;,&amp;quot;setContent&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;innerHTML&amp;quot;,&amp;quot;pos&amp;quot;,&amp;quot;curleft&amp;quot;,&amp;quot;curtop&amp;quot;,&amp;quot;obj&amp;quot;,&amp;quot;offsetParent&amp;quot;,&amp;quot;offsetLeft&amp;quot;,&amp;quot;offsetTop&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;window&amp;quot;,&amp;quot;opera&amp;quot;,&amp;quot;parseInt&amp;quot;,&amp;quot;getStyle&amp;quot;,&amp;quot;style&amp;quot;,&amp;quot;border&amp;quot;,&amp;quot;offsetHeight&amp;quot;,&amp;quot;noSelect&amp;quot;,&amp;quot;parentTag&amp;quot;,&amp;quot;t&amp;quot;,&amp;quot;nodeName&amp;quot;,&amp;quot;toUpperCase&amp;quot;,&amp;quot;hasClass&amp;quot;,&amp;quot;cls&amp;quot;,&amp;quot;className&amp;quot;,&amp;quot;match&amp;quot;,&amp;quot;RegExp&amp;quot;,&amp;quot;addClass&amp;quot;,&amp;quot;removeClass&amp;quot;,&amp;quot;replace&amp;quot;,&amp;quot;setStyle&amp;quot;,&amp;quot;st&amp;quot;,&amp;quot;elmStyle&amp;quot;,&amp;quot;itm&amp;quot;,&amp;quot;opacity&amp;quot;,&amp;quot;filter&amp;quot;,&amp;quot;Math&amp;quot;,&amp;quot;round&amp;quot;,&amp;quot;cssRule&amp;quot;,&amp;quot;doc&amp;quot;,&amp;quot;defaultView&amp;quot;,&amp;quot;nodeType&amp;quot;,&amp;quot;getComputedStyle&amp;quot;,&amp;quot;getPropertyValue&amp;quot;,&amp;quot;currentStyle&amp;quot;,&amp;quot;camelize&amp;quot;,&amp;quot;remove&amp;quot;,&amp;quot;removeChild&amp;quot;,&amp;quot;setAttributes&amp;quot;,&amp;quot;at&amp;quot;,&amp;quot;isMSIE&amp;quot;,&amp;quot;navigator&amp;quot;,&amp;quot;appVersion&amp;quot;,&amp;quot;indexOf&amp;quot;,&amp;quot;addEventListener&amp;quot;,&amp;quot;attachEvent&amp;quot;,&amp;quot;toArray&amp;quot;,&amp;quot;iterable&amp;quot;,&amp;quot;results&amp;quot;,&amp;quot;Array&amp;quot;,&amp;quot;element&amp;quot;,&amp;quot;setAttribute&amp;quot;,&amp;quot;toLowerCase&amp;quot;,&amp;quot;i&amp;quot;,&amp;quot;childNodes&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;l&amp;quot;,&amp;quot;inArray&amp;quot;,&amp;quot;arr&amp;quot;,&amp;quot;item&amp;quot;,&amp;quot;search&amp;quot;,&amp;quot;cancelEvent&amp;quot;,&amp;quot;e&amp;quot;,&amp;quot;event&amp;quot;,&amp;quot;preventDefault&amp;quot;,&amp;quot;stopPropagation&amp;quot;,&amp;quot;domLoad&amp;quot;,&amp;quot;domLoaded&amp;quot;,&amp;quot;callee&amp;quot;,&amp;quot;done&amp;quot;,&amp;quot;onDomLoaded&amp;quot;,&amp;quot;fireThis&amp;quot;,&amp;quot;push&amp;quot;,&amp;quot;write&amp;quot;,&amp;quot;location&amp;quot;,&amp;quot;protocol&amp;quot;,&amp;quot;onreadystatechange&amp;quot;,&amp;quot;readyState&amp;quot;,&amp;quot;onload&amp;quot;,&amp;quot;bkEvent&amp;quot;,&amp;quot;evType&amp;quot;,&amp;quot;evFunc&amp;quot;,&amp;quot;eventList&amp;quot;,&amp;quot;fireEvent&amp;quot;,&amp;quot;shift&amp;quot;,&amp;quot;Function&amp;quot;,&amp;quot;closure&amp;quot;,&amp;quot;__method&amp;quot;,&amp;quot;concat&amp;quot;,&amp;quot;closureListener&amp;quot;,&amp;quot;object&amp;quot;,&amp;quot;target&amp;quot;,&amp;quot;srcElement&amp;quot;,&amp;quot;nicEditorConfig&amp;quot;,&amp;quot;buttons&amp;quot;,&amp;quot;bold&amp;quot;,&amp;quot;name&amp;quot;,&amp;quot;command&amp;quot;,&amp;quot;tags&amp;quot;,&amp;quot;css&amp;quot;,&amp;quot;font-weight&amp;quot;,&amp;quot;key&amp;quot;,&amp;quot;italic&amp;quot;,&amp;quot;font-style&amp;quot;,&amp;quot;underline&amp;quot;,&amp;quot;text-decoration&amp;quot;,&amp;quot;left&amp;quot;,&amp;quot;noActive&amp;quot;,&amp;quot;center&amp;quot;,&amp;quot;right&amp;quot;,&amp;quot;justify&amp;quot;,&amp;quot;ol&amp;quot;,&amp;quot;ul&amp;quot;,&amp;quot;subscript&amp;quot;,&amp;quot;superscript&amp;quot;,&amp;quot;strikethrough&amp;quot;,&amp;quot;removeformat&amp;quot;,&amp;quot;indent&amp;quot;,&amp;quot;outdent&amp;quot;,&amp;quot;hr&amp;quot;,&amp;quot;iconsPath&amp;quot;,&amp;quot;buttonList&amp;quot;,&amp;quot;iconList&amp;quot;,&amp;quot;xhtml&amp;quot;,&amp;quot;bgcolor&amp;quot;,&amp;quot;forecolor&amp;quot;,&amp;quot;save&amp;quot;,&amp;quot;image&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;unlink&amp;quot;,&amp;quot;close&amp;quot;,&amp;quot;arrow&amp;quot;,&amp;quot;upload&amp;quot;,&amp;quot;initWithLineBreak&amp;quot;,&amp;quot;nicEditors&amp;quot;,&amp;quot;nicPlugins&amp;quot;,&amp;quot;editors&amp;quot;,&amp;quot;registerPlugin&amp;quot;,&amp;quot;plugin&amp;quot;,&amp;quot;options&amp;quot;,&amp;quot;p&amp;quot;,&amp;quot;o&amp;quot;,&amp;quot;allTextAreas&amp;quot;,&amp;quot;nicOptions&amp;quot;,&amp;quot;textareas&amp;quot;,&amp;quot;getElementsByTagName&amp;quot;,&amp;quot;nicEditor&amp;quot;,&amp;quot;panelInstance&amp;quot;,&amp;quot;findEditor&amp;quot;,&amp;quot;instanceById&amp;quot;,&amp;quot;nicInstances&amp;quot;,&amp;quot;loadedPlugins&amp;quot;,&amp;quot;plugins&amp;quot;,&amp;quot;body&amp;quot;,&amp;quot;selectCheck&amp;quot;,&amp;quot;checkReplace&amp;quot;,&amp;quot;panelElm&amp;quot;,&amp;quot;width&amp;quot;,&amp;quot;clientWidth&amp;quot;,&amp;quot;setPanel&amp;quot;,&amp;quot;addInstance&amp;quot;,&amp;quot;r&amp;quot;,&amp;quot;removeInstance&amp;quot;,&amp;quot;removePanel&amp;quot;,&amp;quot;newInstance&amp;quot;,&amp;quot;contentEditable&amp;quot;,&amp;quot;nicEditorInstance&amp;quot;,&amp;quot;nicEditorIFrameInstance&amp;quot;,&amp;quot;instances&amp;quot;,&amp;quot;splice&amp;quot;,&amp;quot;nicPanel&amp;quot;,&amp;quot;nicEditorPanel&amp;quot;,&amp;quot;nicCommand&amp;quot;,&amp;quot;cmd&amp;quot;,&amp;quot;selectedInstance&amp;quot;,&amp;quot;getIcon&amp;quot;,&amp;quot;iconName&amp;quot;,&amp;quot;icon&amp;quot;,&amp;quot;file&amp;quot;,&amp;quot;iconFiles&amp;quot;,&amp;quot;backgroundImage&amp;quot;,&amp;quot;backgroundPosition&amp;quot;,&amp;quot;lastSelectedInstance&amp;quot;,&amp;quot;isSelected&amp;quot;,&amp;quot;ne&amp;quot;,&amp;quot;newX&amp;quot;,&amp;quot;newY&amp;quot;,&amp;quot;clientHeight&amp;quot;,&amp;quot;initialHeight&amp;quot;,&amp;quot;isTextarea&amp;quot;,&amp;quot;hasPanel&amp;quot;,&amp;quot;ie7s&amp;quot;,&amp;quot;maxHeight&amp;quot;,&amp;quot;compatMode&amp;quot;,&amp;quot;borderTop&amp;quot;,&amp;quot;overflowY&amp;quot;,&amp;quot;overflowX&amp;quot;,&amp;quot;editorContain&amp;quot;,&amp;quot;editorElm&amp;quot;,&amp;quot;margin&amp;quot;,&amp;quot;minHeight&amp;quot;,&amp;quot;display&amp;quot;,&amp;quot;copyElm&amp;quot;,&amp;quot;f&amp;quot;,&amp;quot;saveContent&amp;quot;,&amp;quot;height&amp;quot;,&amp;quot;overflow&amp;quot;,&amp;quot;blur&amp;quot;,&amp;quot;init&amp;quot;,&amp;quot;getContent&amp;quot;,&amp;quot;instanceDoc&amp;quot;,&amp;quot;selected&amp;quot;,&amp;quot;keyDown&amp;quot;,&amp;quot;disable&amp;quot;,&amp;quot;getSel&amp;quot;,&amp;quot;getSelection&amp;quot;,&amp;quot;selection&amp;quot;,&amp;quot;getRng&amp;quot;,&amp;quot;rangeCount&amp;quot;,&amp;quot;getRangeAt&amp;quot;,&amp;quot;createRange&amp;quot;,&amp;quot;selRng&amp;quot;,&amp;quot;rng&amp;quot;,&amp;quot;removeAllRanges&amp;quot;,&amp;quot;addRange&amp;quot;,&amp;quot;select&amp;quot;,&amp;quot;selElm&amp;quot;,&amp;quot;startContainer&amp;quot;,&amp;quot;contain&amp;quot;,&amp;quot;cloneContents&amp;quot;,&amp;quot;ownerDocument&amp;quot;,&amp;quot;selectNode&amp;quot;,&amp;quot;compareBoundaryPoints&amp;quot;,&amp;quot;Range&amp;quot;,&amp;quot;START_TO_START&amp;quot;,&amp;quot;END_TO_END&amp;quot;,&amp;quot;parentElement&amp;quot;,&amp;quot;saveRng&amp;quot;,&amp;quot;savedRange&amp;quot;,&amp;quot;savedSel&amp;quot;,&amp;quot;restoreRng&amp;quot;,&amp;quot;ctrlKey&amp;quot;,&amp;quot;selInstance&amp;quot;,&amp;quot;isFocused&amp;quot;,&amp;quot;value&amp;quot;,&amp;quot;getElm&amp;quot;,&amp;quot;content&amp;quot;,&amp;quot;execCommand&amp;quot;,&amp;quot;savedStyles&amp;quot;,&amp;quot;initialContent&amp;quot;,&amp;quot;elmFrame&amp;quot;,&amp;quot;src&amp;quot;,&amp;quot;frameBorder&amp;quot;,&amp;quot;allowTransparency&amp;quot;,&amp;quot;scrolling&amp;quot;,&amp;quot;offsetWidth&amp;quot;,&amp;quot;styleList&amp;quot;,&amp;quot;setTimeout&amp;quot;,&amp;quot;initFrame&amp;quot;,&amp;quot;fd&amp;quot;,&amp;quot;contentWindow&amp;quot;,&amp;quot;designMode&amp;quot;,&amp;quot;open&amp;quot;,&amp;quot;externalCSS&amp;quot;,&amp;quot;frameDoc&amp;quot;,&amp;quot;frameWin&amp;quot;,&amp;quot;frameContent&amp;quot;,&amp;quot;heightUpdate&amp;quot;,&amp;quot;max&amp;quot;,&amp;quot;panelButtons&amp;quot;,&amp;quot;panelContain&amp;quot;,&amp;quot;backgroundColor&amp;quot;,&amp;quot;marginTop&amp;quot;,&amp;quot;zoom&amp;quot;,&amp;quot;opt&amp;quot;,&amp;quot;button&amp;quot;,&amp;quot;addButton&amp;quot;,&amp;quot;reorder&amp;quot;,&amp;quot;buttonName&amp;quot;,&amp;quot;noOrder&amp;quot;,&amp;quot;undefined&amp;quot;,&amp;quot;nicEditorButton&amp;quot;,&amp;quot;hasButton&amp;quot;,&amp;quot;fullPanel&amp;quot;,&amp;quot;findButton&amp;quot;,&amp;quot;bl&amp;quot;,&amp;quot;float&amp;quot;,&amp;quot;cursor&amp;quot;,&amp;quot;hoverOn&amp;quot;,&amp;quot;hoverOff&amp;quot;,&amp;quot;mouseClick&amp;quot;,&amp;quot;onmousedown&amp;quot;,&amp;quot;onclick&amp;quot;,&amp;quot;enable&amp;quot;,&amp;quot;hide&amp;quot;,&amp;quot;updateState&amp;quot;,&amp;quot;isDisabled&amp;quot;,&amp;quot;setBg&amp;quot;,&amp;quot;isHover&amp;quot;,&amp;quot;isActive&amp;quot;,&amp;quot;state&amp;quot;,&amp;quot;stateStyle&amp;quot;,&amp;quot;checkNodes&amp;quot;,&amp;quot;activate&amp;quot;,&amp;quot;deactivate&amp;quot;,&amp;quot;ins&amp;quot;,&amp;quot;toggleActive&amp;quot;,&amp;quot;commandArgs&amp;quot;,&amp;quot;nicInstance&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;fromCharCode&amp;quot;,&amp;quot;keyCode&amp;quot;,&amp;quot;charCode&amp;quot;,&amp;quot;nicPlugin&amp;quot;,&amp;quot;loadPanel&amp;quot;,&amp;quot;np&amp;quot;,&amp;quot;nicPaneOptions&amp;quot;,&amp;quot;nicEditorPane&amp;quot;,&amp;quot;openButton&amp;quot;,&amp;quot;zIndex&amp;quot;,&amp;quot;position&amp;quot;,&amp;quot;top&amp;quot;,&amp;quot;pane&amp;quot;,&amp;quot;fontSize&amp;quot;,&amp;quot;padding&amp;quot;,&amp;quot;textAlign&amp;quot;,&amp;quot;noClose&amp;quot;,&amp;quot;removePane&amp;quot;,&amp;quot;newLeft&amp;quot;,&amp;quot;toggle&amp;quot;,&amp;quot;isVisible&amp;quot;,&amp;quot;append&amp;quot;,&amp;quot;nicEditorAdvancedButton&amp;quot;,&amp;quot;addPane&amp;quot;,&amp;quot;addForm&amp;quot;,&amp;quot;form&amp;quot;,&amp;quot;submit&amp;quot;,&amp;quot;inputs&amp;quot;,&amp;quot;field&amp;quot;,&amp;quot;val&amp;quot;,&amp;quot;getAttribute&amp;quot;,&amp;quot;txt&amp;quot;,&amp;quot;fontWeight&amp;quot;,&amp;quot;clear&amp;quot;,&amp;quot;for&amp;quot;,&amp;quot;lineHeight&amp;quot;,&amp;quot;id&amp;quot;,&amp;quot;onsubmit&amp;quot;,&amp;quot;findElm&amp;quot;,&amp;quot;tag&amp;quot;,&amp;quot;attr&amp;quot;,&amp;quot;list&amp;quot;,&amp;quot;nicButtonTips&amp;quot;,&amp;quot;show&amp;quot;,&amp;quot;timer&amp;quot;,&amp;quot;create&amp;quot;,&amp;quot;clearTimeout&amp;quot;,&amp;quot;nicSelectOptions&amp;quot;,&amp;quot;fontFamily&amp;quot;,&amp;quot;fontFormat&amp;quot;,&amp;quot;nicEditorSelect&amp;quot;,&amp;quot;selOptions&amp;quot;,&amp;quot;items&amp;quot;,&amp;quot;paddingLeft&amp;quot;,&amp;quot;control&amp;quot;,&amp;quot;setDisplay&amp;quot;,&amp;quot;borderLeft&amp;quot;,&amp;quot;borderRight&amp;quot;,&amp;quot;borderBottom&amp;quot;,&amp;quot;itmContain&amp;quot;,&amp;quot;update&amp;quot;,&amp;quot;over&amp;quot;,&amp;quot;out&amp;quot;,&amp;quot;add&amp;quot;,&amp;quot;k&amp;quot;,&amp;quot;v&amp;quot;,&amp;quot;nicEditorFontSizeSelect&amp;quot;,&amp;quot;sel&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;3&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;5&amp;quot;,&amp;quot;6&amp;quot;,&amp;quot;nicEditorFontFamilySelect&amp;quot;,&amp;quot;arial&amp;quot;,&amp;quot;comic sans ms&amp;quot;,&amp;quot;courier new&amp;quot;,&amp;quot;georgia&amp;quot;,&amp;quot;helvetica&amp;quot;,&amp;quot;impact&amp;quot;,&amp;quot;times new roman&amp;quot;,&amp;quot;trebuchet ms&amp;quot;,&amp;quot;verdana&amp;quot;,&amp;quot;nicEditorFontFormatSelect&amp;quot;,&amp;quot;pre&amp;quot;,&amp;quot;h6&amp;quot;,&amp;quot;h5&amp;quot;,&amp;quot;h4&amp;quot;,&amp;quot;h3&amp;quot;,&amp;quot;h2&amp;quot;,&amp;quot;h1&amp;quot;,&amp;quot;nicLinkOptions&amp;quot;,&amp;quot;nicLinkButton&amp;quot;,&amp;quot;ln&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;href&amp;quot;,&amp;quot;title&amp;quot;,&amp;quot;_blank&amp;quot;,&amp;quot;url&amp;quot;,&amp;quot;alert&amp;quot;,&amp;quot;tmp&amp;quot;,&amp;quot;oldTitle&amp;quot;,&amp;quot;selectedIndex&amp;quot;,&amp;quot;nicColorOptions&amp;quot;,&amp;quot;nicEditorColorButton&amp;quot;,&amp;quot;colorList&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;colorItems&amp;quot;,&amp;quot;g&amp;quot;,&amp;quot;colorCode&amp;quot;,&amp;quot;colorSquare&amp;quot;,&amp;quot;colorBorder&amp;quot;,&amp;quot;colorInner&amp;quot;,&amp;quot;colorSelect&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;nicEditorBgColorButton&amp;quot;,&amp;quot;nicImageOptions&amp;quot;,&amp;quot;nicImageButton&amp;quot;,&amp;quot;im&amp;quot;,&amp;quot;alt&amp;quot;,&amp;quot;align&amp;quot;,&amp;quot;none&amp;quot;,&amp;quot;nicSaveOptions&amp;quot;,&amp;quot;nicEditorSaveButton&amp;quot;,&amp;quot;onSave&amp;quot;,&amp;quot;nicUploadOptions&amp;quot;,&amp;quot;nicUploadButton&amp;quot;,&amp;quot;nicURI&amp;quot;,&amp;quot;myID&amp;quot;,&amp;quot;random&amp;quot;,&amp;quot;pow&amp;quot;,&amp;quot;requestInterval&amp;quot;,&amp;quot;uri&amp;quot;,&amp;quot;uploadURI&amp;quot;,&amp;quot;lastPlugin&amp;quot;,&amp;quot;myFrame&amp;quot;,&amp;quot;progressWrapper&amp;quot;,&amp;quot;progress&amp;quot;,&amp;quot;myDoc&amp;quot;,&amp;quot;myBody&amp;quot;,&amp;quot;myForm&amp;quot;,&amp;quot;myInput&amp;quot;,&amp;quot;startUpload&amp;quot;,&amp;quot;myStatus&amp;quot;,&amp;quot;makeRequest&amp;quot;,&amp;quot;setProgress&amp;quot;,&amp;quot;percent&amp;quot;,&amp;quot;w&amp;quot;,&amp;quot;min&amp;quot;,&amp;quot;error&amp;quot;,&amp;quot;noprogress&amp;quot;,&amp;quot;host&amp;quot;,&amp;quot;current&amp;quot;,&amp;quot;total&amp;quot;,&amp;quot;interval&amp;quot;,&amp;quot;statusCb&amp;quot;,&amp;quot;nicXHTML&amp;quot;,&amp;quot;stripAttributes&amp;quot;,&amp;quot;noShort&amp;quot;,&amp;quot;cssReplace&amp;quot;,&amp;quot;font-weight:bold;&amp;quot;,&amp;quot;font-style:italic;&amp;quot;,&amp;quot;sizes&amp;quot;,&amp;quot;cleanup&amp;quot;,&amp;quot;ni&amp;quot;,&amp;quot;node&amp;quot;,&amp;quot;toXHTML&amp;quot;,&amp;quot;n&amp;quot;,&amp;quot;attrTxt&amp;quot;,&amp;quot;cssTxt&amp;quot;,&amp;quot;nType&amp;quot;,&amp;quot;nName&amp;quot;,&amp;quot;nChild&amp;quot;,&amp;quot;hasChildNodes&amp;quot;,&amp;quot;extraNodes&amp;quot;,&amp;quot;nAttributes&amp;quot;,&amp;quot;attributes&amp;quot;,&amp;quot;attributeName&amp;quot;,&amp;quot;attributeValue&amp;quot;,&amp;quot;nodeValue&amp;quot;,&amp;quot;specified&amp;quot;,&amp;quot;j&amp;quot;,&amp;quot;nicBBCode&amp;quot;,&amp;quot;bbCode&amp;quot;,&amp;quot;bbGet&amp;quot;,&amp;quot;bbSet&amp;quot;,&amp;quot;toBBCode&amp;quot;,&amp;quot;fromBBCode&amp;quot;,&amp;quot;rp&amp;quot;,&amp;quot;floatingPanel&amp;quot;,&amp;quot;floating&amp;quot;,&amp;quot;reposition&amp;quot;,&amp;quot;nicCodeOptions&amp;quot;,&amp;quot;nicCodeButton&amp;quot;,&amp;quot;code&amp;quot;],&amp;quot;mappings&amp;quot;:&amp;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&amp;quot;}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:46:19 +0000</pubDate>
        </item>
        <item>
            <title>nicedit_nicedit_min_js</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_min_js&amp;rev=1767789598</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niceditminjs&quot;&gt;nicEdit.min.js&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js&quot; class=&quot;urlextern&quot; title=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js&quot; rel=&quot;ugc nofollow&quot;&gt;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEdit.min.js&lt;/a&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_min_js&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;nicEdit.min.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;function bkClass(){}function $BK(t){return&amp;quot;string&amp;quot;==typeof t&amp;amp;&amp;amp;(t=document.getElementById(t)),t&amp;amp;&amp;amp;!t.appendTo?bkExtend(t,bkElement.prototype):t}function __(t){return t}var bkExtend=function(){var t=arguments;1==t.length&amp;amp;&amp;amp;(t=[this,t[0]]);for(var e in t[1])t[0][e]=t[1][e];return t[0]};bkClass.prototype.construct=function(){},bkClass.extend=function(t){var e=function(){if(arguments[0]!==bkClass)return this.construct.apply(this,arguments)},n=new this(bkClass);return bkExtend(n,t),e.prototype=n,e.extend=this.extend,e};var bkElement=bkClass.extend({construct:function(t,e){return&amp;quot;string&amp;quot;==typeof t&amp;amp;&amp;amp;(t=(e||document).createElement(t)),t=$BK(t)},appendTo:function(t){return t.appendChild(this),this},appendBefore:function(t){return t.parentNode.insertBefore(this,t),this},addEvent:function(t,e){return bkLib.addEvent(this,t,e),this},setContent:function(t){return this.innerHTML=t,this},pos:function(){var t=curtop=0;obj=this;if(obj.offsetParent)do{t+=obj.offsetLeft,curtop+=obj.offsetTop}while(obj=obj.offsetParent);var e=window.opera?0:parseInt(this.getStyle(&amp;quot;border-width&amp;quot;)||this.style.border,10)||0;return[t+e,curtop+e+this.offsetHeight]},noSelect:function(){return bkLib.noSelect(this),this},parentTag:function(t){var e=this;do{if(e&amp;amp;&amp;amp;e.nodeName&amp;amp;&amp;amp;e.nodeName.toUpperCase()==t)return e;e=e.parentNode}while(e);return!1},hasClass:function(t){return this.className.match(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+t+&amp;quot;(\\s|$)&amp;quot;))},addClass:function(t){return this.hasClass(t)||(this.className+=&amp;quot; nicEdit-&amp;quot;+t),this},removeClass:function(t){return this.hasClass(t)&amp;amp;&amp;amp;(this.className=this.className.replace(new RegExp(&amp;quot;(\\s|^)nicEdit-&amp;quot;+t+&amp;quot;(\\s|$)&amp;quot;),&amp;quot; &amp;quot;)),this},setStyle:function(t){var e=this.style;for(var n in t)switch(n){case&amp;quot;float&amp;quot;:e.cssFloat=e.styleFloat=t[n];break;case&amp;quot;opacity&amp;quot;:e.opacity=t[n],e.filter=&amp;quot;alpha(opacity=&amp;quot;+Math.round(100*t[n])+&amp;quot;)&amp;quot;;break;case&amp;quot;className&amp;quot;:this.className=t[n];break;default:e[n]=t[n]}return this},getStyle:function(t,e){var n=e||document.defaultView;if(1==this.nodeType)return n&amp;amp;&amp;amp;n.getComputedStyle?n.getComputedStyle(this,null).getPropertyValue(t):this.currentStyle[bkLib.camelize(t)]},remove:function(){return this.parentNode.removeChild(this),this},setAttributes:function(t){for(var e in t)this[e]=t[e];return this}}),bkLib={isMSIE:-1!=navigator.appVersion.indexOf(&amp;quot;MSIE&amp;quot;),addEvent:function(t,e,n){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent(&amp;quot;on&amp;quot;+e,n)},toArray:function(t){for(var e=t.length,n=new Array(e);e--;)n[e]=t[e];return n},noSelect:function(t){t.setAttribute&amp;amp;&amp;amp;&amp;quot;input&amp;quot;!=t.nodeName.toLowerCase()&amp;amp;&amp;amp;&amp;quot;textarea&amp;quot;!=t.nodeName.toLowerCase()&amp;amp;&amp;amp;t.setAttribute(&amp;quot;unselectable&amp;quot;,&amp;quot;on&amp;quot;);for(var e=0;e&amp;lt;t.childNodes.length;e++)bkLib.noSelect(t.childNodes[e])},camelize:function(t){return t.replace(/\-(.)/g,function(t,e){return e.toUpperCase()})},inArray:function(t,e){return null!==bkLib.search(t,e)},search:function(t,e){for(var n=0;n&amp;lt;t.length;n++)if(t[n]==e)return n;return null},cancelEvent:function(t){return(t=t||window.event).preventDefault&amp;amp;&amp;amp;t.stopPropagation&amp;amp;&amp;amp;(t.preventDefault(),t.stopPropagation()),!1},domLoad:[],domLoaded:function(){if(!arguments.callee.done)for(arguments.callee.done=!0,i=0;i&amp;lt;bkLib.domLoad.length;i++)bkLib.domLoad[i]()},onDomLoaded:function(t){this.domLoad.push(t),document.addEventListener?document.addEventListener(&amp;quot;DOMContentLoaded&amp;quot;,bkLib.domLoaded,null):bkLib.isMSIE&amp;amp;&amp;amp;(document.write(&amp;quot;&amp;lt;style&amp;gt;.nicEdit-main p { margin: 0; }&amp;lt;/style&amp;gt;&amp;lt;script id=__ie_onload defer &amp;quot;+(&amp;quot;https:&amp;quot;==location.protocol?&amp;quot;src=&#039;javascript:void(0)&#039;&amp;quot;:&amp;quot;src=//0&amp;quot;)+&amp;quot;&amp;gt;&amp;lt;\/script&amp;gt;&amp;quot;),$BK(&amp;quot;__ie_onload&amp;quot;).onreadystatechange=function(){&amp;quot;complete&amp;quot;==this.readyState&amp;amp;&amp;amp;bkLib.domLoaded()}),window.onload=bkLib.domLoaded}},bkEvent={addEvent:function(t,e){return e&amp;amp;&amp;amp;(this.eventList=this.eventList||{},this.eventList[t]=this.eventList[t]||[],this.eventList[t].push(e)),this},fireEvent:function(){var t=bkLib.toArray(arguments),e=t.shift();if(this.eventList&amp;amp;&amp;amp;this.eventList[e])for(var n=0;n&amp;lt;this.eventList[e].length;n++)this.eventList[e][n].apply(this,t)}};Function.prototype.closure=function(){var t=this,e=bkLib.toArray(arguments),n=e.shift();return function(){if(void 0!==bkLib)return t.apply(n,e.concat(bkLib.toArray(arguments)))}},Function.prototype.closureListener=function(){var t=this,e=bkLib.toArray(arguments),n=e.shift();return function(i){var s;return i=i||window.event,s=i.target?i.target:i.srcElement,t.apply(n,[i,s].concat(e))}};var nicEditorConfig=bkClass.extend({buttons:{bold:{name:__(&amp;quot;Click to Bold&amp;quot;),command:&amp;quot;Bold&amp;quot;,tags:[&amp;quot;B&amp;quot;,&amp;quot;STRONG&amp;quot;],css:{&amp;quot;font-weight&amp;quot;:&amp;quot;bold&amp;quot;},key:&amp;quot;b&amp;quot;},italic:{name:__(&amp;quot;Click to Italic&amp;quot;),command:&amp;quot;Italic&amp;quot;,tags:[&amp;quot;EM&amp;quot;,&amp;quot;I&amp;quot;],css:{&amp;quot;font-style&amp;quot;:&amp;quot;italic&amp;quot;},key:&amp;quot;i&amp;quot;},underline:{name:__(&amp;quot;Click to Underline&amp;quot;),command:&amp;quot;Underline&amp;quot;,tags:[&amp;quot;U&amp;quot;],css:{&amp;quot;text-decoration&amp;quot;:&amp;quot;underline&amp;quot;},key:&amp;quot;u&amp;quot;},left:{name:__(&amp;quot;Left Align&amp;quot;),command:&amp;quot;justifyleft&amp;quot;,noActive:!0},center:{name:__(&amp;quot;Center Align&amp;quot;),command:&amp;quot;justifycenter&amp;quot;,noActive:!0},right:{name:__(&amp;quot;Right Align&amp;quot;),command:&amp;quot;justifyright&amp;quot;,noActive:!0},justify:{name:__(&amp;quot;Justify Align&amp;quot;),command:&amp;quot;justifyfull&amp;quot;,noActive:!0},ol:{name:__(&amp;quot;Insert Ordered List&amp;quot;),command:&amp;quot;insertorderedlist&amp;quot;,tags:[&amp;quot;OL&amp;quot;]},ul:{name:__(&amp;quot;Insert Unordered List&amp;quot;),command:&amp;quot;insertunorderedlist&amp;quot;,tags:[&amp;quot;UL&amp;quot;]},subscript:{name:__(&amp;quot;Click to Subscript&amp;quot;),command:&amp;quot;subscript&amp;quot;,tags:[&amp;quot;SUB&amp;quot;]},superscript:{name:__(&amp;quot;Click to Superscript&amp;quot;),command:&amp;quot;superscript&amp;quot;,tags:[&amp;quot;SUP&amp;quot;]},strikethrough:{name:__(&amp;quot;Click to Strike Through&amp;quot;),command:&amp;quot;strikeThrough&amp;quot;,css:{&amp;quot;text-decoration&amp;quot;:&amp;quot;line-through&amp;quot;}},removeformat:{name:__(&amp;quot;Remove Formatting&amp;quot;),command:&amp;quot;removeformat&amp;quot;,noActive:!0},indent:{name:__(&amp;quot;Indent Text&amp;quot;),command:&amp;quot;indent&amp;quot;,noActive:!0},outdent:{name:__(&amp;quot;Remove Indent&amp;quot;),command:&amp;quot;outdent&amp;quot;,noActive:!0},hr:{name:__(&amp;quot;Horizontal Rule&amp;quot;),command:&amp;quot;insertHorizontalRule&amp;quot;,noActive:!0}},iconsPath:&amp;quot;../nicEditorIcons.gif&amp;quot;,buttonList:[&amp;quot;save&amp;quot;,&amp;quot;bold&amp;quot;,&amp;quot;italic&amp;quot;,&amp;quot;underline&amp;quot;,&amp;quot;left&amp;quot;,&amp;quot;center&amp;quot;,&amp;quot;right&amp;quot;,&amp;quot;justify&amp;quot;,&amp;quot;ol&amp;quot;,&amp;quot;ul&amp;quot;,&amp;quot;fontSize&amp;quot;,&amp;quot;fontFamily&amp;quot;,&amp;quot;fontFormat&amp;quot;,&amp;quot;indent&amp;quot;,&amp;quot;outdent&amp;quot;,&amp;quot;image&amp;quot;,&amp;quot;upload&amp;quot;,&amp;quot;link&amp;quot;,&amp;quot;unlink&amp;quot;,&amp;quot;forecolor&amp;quot;,&amp;quot;bgcolor&amp;quot;],iconList:{xhtml:1,bgcolor:2,forecolor:3,bold:4,center:5,hr:6,indent:7,italic:8,justify:9,left:10,ol:11,outdent:12,removeformat:13,right:14,save:25,strikethrough:16,subscript:17,superscript:18,ul:19,underline:20,image:21,link:22,unlink:23,close:24,arrow:26,upload:27},initWithLineBreak:!0}),nicEditors={nicPlugins:[],editors:[],registerPlugin:function(t,e){this.nicPlugins.push({p:t,o:e})},allTextAreas:function(t){for(var e=document.getElementsByTagName(&amp;quot;textarea&amp;quot;),n=0;n&amp;lt;e.length;n++)nicEditors.editors.push(new nicEditor(t).panelInstance(e[n]));return nicEditors.editors},findEditor:function(t){for(var e=nicEditors.editors,n=0;n&amp;lt;e.length;n++)if(e[n].instanceById(t))return e[n]}},nicEditor=bkClass.extend({construct:function(t){this.options=new nicEditorConfig,bkExtend(this.options,t),this.nicInstances=[],this.loadedPlugins=[];for(var e=nicEditors.nicPlugins,n=0;n&amp;lt;e.length;n++)this.loadedPlugins.push(new e[n].p(this,e[n].o));nicEditors.editors.push(this),bkLib.addEvent(document.body,&amp;quot;mousedown&amp;quot;,this.selectCheck.closureListener(this))},panelInstance:function(t,e){t=this.checkReplace($BK(t));var n=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:(parseInt(t.getStyle(&amp;quot;width&amp;quot;),10)||t.clientWidth)+&amp;quot;px&amp;quot;}).appendBefore(t);return this.setPanel(n),this.addInstance(t,e)},checkReplace:function(t){var e=nicEditors.findEditor(t);return e&amp;amp;&amp;amp;(e.removeInstance(t),e.removePanel()),t},addInstance:function(t,e){var n;return t=this.checkReplace($BK(t)),n=t.contentEditable||window.opera?new nicEditorInstance(t,e,this):new nicEditorIFrameInstance(t,e,this),this.nicInstances.push(n),this},removeInstance:function(t){t=$BK(t);for(var e=this.nicInstances,n=0;n&amp;lt;e.length;n++)e[n].e==t&amp;amp;&amp;amp;(e[n].remove(),this.nicInstances.splice(n,1))},removePanel:function(t){this.nicPanel&amp;amp;&amp;amp;(this.nicPanel.remove(),this.nicPanel=null)},instanceById:function(t){t=$BK(t);for(var e=this.nicInstances,n=0;n&amp;lt;e.length;n++)if(e[n].e==t)return e[n]},setPanel:function(t){return this.nicPanel=new nicEditorPanel($BK(t),this.options,this),this.fireEvent(&amp;quot;panel&amp;quot;,this.nicPanel),this},nicCommand:function(t,e){this.selectedInstance&amp;amp;&amp;amp;this.selectedInstance.nicCommand(t,e)},getIcon:function(t,e){var n=this.options.iconList[t],i=e.iconFiles?e.iconFiles[t]:&amp;quot;&amp;quot;;return{backgroundImage:&amp;quot;url(&#039;&amp;quot;+(n?this.options.iconsPath:i)+&amp;quot;&#039;)&amp;quot;,backgroundPosition:(n?-18*(n-1):0)+&amp;quot;px 0px&amp;quot;}},selectCheck:function(t,e){do{if(e.className&amp;amp;&amp;amp;-1!=e.className.indexOf(&amp;quot;nicEdit&amp;quot;))return!1}while(e=e.parentNode);return this.fireEvent(&amp;quot;blur&amp;quot;,this.selectedInstance,e),this.lastSelectedInstance=this.selectedInstance,this.selectedInstance=null,!1}});nicEditor=nicEditor.extend(bkEvent);var nicEditorInstance=bkClass.extend({isSelected:!1,construct:function(t,e,n){this.ne=n,this.elm=this.e=t,this.options=e||{},newX=parseInt(t.getStyle(&amp;quot;width&amp;quot;),10)||t.clientWidth,newY=parseInt(t.getStyle(&amp;quot;height&amp;quot;),10)||t.clientHeight,this.initialHeight=newY-8;var i=&amp;quot;textarea&amp;quot;==t.nodeName.toLowerCase();if(i||this.options.hasPanel){var s=bkLib.isMSIE&amp;amp;&amp;amp;!(void 0!==document.body.style.maxHeight&amp;amp;&amp;amp;&amp;quot;CSS1Compat&amp;quot;==document.compatMode),o={width:newX+&amp;quot;px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,borderTop:0,overflowY:&amp;quot;auto&amp;quot;,overflowX:&amp;quot;hidden&amp;quot;};o[s?&amp;quot;height&amp;quot;:&amp;quot;maxHeight&amp;quot;]=this.ne.options.maxHeight?this.ne.options.maxHeight+&amp;quot;px&amp;quot;:null,this.editorContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle(o).appendBefore(t);var a=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:newX-8+&amp;quot;px&amp;quot;,margin:&amp;quot;4px&amp;quot;,minHeight:newY+&amp;quot;px&amp;quot;}).addClass(&amp;quot;main&amp;quot;).appendTo(this.editorContain);if(t.setStyle({display:&amp;quot;none&amp;quot;}),a.innerHTML=t.innerHTML,i){this.copyElm=t;var r=t.parentTag(&amp;quot;FORM&amp;quot;);r&amp;amp;&amp;amp;bkLib.addEvent(r,&amp;quot;submit&amp;quot;,this.saveContent.closure(this))}a.setStyle(s?{height:newY+&amp;quot;px&amp;quot;}:{overflow:&amp;quot;hidden&amp;quot;}),this.elm=a}this.ne.addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this)),this.init(),this.blur()},init:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;true&amp;quot;),&amp;quot;&amp;quot;===this.getContent()&amp;amp;&amp;amp;this.options.initWithLineBreak&amp;amp;&amp;amp;this.setContent(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;),this.instanceDoc=document.defaultView,this.elm.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keypress&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;focus&amp;quot;,this.selected.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.blur.closure(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this)),this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},remove:function(){this.saveContent(),(this.copyElm||this.options.hasPanel)&amp;amp;&amp;amp;(this.editorContain.remove(),this.e.setStyle({display:&amp;quot;block&amp;quot;}),this.ne.removePanel()),this.disable(),this.ne.fireEvent(&amp;quot;remove&amp;quot;,this)},disable:function(){this.elm.setAttribute(&amp;quot;contentEditable&amp;quot;,&amp;quot;false&amp;quot;)},getSel:function(){return window.getSelection?window.getSelection():document.selection},getRng:function(){var t=this.getSel();return t?t.rangeCount&amp;gt;0?t.getRangeAt(0):t.createRange&amp;amp;&amp;amp;t.createRange()||document.createRange():null},selRng:function(t,e){window.getSelection?(e.removeAllRanges(),e.addRange(t)):t.select()},selElm:function(){var t=this.getRng();if(t.startContainer){var e=t.startContainer;if(1==t.cloneContents().childNodes.length)for(var n=0;n&amp;lt;e.childNodes.length;n++){var i=e.childNodes[n].ownerDocument.createRange();if(i.selectNode(e.childNodes[n]),1!=t.compareBoundaryPoints(Range.START_TO_START,i)&amp;amp;&amp;amp;-1!=t.compareBoundaryPoints(Range.END_TO_END,i))return $BK(e.childNodes[n])}return $BK(e)}return $BK(&amp;quot;Control&amp;quot;==this.getSel().type?t.item(0):t.parentElement())},saveRng:function(){this.savedRange=this.getRng(),this.savedSel=this.getSel()},restoreRng:function(){this.savedRange&amp;amp;&amp;amp;this.selRng(this.savedRange,this.savedSel)},keyDown:function(t,e){this.ne.fireEvent(&amp;quot;keyDown&amp;quot;,this,t),t.ctrlKey&amp;amp;&amp;amp;this.ne.fireEvent(&amp;quot;key&amp;quot;,this,t)},selected:function(t,e){if(e||(e=this.selElm()),!t.ctrlKey){var n=this.ne.selectedInstance;n!=this&amp;amp;&amp;amp;(n&amp;amp;&amp;amp;this.ne.fireEvent(&amp;quot;blur&amp;quot;,n,e),this.ne.selectedInstance=this,this.ne.fireEvent(&amp;quot;focus&amp;quot;,n,e)),this.ne.fireEvent(&amp;quot;selected&amp;quot;,n,e),this.isFocused=!0,this.elm.addClass(&amp;quot;selected&amp;quot;)}return!1},blur:function(){this.isFocused=!1,this.elm.removeClass(&amp;quot;selected&amp;quot;)},saveContent:function(){(this.copyElm||this.options.hasPanel)&amp;amp;&amp;amp;(this.ne.fireEvent(&amp;quot;save&amp;quot;,this),this.copyElm?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent())},getElm:function(){return this.elm},getContent:function(){return this.content=this.getElm().innerHTML,this.ne.fireEvent(&amp;quot;get&amp;quot;,this),this.content},setContent:function(t){this.content=t,this.ne.fireEvent(&amp;quot;set&amp;quot;,this),this.elm.innerHTML=this.content},nicCommand:function(t,e){document.execCommand(t,!1,e)}}),nicEditorIFrameInstance=nicEditorInstance.extend({savedStyles:[],init:function(){var t=this.elm.innerHTML.replace(/^\s+|\s+$/g,&amp;quot;&amp;quot;);this.elm.innerHTML=&amp;quot;&amp;quot;,t||(t=&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;),this.initialContent=t,this.elmFrame=new bkElement(&amp;quot;iframe&amp;quot;).setAttributes({src:&amp;quot;javascript:;&amp;quot;,frameBorder:0,allowTransparency:&amp;quot;true&amp;quot;,scrolling:&amp;quot;no&amp;quot;}).setStyle({height:&amp;quot;100px&amp;quot;,width:&amp;quot;100%&amp;quot;}).addClass(&amp;quot;frame&amp;quot;).appendTo(this.elm),this.copyElm&amp;amp;&amp;amp;this.elmFrame.setStyle({width:this.elm.offsetWidth-4+&amp;quot;px&amp;quot;});var e=[&amp;quot;font-size&amp;quot;,&amp;quot;font-family&amp;quot;,&amp;quot;font-weight&amp;quot;,&amp;quot;color&amp;quot;];for(var n in e)this.savedStyles[bkLib.camelize(n)]=this.elm.getStyle(n);setTimeout(this.initFrame.closure(this),50)},disable:function(){this.elm.innerHTML=this.getContent()},initFrame:function(){var t=$BK(this.elmFrame.contentWindow.document);t.designMode=&amp;quot;on&amp;quot;,t.open();var e=this.ne.options.externalCSS;t.write(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;quot;+(e?&#039;&amp;lt;link href=&amp;quot;&#039;+e+&#039;&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt;&#039;:&amp;quot;&amp;quot;)+&#039;&amp;lt;/head&amp;gt;&amp;lt;body id=&amp;quot;nicEditContent&amp;quot; style=&amp;quot;margin: 0 !important; background-color: transparent !important;&amp;quot;&amp;gt;&#039;+this.initialContent+&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;),t.close(),this.frameDoc=t,this.frameWin=$BK(this.elmFrame.contentWindow),this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles),this.instanceDoc=this.frameWin.document.defaultView,this.heightUpdate(),this.frameDoc.addEvent(&amp;quot;mousedown&amp;quot;,this.selected.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.heightUpdate.closureListener(this)).addEvent(&amp;quot;keydown&amp;quot;,this.keyDown.closureListener(this)).addEvent(&amp;quot;keyup&amp;quot;,this.selected.closure(this)),this.ne.fireEvent(&amp;quot;add&amp;quot;,this)},getElm:function(){return this.frameContent},setContent:function(t){this.content=t,this.ne.fireEvent(&amp;quot;set&amp;quot;,this),this.frameContent.innerHTML=this.content,this.heightUpdate()},getSel:function(){return this.frameWin?this.frameWin.getSelection():this.frameDoc.selection},heightUpdate:function(){this.elmFrame.style.height=Math.max(this.frameContent.offsetHeight,this.initialHeight)+&amp;quot;px&amp;quot;},nicCommand:function(t,e){this.frameDoc.execCommand(t,!1,e),setTimeout(this.heightUpdate.closure(this),100)}}),nicEditorPanel=bkClass.extend({construct:function(t,e,n){this.elm=t,this.options=e,this.ne=n,this.panelButtons=[],this.buttonList=bkExtend([],this.ne.options.buttonList),this.panelContain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;100%&amp;quot;,border:&amp;quot;1px solid #cccccc&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}).addClass(&amp;quot;panelContain&amp;quot;),this.panelElm=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({margin:&amp;quot;2px&amp;quot;,marginTop:&amp;quot;0px&amp;quot;,zoom:1,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;panel&amp;quot;).appendTo(this.panelContain),this.panelContain.appendTo(t);var i=this.ne.options,s=i.buttons;for(var o in s)this.addButton(o,i,!0);this.reorder(),t.noSelect()},addButton:function(t,e,n){var i=e.buttons[t],s=null;s=i.type?void 0===typeof window[i.type]?null:window[i.type]:nicEditorButton;var o=bkLib.inArray(this.buttonList,t);s&amp;amp;&amp;amp;(o||this.ne.options.fullPanel)&amp;amp;&amp;amp;(this.panelButtons.push(new s(this.panelElm,t,e,this.ne)),o||this.buttonList.push(t))},findButton:function(t){for(var e=0;e&amp;lt;this.panelButtons.length;e++)if(this.panelButtons[e].name==t)return this.panelButtons[e]},reorder:function(){for(var t=this.buttonList,e=0;e&amp;lt;t.length;e++){var n=this.findButton(t[e]);n&amp;amp;&amp;amp;this.panelElm.appendChild(n.margin)}},remove:function(){this.elm.remove()}}),nicEditorButton=bkClass.extend({construct:function(t,e,n,i){this.options=n.buttons[e],this.name=e,this.ne=i,this.elm=t,this.margin=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({float:&amp;quot;left&amp;quot;,marginTop:&amp;quot;2px&amp;quot;}).appendTo(t),this.contain=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;20px&amp;quot;,height:&amp;quot;20px&amp;quot;}).addClass(&amp;quot;buttonContain&amp;quot;).appendTo(this.margin),this.border=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #efefef&amp;quot;}).appendTo(this.contain),this.button=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;18px&amp;quot;,height:&amp;quot;18px&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,zoom:1,cursor:&amp;quot;pointer&amp;quot;}).addClass(&amp;quot;button&amp;quot;).setStyle(this.ne.getIcon(e,n)).appendTo(this.border),this.button.addEvent(&amp;quot;mouseover&amp;quot;,this.hoverOn.closure(this)).addEvent(&amp;quot;mouseout&amp;quot;,this.hoverOff.closure(this)).addEvent(&amp;quot;mousedown&amp;quot;,this.mouseClick.closure(this)).noSelect(),window.opera||(this.button.onmousedown=this.button.onclick=bkLib.cancelEvent),i.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this)).addEvent(&amp;quot;key&amp;quot;,this.key.closure(this)),this.disable(),this.init()},init:function(){},hide:function(){this.contain.setStyle({display:&amp;quot;none&amp;quot;})},updateState:function(){this.isDisabled?this.setBg():this.isHover?this.setBg(&amp;quot;hover&amp;quot;):this.isActive?this.setBg(&amp;quot;active&amp;quot;):this.setBg()},setBg:function(t){var e;switch(t){case&amp;quot;hover&amp;quot;:e={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ddd&amp;quot;};break;case&amp;quot;active&amp;quot;:e={border:&amp;quot;1px solid #666&amp;quot;,backgroundColor:&amp;quot;#ccc&amp;quot;};break;default:e={border:&amp;quot;1px solid #efefef&amp;quot;,backgroundColor:&amp;quot;#efefef&amp;quot;}}this.border.setStyle(e).addClass(&amp;quot;button-&amp;quot;+t)},checkNodes:function(t){var e=t;do{if(this.options.tags&amp;amp;&amp;amp;bkLib.inArray(this.options.tags,e.nodeName))return this.activate(),!0}while((e=e.parentNode)&amp;amp;&amp;amp;&amp;quot;nicEdit&amp;quot;!=e.className);for(e=$BK(t);3==e.nodeType;)e=$BK(e.parentNode);if(this.options.css)for(var n in this.options.css)if(e.getStyle(n,this.ne.selectedInstance.instanceDoc)==this.options.css[n])return this.activate(),!0;return this.deactivate(),!1},activate:function(){this.isDisabled||(this.isActive=!0,this.updateState(),this.ne.fireEvent(&amp;quot;buttonActivate&amp;quot;,this))},deactivate:function(){this.isActive=!1,this.updateState(),this.isDisabled||this.ne.fireEvent(&amp;quot;buttonDeactivate&amp;quot;,this)},enable:function(t,e){this.isDisabled=!1,this.contain.setStyle({opacity:1}).addClass(&amp;quot;buttonEnabled&amp;quot;),this.updateState(),e!==document&amp;amp;&amp;amp;this.checkNodes(e)},disable:function(t,e){this.isDisabled=!0,this.contain.setStyle({opacity:.6}).removeClass(&amp;quot;buttonEnabled&amp;quot;),this.updateState()},toggleActive:function(){this.isActive?this.deactivate():this.activate()},hoverOn:function(){this.isDisabled||(this.isHover=!0,this.updateState(),this.ne.fireEvent(&amp;quot;buttonOver&amp;quot;,this))},hoverOff:function(){this.isHover=!1,this.updateState(),this.ne.fireEvent(&amp;quot;buttonOut&amp;quot;,this)},mouseClick:function(){this.options.command&amp;amp;&amp;amp;(this.ne.nicCommand(this.options.command,this.options.commandArgs),this.options.noActive||this.toggleActive()),this.ne.fireEvent(&amp;quot;buttonClick&amp;quot;,this)},key:function(t,e){this.options.key&amp;amp;&amp;amp;e.ctrlKey&amp;amp;&amp;amp;String.fromCharCode(e.keyCode||e.charCode).toLowerCase()==this.options.key&amp;amp;&amp;amp;(this.mouseClick(),e.preventDefault&amp;amp;&amp;amp;e.preventDefault())}}),nicPlugin=bkClass.extend({construct:function(t,e){this.options=e,this.ne=t,this.ne.addEvent(&amp;quot;panel&amp;quot;,this.loadPanel.closure(this)),this.init()},loadPanel:function(t){var e=this.options.buttons;for(var n in e)t.addButton(n,this.options);t.reorder()},init:function(){}}),nicPaneOptions={},nicEditorPane=bkClass.extend({construct:function(t,e,n,i){this.ne=e,this.elm=t,this.pos=t.pos(),this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({zIndex:&amp;quot;99999&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,position:&amp;quot;absolute&amp;quot;,left:this.pos[0]+&amp;quot;px&amp;quot;,top:this.pos[1]+&amp;quot;px&amp;quot;}),this.pane=new bkElement(&amp;quot;div&amp;quot;).setStyle({fontSize:&amp;quot;12px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;,padding:&amp;quot;4px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,backgroundColor:&amp;quot;#ffffc9&amp;quot;}).addClass(&amp;quot;pane&amp;quot;).setStyle(n).appendTo(this.contain),i&amp;amp;&amp;amp;!i.options.noClose&amp;amp;&amp;amp;(this.close=new bkElement(&amp;quot;div&amp;quot;).setStyle({float:&amp;quot;right&amp;quot;,height:&amp;quot;16px&amp;quot;,width:&amp;quot;16px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;}).setStyle(this.ne.getIcon(&amp;quot;close&amp;quot;,nicPaneOptions)).addEvent(&amp;quot;mousedown&amp;quot;,i.removePane.closure(this)).appendTo(this.pane)),this.contain.noSelect().appendTo(document.body),this.position(),this.init()},init:function(){},position:function(){if(this.ne.nicPanel){var t=this.ne.nicPanel.elm,e=t.pos()[0]+parseInt(t.getStyle(&amp;quot;width&amp;quot;),10)-(parseInt(this.pane.getStyle(&amp;quot;width&amp;quot;),10)+8);e&amp;lt;this.pos[0]&amp;amp;&amp;amp;this.contain.setStyle({left:e+&amp;quot;px&amp;quot;})}},toggle:function(){this.isVisible=!this.isVisible,this.contain.setStyle({display:this.isVisible?&amp;quot;block&amp;quot;:&amp;quot;none&amp;quot;})},remove:function(){this.contain&amp;amp;&amp;amp;(this.contain.remove(),this.contain=null)},append:function(t){t.appendTo(this.pane)},setContent:function(t){this.pane.setContent(t)}}),nicEditorAdvancedButton=nicEditorButton.extend({init:function(){this.ne.addEvent(&amp;quot;selected&amp;quot;,this.removePane.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.removePane.closure(this))},mouseClick:function(){this.isDisabled||(this.pane&amp;amp;&amp;amp;this.pane.pane?this.removePane():(this.pane=new nicEditorPane(this.contain,this.ne,{width:this.width||&amp;quot;270px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;},this),this.addPane(),this.ne.selectedInstance.saveRng()))},addForm:function(t,e){this.form=new bkElement(&amp;quot;form&amp;quot;).addEvent(&amp;quot;submit&amp;quot;,this.submit.closureListener(this)),this.pane.append(this.form),this.inputs={};for(var n in t){var i=t[n],s=&amp;quot;&amp;quot;;e&amp;amp;&amp;amp;(s=e.getAttribute(n)),s||(s=i.value||&amp;quot;&amp;quot;);var o=t[n].type;if(&amp;quot;title&amp;quot;==o)new bkElement(&amp;quot;div&amp;quot;).setContent(i.txt).setStyle({fontSize:&amp;quot;14px&amp;quot;,fontWeight:&amp;quot;bold&amp;quot;,padding:&amp;quot;0px&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(this.form);else{var a=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form);switch(i.txt&amp;amp;&amp;amp;new bkElement(&amp;quot;label&amp;quot;).setAttributes({for:n}).setContent(i.txt).setStyle({margin:&amp;quot;2px 4px&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,width:&amp;quot;50px&amp;quot;,lineHeight:&amp;quot;20px&amp;quot;,textAlign:&amp;quot;right&amp;quot;,float:&amp;quot;left&amp;quot;}).appendTo(a),o){case&amp;quot;text&amp;quot;:this.inputs[n]=new bkElement(&amp;quot;input&amp;quot;).setAttributes({id:n,value:s,type:&amp;quot;text&amp;quot;}).setStyle({margin:&amp;quot;2px 0&amp;quot;,fontSize:&amp;quot;13px&amp;quot;,float:&amp;quot;left&amp;quot;,height:&amp;quot;20px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).setStyle(i.style).appendTo(a);break;case&amp;quot;select&amp;quot;:this.inputs[n]=new bkElement(&amp;quot;select&amp;quot;).setAttributes({id:n}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,float:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 0&amp;quot;}).appendTo(a);for(var r in i.options)new bkElement(&amp;quot;option&amp;quot;).setAttributes({value:r,selected:r==s?&amp;quot;selected&amp;quot;:&amp;quot;&amp;quot;}).setContent(i.options[r]).appendTo(this.inputs[n]);break;case&amp;quot;content&amp;quot;:this.inputs[n]=new bkElement(&amp;quot;textarea&amp;quot;).setAttributes({id:n}).setStyle({border:&amp;quot;1px solid #ccc&amp;quot;,float:&amp;quot;left&amp;quot;}).setStyle(i.style).appendTo(a),this.inputs[n].value=s}}}new bkElement(&amp;quot;input&amp;quot;).setAttributes({type:&amp;quot;submit&amp;quot;}).setStyle({backgroundColor:&amp;quot;#efefef&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;,margin:&amp;quot;3px 0&amp;quot;,float:&amp;quot;left&amp;quot;,clear:&amp;quot;both&amp;quot;}).appendTo(this.form),this.form.onsubmit=bkLib.cancelEvent},submit:function(){},findElm:function(t,e,n){for(var i=this.ne.selectedInstance.getElm().getElementsByTagName(t),s=0;s&amp;lt;i.length;s++)if(i[s].getAttribute(e)==n)return $BK(i[s])},removePane:function(){this.pane&amp;amp;&amp;amp;(this.pane.remove(),this.pane=null,this.ne.selectedInstance.restoreRng())}}),nicButtonTips=bkClass.extend({construct:function(t){this.ne=t,t.addEvent(&amp;quot;buttonOver&amp;quot;,this.show.closure(this)).addEvent(&amp;quot;buttonOut&amp;quot;,this.hide.closure(this))},show:function(t){this.timer=setTimeout(this.create.closure(this,t),400)},create:function(t){this.timer=null,this.pane||(this.pane=new nicEditorPane(t.button,this.ne,{fontSize:&amp;quot;12px&amp;quot;,marginTop:&amp;quot;5px&amp;quot;}),this.pane.setContent(t.options.name))},hide:function(t){this.timer&amp;amp;&amp;amp;clearTimeout(this.timer),this.pane&amp;amp;&amp;amp;(this.pane=this.pane.remove())}});nicEditors.registerPlugin(nicButtonTips);var nicSelectOptions={buttons:{fontSize:{name:__(&amp;quot;Select Font Size&amp;quot;),type:&amp;quot;nicEditorFontSizeSelect&amp;quot;,command:&amp;quot;fontsize&amp;quot;},fontFamily:{name:__(&amp;quot;Select Font Family&amp;quot;),type:&amp;quot;nicEditorFontFamilySelect&amp;quot;,command:&amp;quot;fontname&amp;quot;},fontFormat:{name:__(&amp;quot;Select Font Format&amp;quot;),type:&amp;quot;nicEditorFontFormatSelect&amp;quot;,command:&amp;quot;formatBlock&amp;quot;}}},nicEditorSelect=bkClass.extend({construct:function(t,e,n,i){this.options=n.buttons[e],this.elm=t,this.ne=i,this.name=e,this.selOptions=[],this.margin=new bkElement(&amp;quot;div&amp;quot;).setStyle({float:&amp;quot;left&amp;quot;,margin:&amp;quot;2px 1px 0 1px&amp;quot;}).appendTo(this.elm),this.contain=new bkElement(&amp;quot;div&amp;quot;).setStyle({width:&amp;quot;90px&amp;quot;,height:&amp;quot;20px&amp;quot;,cursor:&amp;quot;pointer&amp;quot;,overflow:&amp;quot;hidden&amp;quot;}).addClass(&amp;quot;selectContain&amp;quot;).addEvent(&amp;quot;click&amp;quot;,this.toggle.closure(this)).appendTo(this.margin),this.items=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,zoom:1,border:&amp;quot;1px solid #ccc&amp;quot;,paddingLeft:&amp;quot;3px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;}).appendTo(this.contain),this.control=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,float:&amp;quot;right&amp;quot;,height:&amp;quot;18px&amp;quot;,width:&amp;quot;16px&amp;quot;}).addClass(&amp;quot;selectControl&amp;quot;).setStyle(this.ne.getIcon(&amp;quot;arrow&amp;quot;,n)).appendTo(this.items),this.txt=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,float:&amp;quot;left&amp;quot;,width:&amp;quot;66px&amp;quot;,height:&amp;quot;14px&amp;quot;,marginTop:&amp;quot;1px&amp;quot;,fontFamily:&amp;quot;sans-serif&amp;quot;,textAlign:&amp;quot;center&amp;quot;,fontSize:&amp;quot;12px&amp;quot;}).addClass(&amp;quot;selectTxt&amp;quot;).appendTo(this.items),window.opera||(this.contain.onmousedown=this.control.onmousedown=this.txt.onmousedown=bkLib.cancelEvent),this.margin.noSelect(),this.ne.addEvent(&amp;quot;selected&amp;quot;,this.enable.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.disable.closure(this)),this.disable(),this.init()},disable:function(){this.isDisabled=!0,this.close(),this.contain.setStyle({opacity:.6})},enable:function(t){this.isDisabled=!1,this.close(),this.contain.setStyle({opacity:1})},setDisplay:function(t){this.txt.setContent(t)},toggle:function(){this.isDisabled||(this.pane?this.close():this.open())},open:function(){this.pane=new nicEditorPane(this.items,this.ne,{width:&amp;quot;88px&amp;quot;,padding:&amp;quot;0px&amp;quot;,borderTop:0,borderLeft:&amp;quot;1px solid #ccc&amp;quot;,borderRight:&amp;quot;1px solid #ccc&amp;quot;,borderBottom:&amp;quot;0px&amp;quot;,backgroundColor:&amp;quot;#fff&amp;quot;});for(var t=0;t&amp;lt;this.selOptions.length;t++){var e=this.selOptions[t],n=new bkElement(&amp;quot;div&amp;quot;).setStyle({overflow:&amp;quot;hidden&amp;quot;,borderBottom:&amp;quot;1px solid #ccc&amp;quot;,width:&amp;quot;88px&amp;quot;,textAlign:&amp;quot;left&amp;quot;,cursor:&amp;quot;pointer&amp;quot;}),i=new bkElement(&amp;quot;div&amp;quot;).setStyle({padding:&amp;quot;0px 4px&amp;quot;}).setContent(e[1]).appendTo(n).noSelect();i.addEvent(&amp;quot;click&amp;quot;,this.update.closure(this,e[0])).addEvent(&amp;quot;mouseover&amp;quot;,this.over.closure(this,i)).addEvent(&amp;quot;mouseout&amp;quot;,this.out.closure(this,i)).setAttributes(&amp;quot;id&amp;quot;,e[0]),this.pane.append(n),window.opera||(i.onmousedown=bkLib.cancelEvent)}},close:function(){this.pane&amp;amp;&amp;amp;(this.pane=this.pane.remove())},over:function(t){t.setStyle({backgroundColor:&amp;quot;#ccc&amp;quot;})},out:function(t){t.setStyle({backgroundColor:&amp;quot;#fff&amp;quot;})},add:function(t,e){this.selOptions.push(new Array(t,e))},update:function(t){this.ne.nicCommand(this.options.command,t),this.close()}}),nicEditorFontSizeSelect=nicEditorSelect.extend({sel:{1:&amp;quot;1&amp;amp;nbsp;(8pt)&amp;quot;,2:&amp;quot;2&amp;amp;nbsp;(10pt)&amp;quot;,3:&amp;quot;3&amp;amp;nbsp;(12pt)&amp;quot;,4:&amp;quot;4&amp;amp;nbsp;(14pt)&amp;quot;,5:&amp;quot;5&amp;amp;nbsp;(18pt)&amp;quot;,6:&amp;quot;6&amp;amp;nbsp;(24pt)&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Size...&amp;quot;);for(var t in this.sel)this.add(t,&#039;&amp;lt;font size=&amp;quot;&#039;+t+&#039;&amp;quot;&amp;gt;&#039;+this.sel[t]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}),nicEditorFontFamilySelect=nicEditorSelect.extend({sel:{arial:&amp;quot;Arial&amp;quot;,&amp;quot;comic sans ms&amp;quot;:&amp;quot;Comic Sans&amp;quot;,&amp;quot;courier new&amp;quot;:&amp;quot;Courier New&amp;quot;,georgia:&amp;quot;Georgia&amp;quot;,helvetica:&amp;quot;Helvetica&amp;quot;,impact:&amp;quot;Impact&amp;quot;,&amp;quot;times new roman&amp;quot;:&amp;quot;Times&amp;quot;,&amp;quot;trebuchet ms&amp;quot;:&amp;quot;Trebuchet&amp;quot;,verdana:&amp;quot;Verdana&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Family...&amp;quot;);for(var t in this.sel)this.add(t,&#039;&amp;lt;font face=&amp;quot;&#039;+t+&#039;&amp;quot;&amp;gt;&#039;+this.sel[t]+&amp;quot;&amp;lt;/font&amp;gt;&amp;quot;)}}),nicEditorFontFormatSelect=nicEditorSelect.extend({sel:{p:&amp;quot;Paragraph&amp;quot;,pre:&amp;quot;Pre&amp;quot;,h6:&amp;quot;Heading&amp;amp;nbsp;6&amp;quot;,h5:&amp;quot;Heading&amp;amp;nbsp;5&amp;quot;,h4:&amp;quot;Heading&amp;amp;nbsp;4&amp;quot;,h3:&amp;quot;Heading&amp;amp;nbsp;3&amp;quot;,h2:&amp;quot;Heading&amp;amp;nbsp;2&amp;quot;,h1:&amp;quot;Heading&amp;amp;nbsp;1&amp;quot;},init:function(){this.setDisplay(&amp;quot;Font&amp;amp;nbsp;Format...&amp;quot;);for(var t in this.sel){var e=t.toUpperCase();this.add(&amp;quot;&amp;lt;&amp;quot;+e+&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;+t+&#039; style=&amp;quot;padding: 0px; margin: 0px;&amp;quot;&amp;gt;&#039;+this.sel[t]+&amp;quot;&amp;lt;/&amp;quot;+e+&amp;quot;&amp;gt;&amp;quot;)}}});nicEditors.registerPlugin(nicPlugin,nicSelectOptions);var nicLinkOptions={buttons:{link:{name:&amp;quot;Add Link&amp;quot;,type:&amp;quot;nicLinkButton&amp;quot;,tags:[&amp;quot;A&amp;quot;]},unlink:{name:&amp;quot;Remove Link&amp;quot;,command:&amp;quot;unlink&amp;quot;,noActive:!0}}},nicLinkButton=nicEditorAdvancedButton.extend({addPane:function(){this.ln=this.ne.selectedInstance.selElm().parentTag(&amp;quot;A&amp;quot;),this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Link&amp;quot;},href:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},title:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Title&amp;quot;},target:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Open In&amp;quot;,options:{&amp;quot;&amp;quot;:&amp;quot;Current Window&amp;quot;,_blank:&amp;quot;New Window&amp;quot;},style:{width:&amp;quot;100px&amp;quot;}}},this.ln)},submit:function(t){var e=this.inputs.href.value;if(&amp;quot;http://&amp;quot;===e||&amp;quot;&amp;quot;===e)return alert(&amp;quot;You must enter a URL to Create a Link&amp;quot;),!1;if(this.removePane(),!this.ln){var n=&amp;quot;javascript:nicTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;createlink&amp;quot;,n),this.ln=this.findElm(&amp;quot;A&amp;quot;,&amp;quot;href&amp;quot;,n),this.ln.innerHTML==n&amp;amp;&amp;amp;(this.ln.innerHTML=this.inputs.title.value||e)}if(this.ln){var i=this.ln.title;this.ln.setAttributes({href:this.inputs.href.value,title:this.inputs.title.value,target:this.inputs.target.options[this.inputs.target.selectedIndex].value}),this.ln.innerHTML==i&amp;amp;&amp;amp;(this.ln.innerHTML=this.inputs.title.value||this.inputs.href.value)}}});nicEditors.registerPlugin(nicPlugin,nicLinkOptions);var nicColorOptions={buttons:{forecolor:{name:__(&amp;quot;Change Text Color&amp;quot;),type:&amp;quot;nicEditorColorButton&amp;quot;,noClose:!0},bgcolor:{name:__(&amp;quot;Change Background Color&amp;quot;),type:&amp;quot;nicEditorBgColorButton&amp;quot;,noClose:!0}}},nicEditorColorButton=nicEditorAdvancedButton.extend({addPane:function(){var t={0:&amp;quot;00&amp;quot;,1:&amp;quot;33&amp;quot;,2:&amp;quot;66&amp;quot;,3:&amp;quot;99&amp;quot;,4:&amp;quot;CC&amp;quot;,5:&amp;quot;FF&amp;quot;},e=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({width:&amp;quot;270px&amp;quot;});for(var n in t)for(var i in t)for(var s in t){var o=&amp;quot;#&amp;quot;+t[n]+t[s]+t[i],a=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({cursor:&amp;quot;pointer&amp;quot;,height:&amp;quot;15px&amp;quot;,float:&amp;quot;left&amp;quot;}).appendTo(e),r=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({border:&amp;quot;2px solid &amp;quot;+o}).appendTo(a),l=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({backgroundColor:o,overflow:&amp;quot;hidden&amp;quot;,width:&amp;quot;11px&amp;quot;,height:&amp;quot;11px&amp;quot;}).addEvent(&amp;quot;click&amp;quot;,this.colorSelect.closure(this,o)).addEvent(&amp;quot;mouseover&amp;quot;,this.on.closure(this,r)).addEvent(&amp;quot;mouseout&amp;quot;,this.off.closure(this,r,o)).appendTo(r);window.opera||(a.onmousedown=l.onmousedown=bkLib.cancelEvent)}this.pane.append(e.noSelect())},colorSelect:function(t){this.ne.nicCommand(&amp;quot;foreColor&amp;quot;,t),this.removePane()},on:function(t){t.setStyle({border:&amp;quot;2px solid #000&amp;quot;})},off:function(t,e){t.setStyle({border:&amp;quot;2px solid &amp;quot;+e})}}),nicEditorBgColorButton=nicEditorColorButton.extend({colorSelect:function(t){this.ne.nicCommand(&amp;quot;hiliteColor&amp;quot;,t),this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicColorOptions);var nicImageOptions={buttons:{image:{name:&amp;quot;Add Image&amp;quot;,type:&amp;quot;nicImageButton&amp;quot;,tags:[&amp;quot;IMG&amp;quot;]}}},nicImageButton=nicEditorAdvancedButton.extend({addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;),this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Add/Edit Image&amp;quot;},src:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;URL&amp;quot;,value:&amp;quot;http://&amp;quot;,style:{width:&amp;quot;150px&amp;quot;}},alt:{type:&amp;quot;text&amp;quot;,txt:&amp;quot;Alt Text&amp;quot;,style:{width:&amp;quot;100px&amp;quot;}},align:{type:&amp;quot;select&amp;quot;,txt:&amp;quot;Align&amp;quot;,options:{none:&amp;quot;Default&amp;quot;,left:&amp;quot;Left&amp;quot;,right:&amp;quot;Right&amp;quot;}}},this.im)},submit:function(t){var e=this.inputs.src.value;if(&amp;quot;&amp;quot;===e||&amp;quot;http://&amp;quot;===e)return alert(&amp;quot;You must enter a Image URL to insert&amp;quot;),!1;if(this.removePane(),!this.im){var n=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,n),this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,n)}this.im&amp;amp;&amp;amp;this.im.setAttributes({src:this.inputs.src.value,alt:this.inputs.alt.value,align:this.inputs.align.value})}});nicEditors.registerPlugin(nicPlugin,nicImageOptions);var nicSaveOptions={buttons:{save:{name:__(&amp;quot;Save this content&amp;quot;),type:&amp;quot;nicEditorSaveButton&amp;quot;}}},nicEditorSaveButton=nicEditorButton.extend({init:function(){this.ne.options.onSave||this.margin.setStyle({display:&amp;quot;none&amp;quot;})},mouseClick:function(){var t=this.ne.options.onSave,e=this.ne.selectedInstance;t(e.getContent(),e.elm.id,e)}});nicEditors.registerPlugin(nicPlugin,nicSaveOptions);var nicUploadOptions={buttons:{upload:{name:&amp;quot;Upload Image&amp;quot;,type:&amp;quot;nicUploadButton&amp;quot;}}},nicUploadButton=nicEditorAdvancedButton.extend({nicURI:&amp;quot;http://files.nicedit.com/&amp;quot;,addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag(&amp;quot;IMG&amp;quot;),this.myID=Math.round(Math.random()*Math.pow(10,15)),this.requestInterval=1e3,this.uri=this.ne.options.uploadURI||this.nicURI,nicUploadButton.lastPlugin=this,this.myFrame=new bkElement(&amp;quot;iframe&amp;quot;).setAttributes({width:&amp;quot;100%&amp;quot;,height:&amp;quot;100px&amp;quot;,frameBorder:0,scrolling:&amp;quot;no&amp;quot;}).setStyle({border:0}).appendTo(this.pane.pane),this.progressWrapper=new bkElement(&amp;quot;div&amp;quot;).setStyle({display:&amp;quot;none&amp;quot;,width:&amp;quot;100%&amp;quot;,height:&amp;quot;20px&amp;quot;,border:&amp;quot;1px solid #ccc&amp;quot;}).appendTo(this.pane.pane),this.progress=new bkElement(&amp;quot;div&amp;quot;).setStyle({width:&amp;quot;0%&amp;quot;,height:&amp;quot;20px&amp;quot;,backgroundColor:&amp;quot;#ccc&amp;quot;}).setContent(&amp;quot;&amp;amp;nbsp&amp;quot;).appendTo(this.progressWrapper),setTimeout(this.addForm.closure(this),50)},addForm:function(){var t=this.myDoc=this.myFrame.contentWindow.document;t.open(),t.write(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;quot;),t.write(&#039;&amp;lt;form method=&amp;quot;post&amp;quot; action=&amp;quot;&#039;+this.uri+&amp;quot;?id=&amp;quot;+this.myID+&#039;&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;&#039;),t.write(&#039;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;APC_UPLOAD_PROGRESS&amp;quot; value=&amp;quot;&#039;+this.myID+&#039;&amp;quot; /&amp;gt;&#039;),this.uri==this.nicURI&amp;amp;&amp;amp;t.write(&#039;&amp;lt;div style=&amp;quot;position: absolute; margin-left: 160px;&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://imageshack.us/img/imageshack.png&amp;quot; width=&amp;quot;30&amp;quot; style=&amp;quot;float: left;&amp;quot; /&amp;gt;&amp;lt;div style=&amp;quot;float: left; margin-left: 5px; font-size: 10px;&amp;quot;&amp;gt;Hosted by&amp;lt;br /&amp;gt;&amp;lt;a href=&amp;quot;http://www.imageshack.us/&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;ImageShack&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;),t.write(&#039;&amp;lt;div style=&amp;quot;font-size: 14px; font-weight: bold; padding-top: 5px;&amp;quot;&amp;gt;Insert an Image&amp;lt;/div&amp;gt;&#039;),t.write(&#039;&amp;lt;input name=&amp;quot;nicImage&amp;quot; type=&amp;quot;file&amp;quot; style=&amp;quot;margin-top: 10px;&amp;quot; /&amp;gt;&#039;),t.write(&amp;quot;&amp;lt;/form&amp;gt;&amp;quot;),t.write(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;),t.close(),this.myBody=t.body,this.myForm=$BK(this.myBody.getElementsByTagName(&amp;quot;form&amp;quot;)[0]),this.myInput=$BK(this.myBody.getElementsByTagName(&amp;quot;input&amp;quot;)[1]).addEvent(&amp;quot;change&amp;quot;,this.startUpload.closure(this)),this.myStatus=new bkElement(&amp;quot;div&amp;quot;,this.myDoc).setStyle({textAlign:&amp;quot;center&amp;quot;,fontSize:&amp;quot;14px&amp;quot;}).appendTo(this.myBody)},startUpload:function(){this.myForm.setStyle({display:&amp;quot;none&amp;quot;}),this.myStatus.setContent(&#039;&amp;lt;img src=&amp;quot;http://files.nicedit.com/ajax-loader.gif&amp;quot; style=&amp;quot;float: right; margin-right: 40px;&amp;quot; /&amp;gt;&amp;lt;strong&amp;gt;Uploading...&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt;Please wait&#039;),this.myForm.submit(),setTimeout(this.makeRequest.closure(this),this.requestInterval)},makeRequest:function(){if(this.pane&amp;amp;&amp;amp;this.pane.pane){nicUploadButton.lastPlugin=this;var t=new bkElement(&amp;quot;script&amp;quot;).setAttributes({type:&amp;quot;text/javascript&amp;quot;,src:this.uri+&amp;quot;?check=&amp;quot;+this.myID+&amp;quot;&amp;amp;rand=&amp;quot;+Math.round(Math.random()*Math.pow(10,15))}).addEvent(&amp;quot;load&amp;quot;,function(){t.parentNode.removeChild(t)}).appendTo(document.getElementsByTagName(&amp;quot;head&amp;quot;)[0]);this.requestInterval&amp;amp;&amp;amp;setTimeout(this.makeRequest.closure(this),this.requestInterval)}},setProgress:function(t){this.progressWrapper.setStyle({display:&amp;quot;block&amp;quot;}),this.progress.setStyle({width:t+&amp;quot;%&amp;quot;})},update:function(t){if(!1===t)this.progressWrapper.setStyle({display:&amp;quot;none&amp;quot;});else if(t.url){if(this.setProgress(100),this.requestInterval=!1,!this.im){this.ne.selectedInstance.restoreRng();var e=&amp;quot;javascript:nicImTemp();&amp;quot;;this.ne.nicCommand(&amp;quot;insertImage&amp;quot;,e),this.im=this.findElm(&amp;quot;IMG&amp;quot;,&amp;quot;src&amp;quot;,e)}var n=parseInt(this.ne.selectedInstance.elm.getStyle(&amp;quot;width&amp;quot;),10);this.im&amp;amp;&amp;amp;this.im.setAttributes({src:t.url,width:n&amp;amp;&amp;amp;t.width?Math.min(n,t.width):&amp;quot;&amp;quot;}),this.removePane()}else t.error?(this.requestInterval=!1,this.setProgress(100),alert(&amp;quot;There was an error uploading your image (&amp;quot;+t.error+&amp;quot;).&amp;quot;),this.removePane()):t.noprogress?(this.progressWrapper.setStyle({display:&amp;quot;none&amp;quot;}),-1!=this.uri.indexOf(&amp;quot;http:&amp;quot;)&amp;amp;&amp;amp;-1==this.uri.indexOf(window.location.host)||(this.requestInterval=!1)):(this.setProgress(Math.round(t.current/t.total*75)),t.interval&amp;amp;&amp;amp;(this.requestInterval=t.interval))}});nicUploadButton.statusCb=function(t){nicUploadButton.lastPlugin.update(t)},nicEditors.registerPlugin(nicPlugin,nicUploadOptions);var nicXHTML=bkClass.extend({stripAttributes:[&amp;quot;_moz_dirty&amp;quot;,&amp;quot;_moz_resizing&amp;quot;,&amp;quot;_extended&amp;quot;],noShort:[&amp;quot;style&amp;quot;,&amp;quot;title&amp;quot;,&amp;quot;script&amp;quot;,&amp;quot;textarea&amp;quot;,&amp;quot;a&amp;quot;],cssReplace:{&amp;quot;font-weight:bold;&amp;quot;:&amp;quot;strong&amp;quot;,&amp;quot;font-style:italic;&amp;quot;:&amp;quot;em&amp;quot;},sizes:{1:&amp;quot;xx-small&amp;quot;,2:&amp;quot;x-small&amp;quot;,3:&amp;quot;small&amp;quot;,4:&amp;quot;medium&amp;quot;,5:&amp;quot;large&amp;quot;,6:&amp;quot;x-large&amp;quot;},construct:function(t){this.ne=t,this.ne.options.xhtml&amp;amp;&amp;amp;t.addEvent(&amp;quot;get&amp;quot;,this.cleanup.closure(this))},cleanup:function(t){var e=t.getElm(),n=this.toXHTML(e);t.content=n},toXHTML:function(t,e,n){var i=&amp;quot;&amp;quot;,s=&amp;quot;&amp;quot;,o=&amp;quot;&amp;quot;,a=t.nodeType,r=t.nodeName.toLowerCase(),l=t.hasChildNodes&amp;amp;&amp;amp;t.hasChildNodes(),c=[];switch(a){case 1:var h=t.attributes;switch(r){case&amp;quot;b&amp;quot;:r=&amp;quot;strong&amp;quot;;break;case&amp;quot;i&amp;quot;:r=&amp;quot;em&amp;quot;;break;case&amp;quot;font&amp;quot;:r=&amp;quot;span&amp;quot;}if(e){for(var d=0;d&amp;lt;h.length;d++){var u=h[d],p=u.nodeName.toLowerCase(),m=u.nodeValue;if(u.specified&amp;amp;&amp;amp;m&amp;amp;&amp;amp;!bkLib.inArray(this.stripAttributes,p)&amp;amp;&amp;amp;&amp;quot;function&amp;quot;!=typeof m){switch(p){case&amp;quot;style&amp;quot;:var f=m.replace(/ /g,&amp;quot;&amp;quot;);for(var g in this.cssReplace)-1!=f.indexOf(g)&amp;amp;&amp;amp;(c.push(this.cssReplace[g]),f=f.replace(g,&amp;quot;&amp;quot;));o+=f,m=&amp;quot;&amp;quot;;break;case&amp;quot;class&amp;quot;:m=m.replace(&amp;quot;Apple-style-span&amp;quot;,&amp;quot;&amp;quot;);break;case&amp;quot;size&amp;quot;:o+=&amp;quot;font-size:&amp;quot;+this.sizes[m]+&amp;quot;;&amp;quot;,m=&amp;quot;&amp;quot;}m&amp;amp;&amp;amp;(s+=&amp;quot; &amp;quot;+p+&#039;=&amp;quot;&#039;+m+&#039;&amp;quot;&#039;)}}o&amp;amp;&amp;amp;(s+=&#039; style=&amp;quot;&#039;+o+&#039;&amp;quot;&#039;);for(var v=0;v&amp;lt;c.length;v++)i+=&amp;quot;&amp;lt;&amp;quot;+c[v]+&amp;quot;&amp;gt;&amp;quot;;&amp;quot;&amp;quot;===s&amp;amp;&amp;amp;&amp;quot;span&amp;quot;==r&amp;amp;&amp;amp;(e=!1),e&amp;amp;&amp;amp;(i+=&amp;quot;&amp;lt;&amp;quot;+r,&amp;quot;br&amp;quot;!=r&amp;amp;&amp;amp;(i+=s))}if(l||bkLib.inArray(this.noShort,p)){e&amp;amp;&amp;amp;(i+=&amp;quot;&amp;gt;&amp;quot;);for(var b=0;b&amp;lt;t.childNodes.length;b++){var y=this.toXHTML(t.childNodes[b],!0,!0);y&amp;amp;&amp;amp;(i+=y)}}else e&amp;amp;&amp;amp;(i+=&amp;quot; /&amp;gt;&amp;quot;);e&amp;amp;&amp;amp;l&amp;amp;&amp;amp;(i+=&amp;quot;&amp;lt;/&amp;quot;+r+&amp;quot;&amp;gt;&amp;quot;);for(var E=0;E&amp;lt;c.length;E++)i+=&amp;quot;&amp;lt;/&amp;quot;+c[E]+&amp;quot;&amp;gt;&amp;quot;;break;case 3:i+=t.nodeValue}return i}});nicEditors.registerPlugin(nicXHTML);var nicBBCode=bkClass.extend({construct:function(t){if(this.ne=t,this.ne.options.bbCode){t.addEvent(&amp;quot;get&amp;quot;,this.bbGet.closure(this)),t.addEvent(&amp;quot;set&amp;quot;,this.bbSet.closure(this));var e=this.ne.loadedPlugins;for(var n in e)e[n].toXHTML&amp;amp;&amp;amp;(this.xhtml=e[n])}},bbGet:function(t){var e=this.xhtml.toXHTML(t.getElm());t.content=this.toBBCode(e)},bbSet:function(t){t.content=this.fromBBCode(t.content)},toBBCode:function(t){function e(e,n){t=t.replace(e,n)}return e(/\n/gi,&amp;quot;&amp;quot;),e(/&amp;lt;strong&amp;gt;(.*?)&amp;lt;\/strong&amp;gt;/gi,&amp;quot;[b]$1[/b]&amp;quot;),e(/&amp;lt;em&amp;gt;(.*?)&amp;lt;\/em&amp;gt;/gi,&amp;quot;[i]$1[/i]&amp;quot;),e(/&amp;lt;span.*?style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;(.*?)&amp;lt;\/span&amp;gt;/gi,&amp;quot;[u]$1[/u]&amp;quot;),e(/&amp;lt;ul&amp;gt;(.*?)&amp;lt;\/ul&amp;gt;/gi,&amp;quot;[list]$1[/list]&amp;quot;),e(/&amp;lt;li&amp;gt;(.*?)&amp;lt;\/li&amp;gt;/gi,&amp;quot;[*]$1[/*]&amp;quot;),e(/&amp;lt;ol&amp;gt;(.*?)&amp;lt;\/ol&amp;gt;/gi,&amp;quot;[list=1]$1[/list]&amp;quot;),e(/&amp;lt;img.*?src=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;/gi,&amp;quot;[img]$1[/img]&amp;quot;),e(/&amp;lt;a.*?href=&amp;quot;(.*?)&amp;quot;.*?&amp;gt;(.*?)&amp;lt;\/a&amp;gt;/gi,&amp;quot;[url=$1]$2[/url]&amp;quot;),e(/&amp;lt;br.*?&amp;gt;/gi,&amp;quot;\n&amp;quot;),e(/&amp;lt;.*?&amp;gt;.*?&amp;lt;\/.*?&amp;gt;/gi,&amp;quot;&amp;quot;),t},fromBBCode:function(t){function e(e,n){t=t.replace(e,n)}return e(/\[b\](.*?)\[\/b\]/gi,&amp;quot;&amp;lt;strong&amp;gt;$1&amp;lt;/strong&amp;gt;&amp;quot;),e(/\[i\](.*?)\[\/i\]/gi,&amp;quot;&amp;lt;em&amp;gt;$1&amp;lt;/em&amp;gt;&amp;quot;),e(/\[u\](.*?)\[\/u\]/gi,&#039;&amp;lt;span style=&amp;quot;text-decoration:underline;&amp;quot;&amp;gt;$1&amp;lt;/span&amp;gt;&#039;),e(/\[list\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&amp;quot;),e(/\[list=1\](.*?)\[\/list\]/gi,&amp;quot;&amp;lt;ol&amp;gt;$1&amp;lt;/ol&amp;gt;&amp;quot;),e(/\[\*\](.*?)\[\/\*\]/gi,&amp;quot;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&amp;quot;),e(/\[img\](.*?)\[\/img\]/gi,&#039;&amp;lt;img src=&amp;quot;$1&amp;quot; /&amp;gt;&#039;),e(/\[url=(.*?)\](.*?)\[\/url\]/gi,&#039;&amp;lt;a href=&amp;quot;$1&amp;quot;&amp;gt;$2&amp;lt;/a&amp;gt;&#039;),e(/\n/gi,&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;),t}});nicEditors.registerPlugin(nicBBCode),nicEditor=nicEditor.extend({floatingPanel:function(){this.floating=new bkElement(&amp;quot;DIV&amp;quot;).setStyle({position:&amp;quot;absolute&amp;quot;,top:&amp;quot;-1000px&amp;quot;}).appendTo(document.body),this.addEvent(&amp;quot;focus&amp;quot;,this.reposition.closure(this)).addEvent(&amp;quot;blur&amp;quot;,this.hide.closure(this)),this.setPanel(this.floating)},reposition:function(){var t=this.selectedInstance.e;this.floating.setStyle({width:(parseInt(t.getStyle(&amp;quot;width&amp;quot;),10)||t.clientWidth)+&amp;quot;px&amp;quot;});var e=t.offsetTop-this.floating.offsetHeight;e&amp;lt;0&amp;amp;&amp;amp;(e=t.offsetTop+t.offsetHeight),this.floating.setStyle({top:e+&amp;quot;px&amp;quot;,left:t.offsetLeft+&amp;quot;px&amp;quot;,display:&amp;quot;block&amp;quot;})},hide:function(){this.floating.setStyle({top:&amp;quot;-1000px&amp;quot;})}});var nicCodeOptions={buttons:{xhtml:{name:&amp;quot;Edit HTML&amp;quot;,type:&amp;quot;nicCodeButton&amp;quot;}}},nicCodeButton=nicEditorAdvancedButton.extend({width:&amp;quot;350px&amp;quot;,addPane:function(){this.addForm({&amp;quot;&amp;quot;:{type:&amp;quot;title&amp;quot;,txt:&amp;quot;Edit HTML&amp;quot;},code:{type:&amp;quot;content&amp;quot;,value:this.ne.selectedInstance.getContent(),style:{width:&amp;quot;340px&amp;quot;,height:&amp;quot;200px&amp;quot;}}})},submit:function(t){var e=this.inputs.code.value;this.ne.selectedInstance.setContent(e),this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicCodeOptions);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:39:58 +0000</pubDate>
        </item>
        <item>
            <title>nicedit_niceditoricons_gif</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_niceditoricons_gif&amp;rev=1767790113</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;niceditoriconsgif&quot;&gt;nicEditorIcons.gif&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEditorIcons.gif&quot; class=&quot;urlextern&quot; title=&quot;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEditorIcons.gif&quot; rel=&quot;ugc nofollow&quot;&gt;https://cdnjs.cloudflare.com/ajax/libs/NicEdit/0.93/nicEditorIcons.gif&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit_niceditoricons_gif&amp;amp;media=software:development:web:docs:web:wysiwyg:niceditoricons.gif&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:niceditoricons.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:niceditoricons.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 12:48:33 +0000</pubDate>
        </item>
        <item>
            <title>nicedit</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit&amp;rev=1767790946</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nicedit&quot;&gt;NicEdit&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
NicEdit — это облегченный, кроссплатформенный редактор встроенного контента, позволяющий легко редактировать содержимое веб-сайта в режиме реального времени прямо в браузере.
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit&amp;amp;media=software:development:web:docs:web:wysiwyg:nicedit_live_1.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit_live_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:nicedit_live_1.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
NicEdit Javascript интегрируется в любой сайт за считанные секунды, позволяя сделать любой элемент/div редактируемым или преобразовать стандартные текстовые поля в редактор форматированного текста.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;NicEdit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nicedit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-766&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;документация&quot;&gt;Документация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This is the offical manual for the NicEdit &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; Editor.   NicEdit is a Lightweight, Cross Platform, Inline Content Editor to allow easy editing of web site content on the fly in the browser. To download it go to &lt;a href=&quot;http://nicedit.com/&quot; class=&quot;urlextern&quot; title=&quot;http://nicedit.com/&quot; rel=&quot;ugc nofollow&quot;&gt;http://nicedit.com/&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#about_nicedit&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;About NicEdit&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;NicEdit Reference&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#javascript_api&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Javascript API&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#configuration_options&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Configuration Options&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Plugin Reference&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#saving_via_ajax&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Saving via AJAX&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#xhtml_compliant_output&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;XHTML Compliant Output&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Customization&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#developing_with_nicedit&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Developing with NicEdit&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#creating_a_plugin&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Creating a Plugin&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#integration_with_nicedit_events&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Integration with NicEdit events&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#how_to_translate_nicedit_with_spanish_example&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;How to translate nicEdit (with Spanish example)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;767-1695&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;about_nicedit&quot;&gt;About NicEdit&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
NicEdit — это лёгкий, кроссплатформенный редактор встроенного контента, позволяющий легко редактировать содержимое веб-сайта на лету прямо в браузере. Этот небольшой и простой в использовании JavaScript-редактор интегрируется в любой сайт за считанные секунды, делая любой элемент/div редактируемым или преобразуя стандартные текстовые поля в форматированный текст.
&lt;/p&gt;

&lt;p&gt;
NicEdit был разработан Брайаном Кирхоффом и может свободно использоваться в любых целях под лицензией MIT.
&lt;/p&gt;

&lt;p&gt;
Функции:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Небольшой размер файла (&amp;lt;35 КБ в сумме), &amp;lt;10 КБ в сжатом виде!&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Для работы требуется всего 2 файла (js + иконки).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Гибкая конфигурация: замена текстовых полей или блоков div.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; При желании несколько редакторов могут использовать один элемент управления.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сохранение контента с помощью AJAX или HTTP POST&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;Internet Explorer&quot;&gt;IE&lt;/abbr&gt; 5.5+ / FF 2+ / Opera 9+ / Safari 3+&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;About NicEdit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;about_nicedit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1696-3167&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;nicedit_reference&quot;&gt;NicEdit Reference&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;NicEdit Reference&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nicedit_reference&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3168-3196&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;javascript_api&quot;&gt;Javascript API&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;class_niceditors&quot;&gt;Class nicEditors&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The nicEditors class provides convience methods to add NicEditor to the page or get a reference to a editor by ID
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;nicEditors.allTextAreas&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Converts all the textareas on the page info NicEditor instances.  Returns a reference to the array of all NicEdit instances on the page.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;nicEditors.findEditor&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Finds a specific editor by ID if created using allTextAreas explitly For example to get the nicedit instance for &lt;code&gt;&amp;lt;textarea id=«myArea2»&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/code&gt; use: &lt;code&gt;nicEditors.findEditor(&amp;#039;myArea2&amp;#039;);&lt;/code&gt; The method returns a nicedit instance that you call the functions below on. &lt;strong&gt;Warning:&lt;/strong&gt; In order to use this and other &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; methods, the editor must be finshed loading.  To see an example of how you can use addEvent to have your code run after editor load see Editor Events&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;nicEditors.editors[]&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;The raw array of all the NicEdit instances on the page&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3360-4105&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;class_nicinstance&quot;&gt;Class nicInstance&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The nicEditor instance class creates the editable area for a single element and provides a number of useful methods to developers.  You can get a reference to a specific nicInstance object using
&lt;code&gt;nicEditors.findEditor&lt;/code&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;[nicInstance].getContent()&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Returns the current &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; of the nicInstance For example: &lt;code&gt;nicEditors.findEditor(&amp;#039;myArea2&amp;#039;).getContent();&lt;/code&gt; returns the &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; in the content editor that replaced the element on the page with ID &amp;#039;myArea2&amp;#039;.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;[nicInstance].setContent(&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;)&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Set the current &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; in the editor instance For example: &lt;code&gt;nicEditors.findEditor(&amp;#039;myArea2&amp;#039;).setContent&lt;/code&gt;(&lt;code&gt;&amp;#039;&amp;lt;strong&amp;gt;Some &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;&amp;lt;/strong&amp;gt;&lt;/code&gt; here&amp;#039;);&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;[nicInstance].saveContent()&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Only for nicInstances that are replacing a &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; this method syncs the content of the editor with the textarea value. This is done automatically if the form with the orginal &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt; is submitted. However, you may want to explitly do the syncing yourself.&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4351-5074&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;class_niceditor&quot;&gt;Class nicEditor&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The nicEditor class is a container for a number of nicEditor instances and 1 nicPanel. 
Because of this you can use nicEditor in 2 ways:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create a single control panel with setPanel() then use addInstance multiple times to create as many editable areas on the page you need that are controlled from a single control panel.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Use the panelInstance() to create a combined content area/panel editor.  If you use this option and want multiple editors you should create multiple nicEditor instances.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;var myNicEditor = new nicEditor()&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Creates a new nicedit object. A single instance of nicEditor contains:- 1 or more editor instances (nicInstance/nicIFrameInstance) - 1 nicPanel&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;myNicEditor.addInstance(&amp;#039;someElementsID&amp;#039;)&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Adds a nicedit instance to allow inline editing of the given elements ID&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;code&gt;myNicEditor.removeInstance(&amp;#039;someElementID&amp;#039;)&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Removes the nicedit instance with the given ID, returning it to the orginal element with the content within the element.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;code&gt;myNicEditor.setPanel(&amp;#039;someElementID&amp;#039;)&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Append an editor control panel at the end of the given ID. Normally the element is blank and with a fixed &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; width you would like the panel set.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;code&gt;myNicEditor.panelInstance(&amp;#039;someElementID&amp;#039;)&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Creates an inline content editor with attached control panel on top of the element.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;code&gt;myNicEditor.instanceById(&amp;#039;someElementID&amp;#039;)&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Find a nicInstance object by ID that was added to this nicEditor&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;&lt;code&gt;myNicEditor.floatingPanel()&lt;/code&gt;	&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Activate a floating panel. First add editor instances to this editor with addInstance() then call floatingPanel(). When a instance is selected, a floating panel will appear above/below it.  * Requires nicFloating plugin&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5598-6768&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Javascript API&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;javascript_api&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3197-6769&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;configuration_options&quot;&gt;Configuration Options&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
NicEdit обладает широкими возможностями настройки: параметры конфигурации передаются при создании объекта NicEditor. Передавайте конфигурацию при вызове:
&lt;code&gt;new nicEditor({CONFIG HERE})&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Добавьте &lt;code&gt;.panelInstance(&amp;#039;ID TO TEXTAREA HERE&amp;#039;)&lt;/code&gt;, чтобы добавить редактор в текстовое поле.
&lt;/p&gt;

&lt;p&gt;
Вы можете указать несколько параметров конфигурации, они представлены в формате &lt;code&gt;JSON: {fullPanel : true, iconsPath : &amp;#039;nicEditorIcons.gif&amp;#039;, maxHeight : 200}&lt;/code&gt;
Обратите внимание, что некоторые параметры конфигурации, такие как список кнопок, не будут работать, если вы не загрузите версию NicEdit и не используете её на своём веб-сервере.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;доступные_параметры_конфигурации&quot;&gt;Доступные параметры конфигурации:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;fullPanel&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Если установлено значение true, будет создан экземпляр редактора со всеми доступными кнопками. Если значение &lt;code&gt;false&lt;/code&gt; (по умолчанию), для управления отображением кнопок будет использоваться buttonList.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;buttonList&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Например, массив кнопок в редакторе. &lt;code&gt;[&amp;#039;жирный&amp;#039;,&amp;#039;курсив&amp;#039;,&amp;#039;подчеркнутый&amp;#039;,&amp;#039;слева&amp;#039;,&amp;#039;по центру&amp;#039;]&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;iconsPath&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Строковый путь к файлу значков, например, &lt;code&gt;images/nicEditorIcons.gif&lt;/code&gt;.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;maxHeight&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Высота в пикселях, за пределы которой редактор не должен автоматически расширяться. Область редактирования может быть больше указанного значения, но в этом случае будут использоваться полосы прокрутки. Для редактора с фиксированной высотой (не динамически увеличивающегося) установите значение maxHeight и style=«height: X» равным одному и тому же значению в пикселях.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;externalCSS&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Относительный путь к внешней таблице стилей, применяемой к экземплярам iframe nicEditor (этот режим работы используется только в FF2). Пример: &lt;code&gt;{externalCSS : &amp;#039;mysite.css&amp;#039;}&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;uploadURI&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Абсолютный или относительный &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес скрипта-приемника nicUpload. Позволяет загружать изображения из nicedit на ваш собственный сервер. &lt;em class=&quot;u&quot;&gt;*Требуется nicUpload&lt;/em&gt; Пример:&lt;code&gt;{uploadURI: &amp;#039; &lt;a href=&quot;http://yourdomain.com/nicUpload.php&quot; class=&quot;urlextern&quot; title=&quot;http://yourdomain.com/nicUpload.php&quot; rel=&quot;ugc nofollow&quot;&gt;http://yourdomain.com/nicUpload.php&lt;/a&gt; &amp;#039;}&lt;/code&gt;. По умолчанию ( &lt;a href=&quot;http://files.nicedit.com/&quot; class=&quot;urlextern&quot; title=&quot;http://files.nicedit.com/&quot; rel=&quot;ugc nofollow&quot;&gt;http://files.nicedit.com/&lt;/a&gt; ) используется сервер Nicedit, а файлы загружаются на Imageshack. PHP-версию скрипта для загрузки файлов можно найти по адресу: &lt;a href=&quot;http://nicedit.com/svn/nicedit/trunk/nicUpload/php/nicUpload.php&quot; class=&quot;urlextern&quot; title=&quot;http://nicedit.com/svn/nicedit/trunk/nicUpload/php/nicUpload.php&quot; rel=&quot;ugc nofollow&quot;&gt;http://nicedit.com/svn/nicedit/trunk/nicUpload/php/nicUpload.php&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7868-10177&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;list_of_buttons_for_buttonlist_option&quot;&gt;List of Buttons for buttonList option&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;bold&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;italic&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;underline&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;left&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;center&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;right&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;justify&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;ol&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;ul&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;subscript&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;superscript&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;strikethrough&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;removeformat&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;indent&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;outdent&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;hr&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;image&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;upload&amp;#039; * requires nicUpload&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;forecolor&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;bgcolor&amp;#039;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;link&amp;#039; * requires nicLink&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;unlink&amp;#039; * requires nicLink&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;fontSize&amp;#039; * requires nicSelect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;fontFamily&amp;#039; * requires nicSelect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;fontFormat&amp;#039; * requires nicSelect&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &amp;#039;xhtml&amp;#039; * required nicCode&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configuration Options&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configuration_options&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;6770-10725&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;plugin_reference&quot;&gt;Plugin Reference&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Plugin Reference&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;plugin_reference&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;10726-10753&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;saving_via_ajax&quot;&gt;Saving via AJAX&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
NicEdit поддерживает наличие кнопки сохранения на панели инструментов, которую пользователи могут нажать для сохранения контента.
&lt;/p&gt;

&lt;p&gt;
Для использования этого режима вам потребуется базовое знание JavaScript, и вы должны выполнить следующие шаги:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сначала убедитесь, что вы настроили загрузку с помощью плагина nicSave.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Используйте параметр onSave при объявлении экземпляра nicEditor, например:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;bkLib.onDomLoaded ( function ( ) {​
  new nicEditor ( { fullPanel: true , onSave: function ( content, id, instance ) {
    alert ( &#039;Кнопка сохранения нажата для элемента &#039; + id + &#039; = &#039; + content ) ;
  } } ) . panelInstance ( &#039;myArea2&#039; ) ;
} ) ;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поскольку мы установили параметр onSave для нашей функции обратного вызова и добавили кнопку «Сохранить», значок сохранения появится на панели инструментов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; При нажатии кнопки будет запущена функция обратного вызова onSave с тремя параметрами.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Первый параметр — это содержимое экземпляра nicEditor.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Второй параметр — это идентификатор элемента, преобразованного в nicEditor.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Третий параметр — это ссылка на nicInstance (подробнее об этом см. в документации по &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#javascript_api&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;Javascript API&lt;/a&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Saving via AJAX&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;saving_via_ajax&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;10754-12661&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;xhtml_compliant_output&quot;&gt;XHTML Compliant Output&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
=== В чем проблема?
NicEdit генерирует некорректный, не соответствующий стандартам код, который выглядит по-разному в каждом браузере и приводит к сбоям в работе редактора, если редактирование выполняется в браузере, отличном от того, который использовался для создания контента.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;почему_это_проблема&quot;&gt;Почему это проблема?&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Применение стилей и очистка &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода — самая сложная задача при создании &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;-редактора, и я так и не смог её решить с помощью nicEdit. Для полностью совместимой с XHTML системы необходимы два компонента:
&lt;/p&gt;

&lt;p&gt;
Во-первых, нам нужно реализовать все кнопки nicEdit таким образом, чтобы они перестали использовать поведение &lt;code&gt;execCommand()&lt;/code&gt; браузера и применяли свои стили непосредственно к выделению/диапазонам. Это решит проблемы, подобные тем, с которыми вы сталкивались при применении команд к различным способам применения одного и того же стиля (например, &lt;code&gt;&amp;lt;b&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;strong&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;span style=«font-weight: bold»&amp;gt;&lt;/code&gt;), и позволит редактору обрабатывать все три стиля в своем содержимом, а не использовать стандартное поведение браузера, которое не отличается гибкостью.
Во-вторых, nicEdit будет выполнять очистку &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода во время доступа (подобно тому, как это пытается делать nicXHTML, но пока с ошибками), чтобы обрабатывать другой контент, который не применяется через элементы управления редактора (например, при вставке контента).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;что_доступно_сейчас&quot;&gt;Что доступно сейчас?&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
На данный момент плагин &lt;code&gt;nicXHTML&lt;/code&gt; находится в экспериментальной стадии и не решает эту проблему полностью. Чтобы попробовать его в действии, скачайте плагин с nicXHTML, а затем добавьте &lt;code&gt;{xhtml : true}&lt;/code&gt; в параметры. Известно множество проблем с его реализацией.
&lt;/p&gt;

&lt;p&gt;
Ещё один вариант, который я рекомендовал и который может подойти некоторым, — это использование стратегий очистки на стороне сервера, таких как функции &lt;code&gt;tidy&lt;/code&gt; в PHP, для очистки &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода, создаваемого `nicEdit`. Однако это решение не будет доступно всем, усложняет процесс и не является идеальным.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;когда_я_могу_ожидать_исправления_этой_проблемы&quot;&gt;Когда я могу ожидать исправления этой проблемы?&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Предстоит много работы, сделать это правильно немного сложнее, чем просто взять другую реализацию, например tinyMCE, и интегрировать её в nicEdit. NicEdit — это побочный проект, у меня есть основная работа, поэтому у меня нет нескольких свободных недель, которые потребовались бы для этого. Но я буду продолжать работать, когда смогу, и буду рад любым исправлениям для nicXHTML, а также любым новым плагинам, которые работают лучше (я включу любые сторонние плагины в загрузчик).
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;пример_использования_функции_tidy_в_php_для_очистки_кода&quot;&gt;Пример использования функции &amp;#039;&amp;#039;tidy&amp;#039;&amp;#039; в PHP для очистки кода:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;tidy_repair_string(
         $_POST[&#039;body&#039;],
            array(
                &#039;show-body-only&#039; =&amp;gt; true,
                &#039;doctype&#039; =&amp;gt; &#039;-//W3C//DTD XHTML 1.0 Transitional//EN&#039;,
                &#039;output-xhtml&#039; =&amp;gt; true
                  )
);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;XHTML Compliant Output&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xhtml_compliant_output&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;12662-17383&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;customization&quot;&gt;Customization&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Customization&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;customization&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17384-17409&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;developing_with_nicedit&quot;&gt;Developing with NicEdit&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Разработка дополнительных плагинов и внесение других изменений в исходный код NicEdit не представляет сложности.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;ознакомьтесь_с_кодом&quot;&gt;Ознакомьтесь с кодом.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Сначала получите копию исходного кода, клонировав репозиторий NicEdit из SVN.
&lt;/p&gt;

&lt;p&gt;
svn co &lt;a href=&quot;http://svn.nicedit.com/trunk&quot; class=&quot;urlextern&quot; title=&quot;http://svn.nicedit.com/trunk&quot; rel=&quot;ugc nofollow&quot;&gt;http://svn.nicedit.com/trunk&lt;/a&gt; src
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;используйте_кодекс_разработки&quot;&gt;Используйте Кодекс разработки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Для использования NicEdit с набором отдельных JavaScript-файлов для разработки вам потребуется включить их в раздел &amp;lt;head&amp;gt; создаваемой вами тестовой страницы. Вот пример для начала работы.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/bkLib.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicConfig.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicCore.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicInstance.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicIFrameInstance.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicPanel.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicButton.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCore/nicPlugin.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicPane/nicPane.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicSelect/nicSelect.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicButtonTips/nicButtonTips.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicAdvancedButton/nicAdvancedButton.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicLink/nicLink.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicImage/nicImage.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicCode/nicCode.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicColors/nicColors.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicXHTML/nicXHTML.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;src/nicBBCode/nicBBCode.js&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea style&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width: 400px; height: 150px;&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;myArea2&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
This is some TEST CONTENT
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
bkLib&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;onDomLoaded&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; myInstance &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; nicEditor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;panelInstance&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;myArea2&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Developing with NicEdit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;developing_with_nicedit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;17410-19891&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;creating_a_plugin&quot;&gt;Creating a Plugin&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Добавить плагин/кнопки в NiceDit несложно. Сначала убедитесь, что вы настроили свою &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit#developing_with_nicedit&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit&quot;&gt;среду разработки&lt;/a&gt;, а затем выполните следующие шаги:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создайте новую папку для вашего плагина в каталоге src/, в этом примере я использовал nicExample.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создайте файл с тем же именем в папке src/nicExample/nicExample.js&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Вы можете использовать приведенный ниже код в качестве отправной точки для вашего плагина.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;/**
* nicExample
* @description: An example button plugin for nicEdit
* @requires: nicCore, nicPane, nicAdvancedButton
* @author: Brian Kirchoff
* @version: 0.9.0
*/
&amp;nbsp;
/* START CONFIG */
var nicExampleOptions = {
    buttons : {
        &#039;example&#039; : {name : __(&#039;Some alt text for the button&#039;), type : &#039;nicEditorExampleButton&#039;}
    }/* NICEDIT_REMOVE_START */,iconFiles : {&#039;example&#039; : &#039;src/nicExample/icons/save.gif&#039;}/* NICEDIT_REMOVE_END */
};
/* END CONFIG */
&amp;nbsp;
var nicEditorExampleButton = nicEditorButton.extend({   
  mouseClick : function() {
    alert(&#039;The example save button icon has been clicked!&#039;);
  }
});
&amp;nbsp;
nicEditors.registerPlugin(nicPlugin,nicExampleOptions);
Car Shipping&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скопируйте и вставьте код в свой JS-файл.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создайте папку icons в папке вашего плагина (например, src/nicExample/icons) и поместите туда свои иконки (в данном случае  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit&amp;amp;media=software:development:web:docs:web:wysiwyg:save_buttom_nicedit.gif&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:save_buttom_nicedit.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:save_buttom_nicedit.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;save.gif&quot; alt=&quot;save.gif&quot; /&gt;&lt;/a&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;чтобы_объяснить_различные_части_примера&quot;&gt;Чтобы объяснить различные части примера:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;co4&quot;&gt;/**
* nicExample
* @description: Пример плагина кнопок для nicEdit
* @requires: nicCore, nicPane, nicAdvancedButton
* @автор: Брайан Кирхофф
* @version: 0.9.0
*/&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Это специальный блок комментариев, используемый скриптами сжатия nicEdit, и он должен присутствовать в каждом плагине, который необходимо включить в загрузчик.
&lt;/p&gt;

&lt;p&gt;
Большинство полей понятны. Параметр @requires должен указывать, какие плагины являются зависимостями для вашего плагина (используется конфигуратором загрузки).
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* НАЧАЛО КОНФИГУРАЦИИ */&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nicExampleOptions &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    кнопки&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;example&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;name &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; __&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Некоторый альтернативный текст для кнопки&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; type &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;nicEditorExampleButton&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* NICEDIT_REMOVE_START */&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;iconFiles &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;example&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;src/nicExample/icons/save.gif&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* NICEDIT_REMOVE_END */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* КОНЕЦ КОНФИГУРАЦИИ */&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
В разделе config вы настраиваете конфигурацию кнопок для вашего плагина. Параметр &amp;#039;type&amp;#039; в объекте buttons указывает конкретный класс, который будет использоваться (по умолчанию это будет nicButton), куда вы поместите код ваших кнопок. 
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* NICEDIT_REMOVE_START */&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Блоки удаляются из выходных данных скриптами сборки.
&lt;/p&gt;

&lt;p&gt;
В поле iconFiles следует указывать относительное местоположение отдельных значков кнопок в формате GIF, находящихся в разработке. В данном случае значение ключа &amp;#039;example&amp;#039; и элемент iconFiles с указанным путем должны совпадать.
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* НАЧАЛО КОНФИГУРАЦИИ */&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Используется только для предотвращения сжатия пробелов в разделах конфигурации скриптом сборки.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;var nicEditorExampleButton = nicEditorButton.extend({   
  mouseClick : function() {
    alert(&#039;Пример значка кнопки сохранения был нажат!&#039;);
  }
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это класс, который определяет вашу кнопку; в данном случае мы переопределяем метод &lt;code&gt;mouseClick()&lt;/code&gt; для обработки нажатия кнопки.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Существует также класс nicEditorAdvancedButton&lt;/code&gt;, который могут использовать кнопки плагинов, которым требуется, чтобы функциональность панели имела форму (см. src/nicLink/nicLink.js) для примера того, как это можно сделать.
&lt;br/&gt;

&lt;code&gt;nicEditors.registerPlugin(nicPlugin,nicExampleOptions);&lt;/code&gt;
&lt;br/&gt;

Это зарегистрирует ваш плагин, чтобы все новые созданные экземпляры могли его использовать (убедитесь, что вы используете &lt;code&gt;{fullPanel : true}&lt;/code&gt; или задаете buttonList с идентификатором кнопки, в данном случае &amp;#039;example&amp;#039;), и вы сможете увидеть свою новую кнопку на панели инструментов nicEdit.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;вскоре&quot;&gt;Вскоре:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
- Как использовать скрипты сборки для упаковки вашего плагина (а не просто запускать его как отдельный JS-файл) после того, как он заработает (пока что напишите мне на почту или опубликуйте свой плагин на форуме, если он окажется полезным, я даже включу его в официальный загрузчик Nicedit).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Creating a Plugin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;creating_a_plugin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;19892-26117&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;integration_with_nicedit_events&quot;&gt;Integration with NicEdit events&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 Ядро nicEdit отправляет несколько внутренних событий, которые можно использовать в плагинах и в вашем собственном JavaScript при расширенной интеграции редактора в ваши веб-сайты.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit18&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;blur&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Отправляется, когда экземпляр редактора теряет фокус.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;focus&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Отправлять, когда редактор получает фокус (то есть, когда кто-то щелкает внутри него).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;key&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Когда пользователь нажимает сочетание клавиш (например, Ctrl+B).&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;add&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Событие срабатывает при добавлении нового экземпляра.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;panel&lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;	Событие срабатывает при инициализации панели инструментов для новых экземпляров (это предпочтительное событие, если вы хотите добавить функцию при создании экземпляров NicEdit).&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;26478-27307&amp;quot;} --&gt;
&lt;p&gt;
Для привязки функций к внутренним событиям NicEdit используйте метод &lt;code&gt;addEvent&lt;/code&gt; объекта nicInstance.
&lt;br/&gt;

&lt;code&gt;[some nicedit instance].addEvent([event name], [callback function]);&lt;/code&gt;
&lt;br/&gt;

События также часто используются для того, чтобы сообщить о завершении загрузки редактора.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;bkLib.onDomLoaded(function(){
  var myEditor = new nicEditor({fullPanel : true }).panelInstance(&#039;myArea2&#039;);
  myEditor.addEvent(&#039;add&#039;, function() {
    alert( myEditor.instanceById(&#039;myArea2&#039;).getContent() );
  });
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Ещё один пример использования событий для определения момента размытия изображения в редакторе.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
bkLib.onDomLoaded(function(){
  var myInstance = new nicEditor().panelInstance(&#039;myArea2&#039;);
  myInstance.addEvent(&#039;blur&#039;, function() {
    // Your code here that is called whenever the user blurs (stops editing) the nicedit instance
  });
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Integration with NicEdit events&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;integration_with_nicedit_events&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;26118-28436&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;how_to_translate_nicedit_with_spanish_example&quot;&gt;How to translate nicEdit (with Spanish example)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скачать версию для разработчиков&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Откройте файл nicEdit.js&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Перейдите к этим нескольким строкам и отредактируйте текст справки, например, перевод на испанский будет выглядеть так:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;примерно_строка_252&quot;&gt;Примерно строка 252:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;var nicEditorConfig = bkClass.extend({
    buttons : {
        &#039;bold&#039; : {name : __(&#039;Negrita&#039;), command : &#039;Bold&#039;, tags : [&#039;B&#039;,&#039;STRONG&#039;], css : {&#039;font-weight&#039; : &#039;bold&#039;}, key : &#039;b&#039;},
        &#039;italic&#039; : {name : __(&#039;Cursiva&#039;), command : &#039;Italic&#039;, tags : [&#039;EM&#039;,&#039;I&#039;], css : {&#039;font-style&#039; : &#039;italic&#039;}, key : &#039;i&#039;},
        &#039;underline&#039; : {name : __(&#039;Subrayado&#039;), command : &#039;Underline&#039;, tags : [&#039;U&#039;], css : {&#039;text-decoration&#039; : &#039;underline&#039;}, key : &#039;u&#039;},
        &#039;left&#039; : {name : __(&#039;Alinear texto a la izquierda&#039;), command : &#039;justifyleft&#039;, noActive : true},
        &#039;center&#039; : {name : __(&#039;Centrar texto&#039;), command : &#039;justifycenter&#039;, noActive : true},
        &#039;right&#039; : {name : __(&#039;Alinear texto a la derecha&#039;), command : &#039;justifyright&#039;, noActive : true},
        &#039;justify&#039; : {name : __(&#039;Justificar texto&#039;), command : &#039;justifyfull&#039;, noActive : true},
        &#039;ol&#039; : {name : __(&#039;Insertar lista ordenada&#039;), command : &#039;insertorderedlist&#039;, tags : [&#039;OL&#039;]},
        &#039;ul&#039; :     {name : __(&#039;Insertar lista desordenada&#039;), command : &#039;insertunorderedlist&#039;, tags : [&#039;UL&#039;]},
        &#039;subscript&#039; : {name : __(&#039;SubIndice&#039;), command : &#039;subscript&#039;, tags : [&#039;SUB&#039;]},
        &#039;superscript&#039; : {name : __(&#039;SuperIndice&#039;), command : &#039;superscript&#039;, tags : [&#039;SUP&#039;]},
        &#039;strikethrough&#039; : {name : __(&#039;Tachar&#039;), command : &#039;strikeThrough&#039;, css : {&#039;text-decoration&#039; : &#039;line-through&#039;}},
        &#039;removeformat&#039; : {name : __(&#039;Borrar formato&#039;), command : &#039;removeformat&#039;, noActive : true},
        &#039;indent&#039; : {name : __(&#039;Identar&#039;), command : &#039;indent&#039;, noActive : true},
        &#039;outdent&#039; : {name : __(&#039;Eliminar identado&#039;), command : &#039;outdent&#039;, noActive : true},
        &#039;hr&#039; : {name : __(&#039;Barra separadora&#039;), command : &#039;insertHorizontalRule&#039;, noActive : true}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;примерно_строка_1046&quot;&gt;Примерно строка 1046:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;var nicLinkOptions = {
    buttons : {
        &#039;link&#039; : {name : &#039;Enlazar&#039;, type : &#039;nicLinkButton&#039;, tags : [&#039;A&#039;]},
        &#039;unlink&#039; : {name : &#039;Eliminar enlace&#039;,  command : &#039;unlink&#039;, noActive : true}
    }&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;примерно_строка_1120&quot;&gt;Примерно строка 1120:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;var nicCodeOptions = {
    buttons : {
        &#039;xhtml&#039; : {name : &#039;Visualizar HTML&#039;, type : &#039;nicCodeButton&#039;}
    }
};&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;примерно_строка_1131&quot;&gt;Примерно строка 1131:&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:nicedit&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;    addPane : function() {
        this.addForm({
            &#039;&#039; : {type : &#039;title&#039;, txt : &#039;Editar HTML&#039;},
            &#039;code&#039; : {type : &#039;content&#039;, &#039;value&#039; : this.ne.selectedInstance.getContent(), style : {width: &#039;340px&#039;, height : &#039;200px&#039;}}
        });
    },&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;How to translate nicEdit (with Spanish example)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;how_to_translate_nicedit_with_spanish_example&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;28437-31403&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:nicedit-5861cebf02e167b2cc8ca4672c3a478d.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit-5861cebf02e167b2cc8ca4672c3a478d.zip (18.8 KB)&quot;&gt;Сжатый NicEdit (без пробелов и комментариев). Рекомендуется для развертывания NicEdit.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:nicedit-4ad98f51fafd99ef01e4eff35af7c570.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit-4ad98f51fafd99ef01e4eff35af7c570.zip (20.9 KB)&quot;&gt;Несжатая версия NicEdit для разработки. Используйте её только для отладки или разработки NicEdit.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit&amp;amp;media=software:development:web:docs:web:wysiwyg:ajax-loader.gif&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:ajax-loader.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:ajax-loader.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_latest_js&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit_nicedit_latest_js&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit_nicedit_latest_js&quot;&gt;nicEdit-latest.js&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:nicedit_nicedit_js_n&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicedit_nicedit_js_n&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:nicedit_nicedit_js_n&quot;&gt;nicEdit.js&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit&amp;amp;media=software:development:web:docs:web:wysiwyg:nicediticons-latest.gif&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:nicediticons-latest.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:nicediticons-latest.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;nicEditIcons-latest.gif&quot; alt=&quot;nicEditIcons-latest.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Anicedit&amp;amp;media=software:development:web:docs:web:wysiwyg:niceditoricons_1_.gif&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:niceditoricons_1_.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:niceditoricons_1_.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;nicEditorIcons.gif&quot; alt=&quot;nicEditorIcons.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;31404-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 13:02:26 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_custom_commands</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;rev=1767742388</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sceditor_пользовательские_команды&quot;&gt;SCEditor пользовательские команды&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Чтобы добавить команду на панель инструментов, используйте следующую $.sceditor.command.set функцию:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;test.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
$&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;command&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;headers&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;caller&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;	editor   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; this&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;div /&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
			$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
				&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;a class=&amp;quot;sceditor-header-option&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;
					&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;h&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;gt;Heading &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;/h&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;gt;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;
				&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;/a&amp;gt;&#039;&lt;/span&gt;
			&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;headersize&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;click&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
				editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;execCommand&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;formatblock&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;this&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;headersize&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;closeDropDown&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
				e&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;preventDefault&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;appendTo&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
		editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;createDropDown&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;caller&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;header-picker&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;get&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	tooltip&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Format Headers&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Добавьте команды &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;	&lt;span class=&quot;re1&quot;&gt;.sceditor-button-headers&lt;/span&gt; div &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://d33wubrfki0l68.cloudfront.net/31586b20f376f87c81414430a7a1f70582486856/de066/misc/headers-button.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;text-decoration&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#222&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h3&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h4&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h5&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt; h6 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;.25em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;re1&quot;&gt;.sceditor-header-option&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;hover&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#eee&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Затем, если вы используете плагин BBCode, добавьте команды BBCode, используя следующую $.formats.bbcode.set функцию:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$.sceditor.formats.bbcode
.set(&amp;quot;h1&amp;quot;, { tags: { h1: null }, format: &amp;quot;[h1]{0}[/h1]&amp;quot;, html: &amp;quot;&amp;lt;h1&amp;gt;{0}&amp;lt;/h1&amp;gt;&amp;quot;, isInline: false })
.set(&amp;quot;h2&amp;quot;, { tags: { h2: null }, format: &amp;quot;[h2]{0}[/h2]&amp;quot;, html: &amp;quot;&amp;lt;h2&amp;gt;{0}&amp;lt;/h2&amp;gt;&amp;quot;, isInline: false })
.set(&amp;quot;h3&amp;quot;, { tags: { h3: null }, format: &amp;quot;[h3]{0}[/h3]&amp;quot;, html: &amp;quot;&amp;lt;h3&amp;gt;{0}&amp;lt;/h3&amp;gt;&amp;quot;, isInline: false })
.set(&amp;quot;h4&amp;quot;, { tags: { h4: null }, format: &amp;quot;[h4]{0}[/h4]&amp;quot;, html: &amp;quot;&amp;lt;h4&amp;gt;{0}&amp;lt;/h4&amp;gt;&amp;quot;, isInline: false })
.set(&amp;quot;h5&amp;quot;, { tags: { h5: null }, format: &amp;quot;[h5]{0}[/h5]&amp;quot;, html: &amp;quot;&amp;lt;h5&amp;gt;{0}&amp;lt;/h5&amp;gt;&amp;quot;, isInline: false })
.set(&amp;quot;h6&amp;quot;, { tags: { h6: null }, format: &amp;quot;[h6]{0}[/h6]&amp;quot;, html: &amp;quot;&amp;lt;h6&amp;gt;{0}&amp;lt;/h6&amp;gt;&amp;quot;, isInline: false });&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Наконец, добавьте команду на панель инструментов редактора:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$(&amp;quot;#demo-cust-cmd&amp;quot;).sceditor({
format: &#039;bbcode&#039;,
toolbar: &amp;quot;headers|bold,italic,underline|source&amp;quot;,
style: &amp;quot;https://cdn.jsdelivr.net/npm/sceditor@latest/minified/themes/content/default.min.css&amp;quot;,
emoticonsRoot: &amp;quot;/&amp;quot;
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Пример всего кода
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_custom_commands&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;!&lt;/span&gt;DOCTYPE html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;html lang&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta charset&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/link&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;link&lt;/span&gt;&lt;/a&gt; rel&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; href&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@latest/minified/themes/default.min.css&amp;quot;&lt;/span&gt; type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; media&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;all&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt; src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@latest/minified/jquery.sceditor.bbcode.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;style&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;button&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;headers div &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; background&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; url&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://d33wubrfki0l68.cloudfront.net/31586b20f376f87c81414430a7a1f70582486856/de066/misc/headers-button.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		display&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; block&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		cursor&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; pointer&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		font&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;size&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; 14px&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		text&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;decoration&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		color&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#222;
&lt;/span&gt;	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h3&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h4&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h5&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option h6 &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		border&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		margin&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		padding&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;25em&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;header&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;option&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;hover &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; background&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;co2&quot;&gt;#eee; }
&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;style&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
$&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;command&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;headers&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;a href=&quot;http://www.php.net/exec&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;caller&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt;	editor   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; this&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;div /&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;sy0&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
			$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
				&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;a class=&amp;quot;sceditor-header-option&amp;quot; href=&amp;quot;#&amp;quot;&amp;gt;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;
					&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;h&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;gt;Heading &#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;/h&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&amp;gt;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;
				&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;lt;/a&amp;gt;&#039;&lt;/span&gt;
			&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;headersize&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;click&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
				editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;execCommand&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;formatblock&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;this&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;headersize&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;closeDropDown&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
				e&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;preventDefault&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;appendTo&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
		editor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;createDropDown&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;caller&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;header-picker&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;get&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	tooltip&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Format Headers&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
	$&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;formats&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;bbcode
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h1]{0}[/h1]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h1&amp;gt;{0}&amp;lt;/h1&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h2&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h2&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h2]{0}[/h2]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h2&amp;gt;{0}&amp;lt;/h2&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h3&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h3&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h3]{0}[/h3]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h3&amp;gt;{0}&amp;lt;/h3&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h4&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h4&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h4]{0}[/h4]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h4&amp;gt;{0}&amp;lt;/h4&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h5&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h5]{0}[/h5]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h5&amp;gt;{0}&amp;lt;/h5&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
		&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;set&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;h6&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; tags&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; h6&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[h6]{0}[/h6]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;h6&amp;gt;{0}&amp;lt;/h6&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; isInline&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
	$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#demo-cust-cmd&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;sceditor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;bbcode&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
		toolbar&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;headers|bold,italic,underline|source&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
		style&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@latest/minified/themes/content/default.min.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
		emoticonsRoot&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;textarea style&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width:600px; height:300px&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;demo-cust-cmd&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;h1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;Lorem ipsum&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;h1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;h2&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;Sub &lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;h2&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;Lorem ipsum dolor sit amet&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; consectetur adipiscing elit&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sed &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt; eiusmod tempor incididunt ut Labore et dolore magna aliqua&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Ut enim ad minim veniam&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; quis nostrum ullamco Laboris Nisi ut aliquip ex ea commodo consequat&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Duis aute irure dolor в осуждении за сладострастие velit esse cillum dolore eu fugiat nulla pariatur&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; Excepteur sint ocaecat cupidatat not proident&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sunt in culpa qui officia deserunt mollit anim id est Laborum&lt;span class=&quot;sy0&quot;&gt;.&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor_custom_commands&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_6.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;a href=&quot;https://www.sceditor.com/posts/how-to-add-custom-commands/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/posts/how-to-add-custom-commands/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 06 Jan 2026 23:33:08 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_doc_custom_bbcodes</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;rev=1767777404</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;пользовательские_bbcodes&quot;&gt;Пользовательские BBCodes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 BBCodes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435_bbcodes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-55&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;создание_обновление_bbcodes&quot;&gt;Создание/обновление BBCodes&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для добавления нового BBCode используйте &lt;strong&gt;sceditor.formats.bbcode.set()&lt;/strong&gt; соответствующую функцию.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:При создании или обновлении BBCode это необходимо сделать до создания экземпляра редактора, например, до вызова метода sceditor.create().

&lt;/div&gt;&lt;div class=&quot;plugin_note noteyellow&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Предупреждение: Эта функция обновит любой существующий BBCode с тем же именем.

&lt;/div&gt;
&lt;p&gt;
Функция &lt;strong&gt;sceditor.formats.bbcode.set()&lt;/strong&gt; принимает два аргумента, &lt;strong&gt;name&lt;/strong&gt; и &lt;strong&gt;bbcode&lt;/strong&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; name String&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
должна содержать имя BBCode, например &lt;strong&gt;[b]&lt;/strong&gt;, &lt;strong&gt;«b»&lt;/strong&gt;. Это значение должно быть написано строчными буквами!
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Объект bbcode.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Объект BBCode. Дополнительную информацию см. ниже.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 BBCodes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_bbcodes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;56-1125&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;структура_объекта_bbcode&quot;&gt;Структура объекта BBCode&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;{
    styles: {
        &amp;quot;stylename&amp;quot;: null,
        &amp;quot;another-style-name&amp;quot;: [&amp;quot;value1&amp;quot;, &amp;quot;value2&amp;quot;]
    }
    tags: {
        &amp;quot;tag&amp;quot;: null,
        &amp;quot;another-tag&amp;quot;: {
            &amp;quot;attribute1&amp;quot;: null,
            &amp;quot;attribute2&amp;quot;: [&amp;quot;value1&amp;quot;, &amp;quot;value2&amp;quot;]
        }
    }
    isSelfClosing: false,
    isInline: true,
    isHtmlInline: undefined,
    allowedChildren: null,
    allowsEmpty: false,
    excludeClosing: false,
    skipLastLineBreak: false,
    strictMatch: false,
&amp;nbsp;
    breakBefore: false,
    breakStart: false,
    breakEnd: false,
    breakAfter: false,
&amp;nbsp;
    format: &#039;string|function&#039;,
    html: &#039;string|function&#039;,
&amp;nbsp;
    quoteType: sceditor.BBCodeParser.QuoteType.auto
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 BBCode&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_\u043e\u0431\u044a\u0435\u043a\u0442\u0430_bbcode&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1126-1874&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;структура_объекта_bbcode1&quot;&gt;Структура объекта BBCode&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;styles_object_по_умолчанию_используется_null&quot;&gt;styles object По умолчанию используется null&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Все совпадающие теги будут переданы в &lt;strong&gt;format&lt;/strong&gt; функцию или строку для преобразования в BBCode.
&lt;/p&gt;

&lt;p&gt;
Чтобы сопоставить все вхождения стиля &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; с определенным значением, выполните следующее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;style-name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;value1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;value2&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Любой DOM-узел, имеющий стиль &lt;strong&gt;style-name&lt;/strong&gt; со значением &lt;strong&gt;value1&lt;/strong&gt; или &lt;strong&gt;value2&lt;/strong&gt; будет сопоставлен и передан свойству &lt;strong&gt;format&lt;/strong&gt; для преобразования.
&lt;/p&gt;

&lt;p&gt;
Чтобы найти все вхождения стиля независимо от его значения, выполните следующие действия:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;style-name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; null&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это nullозначает, что значение свойства &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; не имеет значения, важно лишь то, что узел обладает этим свойством style-name.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteyellow&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Предупреждение: 
В настоящее время невозможно одновременно применять свойства `styles` и `tags` к элементам &lt;code&gt;styles&lt;/code&gt; и &lt;code&gt;tags&lt;/code&gt; тегам.
&lt;p&gt;
Чтобы выбрать тег с определенными стилями, выберите его с помощью &lt;code&gt;tags&lt;/code&gt; свойства, а затем в методе &lt;code&gt;format&lt;/code&gt; проверьте, имеет ли узел нужные стили. Если да, обработайте запрос, в противном случае просто верните содержимое.
&lt;/p&gt;

&lt;p&gt;
Например:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;format: function(element, content) {
    // Only handle tags with the font-weight: bold style
    if(element.style.fontWeight !== &#039;bold&#039;) {
        return content;
    }
return &#039;[b]&#039; + content + &#039;[/b]&#039;;
&amp;nbsp;
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;p&gt;
Способ сопоставления можно изменить, изменив свойство &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot;&gt;strictMatch.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 BBCode&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_\u043e\u0431\u044a\u0435\u043a\u0442\u0430_bbcode1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1875-4095&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;tags&quot;&gt;tags&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;tags_object_по_умолчанию_используется_null&quot;&gt;tags object По умолчанию используется null&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Все совпадающие теги будут переданы в &lt;strong&gt;format&lt;/strong&gt; функцию или строку для преобразования в BBCode.
&lt;/p&gt;

&lt;p&gt;
Чтобы найти все вхождения определенного тега, выполните следующее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;quot;tag-name&amp;quot;: null&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Любой DOM-узел, являющийся экземпляром, &lt;code&gt;&amp;lt;tag-name&amp;gt;&lt;/code&gt; будет передан свойству &lt;strong&gt;format&lt;/strong&gt; для преобразования.
&lt;/p&gt;

&lt;p&gt;
Чтобы найти все вхождения тега, имеющего определенный атрибут, выполните следующее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;quot;tag-name&amp;quot;: {
    &amp;quot;attribute-name&amp;quot;: null,
    &amp;quot;another-attribute-name&amp;quot;: null
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это будет соответствовать любому тегу, который является экземпляром &lt;code&gt;&amp;lt;tag-name&amp;gt;&lt;/code&gt; и имеет атрибут &lt;code&gt;attribute-name&lt;/code&gt; или &lt;code&gt;another-attribute-name.&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Чтобы сопоставить все вхождения тега с атрибутом, имеющим определенное значение, выполните следующее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;quot;tag-name&amp;quot;: {
    &amp;quot;attribute-name&amp;quot;: [&amp;quot;value1&amp;quot;, &amp;quot;value2&amp;quot;]
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Это будет соответствовать любому тегу, который является экземпляром &amp;lt;tag-name&amp;gt;и имеет атрибут &lt;code&gt;attribute-name&lt;/code&gt; со значением&lt;code&gt; value1&lt;/code&gt; или &lt;code&gt;value2&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Способ сопоставления можно изменить, изменив свойство &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&quot;&gt;strictMatch.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4096-5845&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;isselfclosing&quot;&gt;isSelfClosing&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;isselfclosing_bool_по_умолчанию_false&quot;&gt;isSelfClosing Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если этот BBCode является самозакрывающимся тегом (не имеет закрывающего тега &lt;code&gt;[hr]&lt;/code&gt;).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;isSelfClosing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;isselfclosing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5846-6076&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;isinline&quot;&gt;isInline&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;isinline_bool_по_умолчанию_true&quot;&gt;isInline Bool По умолчанию true&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если этот BBCode является встроенным или блочным.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;isInline&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;isinline&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6077-6232&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;ishtmlinline&quot;&gt;isHtmlInline&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ishtmlinline_логическое_значение_или_не_определено_по_умолчанию_используется_undefined&quot;&gt;isHtmlInline — логическое значение или не определено. По умолчанию используется undefined&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Определяет, является ли выходной &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-код для данного BBCode встроенным или нет. Это значение необходимо задать только в том случае, если оно отличается от &lt;code&gt;isInline&lt;/code&gt; значения в BBCode. Если значение не определено, оно игнорируется и &lt;code&gt;isInline&lt;/code&gt; используется вместо него.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;isHtmlInline&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ishtmlinline&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6233-6876&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;allowedchildren&quot;&gt;allowedChildren&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;allowedchildren_массив_или_null_по_умолчанию_null&quot;&gt;allowedChildren — массив или null. По умолчанию — null.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если значение равно null/undefined, то будут разрешены все дочерние элементы. Если это массив, то будут разрешены только указанные теги. Чтобы разрешить использование обычного текста, используйте &lt;code&gt;#&lt;/code&gt; в качестве имени тега.
&lt;/p&gt;

&lt;p&gt;
Чтобы разрешить только обычный текст: &lt;code&gt;allowedChildren: [&amp;#039;#&amp;#039;]&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Разрешить использование жирного и курсивного шрифта только для дочерних элементов: &lt;code&gt;allowedChildren: [&amp;#039;b&amp;#039;, &amp;#039;i&amp;#039;]&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;allowedChildren&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;allowedchildren&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;6877-7671&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;allowsempty&quot;&gt;allowsEmpty&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;allowsempty_bool_по_умолчанию_false&quot;&gt;allowsEmpty Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если этот тег может быть пустым (не иметь дочерних элементов или контента).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;allowsEmpty&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;allowsempty&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7672-7885&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;excludeclosing&quot;&gt;excludeClosing&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;excludeclosing_bool_по_умолчанию_false&quot;&gt;excludeClosing Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если не добавлять закрывающий тег. В основном для того, чтобы &lt;code&gt;[*]&lt;/code&gt; можно было использовать без &lt;code&gt;[/*].&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;excludeClosing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;excludeclosing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;7886-8150&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;skiplastlinebreak&quot;&gt;skipLastLineBreak&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;skiplastlinebreak_-_логическое_значение_по_умолчанию_false&quot;&gt;skipLastLineBreak - логическое значение, по умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;&amp;lt;br /&amp;gt;&lt;/code&gt; В блочных тегах во всех браузерах, кроме Internet Explorer, в конце добавляется дополнительный перенос строки . Если этот параметр установлен в значение &lt;code&gt;true&lt;/code&gt;, дополнительный перенос строки добавляться не будет.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;skipLastLineBreak&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;skiplastlinebreak&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;8151-8658&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;strictmatch&quot;&gt;strictMatch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;strictmatch_bool_по_умолчанию_false&quot;&gt;strictMatch Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Следует ли использовать строгий поиск по атрибутам и стилям.
&lt;/p&gt;

&lt;p&gt;
Если значение истинно, это приведет к выполнению операции И, требующей совпадения всех атрибутов тегов и стилей.
&lt;/p&gt;

&lt;p&gt;
Если значение равно false, будет выполнено сопоставление по оператору ИЛИ, и совпадение будет обнаружено, если совпадает хотя бы один из атрибутов или стилей тега.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;strictMatch&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;strictmatch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;8659-9351&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;breakbefore&quot;&gt;breakBefore&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;breakbefore_-_логическое_значение_по_умолчанию_false&quot;&gt;breakBefore - логическое значение, по умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если необходимо вставить новую строку перед открывающим тегом.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;breakBefore&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;breakbefore&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;9352-9581&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;breakstart&quot;&gt;breakStart&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;breakstart_bool_по_умолчанию_false&quot;&gt;breakStart Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если нужно вставить новую строку после начального тега.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;Примечание: Это не относится к самозакрывающимся тегам.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;breakStart&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;breakstart&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;9582-9882&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;breakend&quot;&gt;breakEnd&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;breakend_bool_по_умолчанию_false&quot;&gt;breakEnd Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если необходимо вставить новую строку перед закрывающим тегом.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;Примечание: Это не относится к самозакрывающимся тегам.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;breakEnd&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;breakend&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;9883-10193&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;breakafter&quot;&gt;breakAfter&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;breakafter_bool_по_умолчанию_false&quot;&gt;breakAfter Bool По умолчанию false&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если необходимо вставить новую строку после закрывающего тега.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;breakAfter&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;breakafter&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;10194-10385&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;format&quot;&gt;format&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;format_string_или_function&quot;&gt;format String или function&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Это должна быть либо строка в формате &lt;code&gt;«[b]{0}[/b]»&lt;/code&gt;, где &lt;code&gt;{0}&lt;/code&gt; будет заменена содержимым тегов BBCode.
&lt;/p&gt;

&lt;p&gt;
Или функция, которая принимает два аргумента, &lt;code&gt;element&amp;amp;&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt; и возвращает отформатированную строку BBCode.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; element HTMLElement —&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
объект DOM HTMLElement, который необходимо преобразовать.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;content String&lt;/strong&gt; —&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
строка, содержащая содержимое BB-кодов.
например:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;function(element, content) {
    if(!element.attr(&#039;data-youtube-id&#039;))
        return content;
&amp;nbsp;
    return &#039;[youtube]&#039; + element.attr(&#039;data-youtube-id&#039;) + &#039;[/youtube]&#039;;
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;format&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;format&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;10386-11238&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;html&quot;&gt;html&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;html_-_string_или_function&quot;&gt;HTML - String или function&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Это должна быть либо строка в формате &lt;code&gt;«&amp;lt;strong&amp;gt;{0}&amp;lt;/strong&amp;gt;»&lt;/code&gt;, где &lt;code&gt;{0}&lt;/code&gt; будет заменено содержимое &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-тегов.
&lt;/p&gt;

&lt;p&gt;
Или функция, которая принимает 3 аргумента (токен, атрибуты, содержимое) и возвращает &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-строку.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;token&lt;/strong&gt; Object&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
TokenizeToken
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;attrs&lt;/strong&gt; Object&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
атрибутов. Атрибут по умолчанию будет &lt;code&gt;[tag=default]&lt;/code&gt; установлен &lt;code&gt;наdefaultattr&lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;content&lt;/strong&gt; String&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-содержимое этого тега
например:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_bbcodes&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;html: function(token, attrs, content) {
    if(typeof attrs.defaultattr !== &#039;undefined&#039;)
        content = &#039;&amp;lt;cite&amp;gt;&#039; + attrs.defaultattr + &#039;&amp;lt;/cite&amp;gt;&#039; + content;
&amp;nbsp;
    return &#039;&amp;lt;blockquote&amp;gt;&#039; + content + &#039;&amp;lt;/blockquote&amp;gt;&#039;;
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;html&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;11239-12162&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;quotetype&quot;&gt;quoteType&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;quotetype_sceditorbbcodeparserquotetype&quot;&gt;quoteType sceditor.BBCodeParser.QuoteType&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 По умолчанию используется &lt;code&gt;sceditor.BBCodeParser.QuoteType.auto&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Тип цитирования атрибута.
&lt;/p&gt;

&lt;p&gt;
Это должна быть либо функция, либо одно из следующих значений:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sceditor.BBCodeParser.QuoteType.always&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Всегда заключать значение атрибута в кавычки
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sceditor.BBCodeParser.QuoteType.never&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Никогда не заключайте значение атрибута в кавычки.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sceditor.BBCodeParser.QuoteType.auto&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Заключайте значение атрибута в кавычки только в том случае, если оно содержит пробелы или знак равенства.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;quoteType&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;quotetype&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;12163-12998&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/custom-bbcodes/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/custom-bbcodes/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;12999-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 09:16:44 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_doc_custom_commands</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;rev=1767774853</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;пользовательские_команды&quot;&gt;Пользовательские команды&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435_\u043a\u043e\u043c\u0430\u043d\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-67&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;создание_обновление_пользовательской_команды&quot;&gt;Создание/обновление пользовательской команды&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для добавления/обновления команды используйте соответствующую &lt;strong&gt;sceditor.command.set()&lt;/strong&gt; функцию.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:При создании или обновлении команды это необходимо сделать до создания экземпляра редактора, например, до вызова метода sceditor.create().

&lt;/div&gt;&lt;div class=&quot;plugin_note noteyellow&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Предупреждение:Эта функция обновит любую существующую команду с тем же именем.

&lt;/div&gt;
&lt;p&gt;
Функция sceditor.command.set() принимает два аргумента: &lt;strong&gt;name&lt;/strong&gt; и &lt;strong&gt;cmd&lt;/strong&gt;.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; name String&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Название команды, используемое для ее отображения на панели инструментов. Должно быть написано строчными буквами!
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Объект cmd.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Объект команды. Подробнее см. ниже.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;sceditor.command.set(&#039;commandname&#039;, {
	exec: function() {
		// this is set to the editor instance
		this.insert(&#039;a&#039;);
	},
	txtExec: function() {
		// this is set to the editor instance
		this.insert(&#039;a&#039;);
	},
	tooltip: &#039;Insert the letter a&#039;
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы добавить значок к команде, используйте следующий &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;-код:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_css&quot;&gt;style.css&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code css&quot;&gt;.sceditor-button-&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;name&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; div &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;/images/icon.png&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
где &lt;strong&gt;[name]&lt;/strong&gt; — это имя, используемое с &lt;strong&gt;sceditor.command.set()&lt;/strong&gt;. Дополнительную информацию &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_theming&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_theming&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_doc_theming&quot;&gt;см. в разделе «Тематическое оформление»&lt;/a&gt;.
После создания команды вы можете добавить её на панель инструментов редактора с помощью опции &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor#панель_инструментов&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot;&gt;«Панель инструментов»&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439_\u043a\u043e\u043c\u0430\u043d\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;68-2188&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;структура_объекта_команды&quot;&gt;Структура объекта команды:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;{
  exec: undefined,
  errorMessage: undefined,
  txtExec: undefined,
  tooltip: undefined
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_\u043e\u0431\u044a\u0435\u043a\u0442\u0430_\u043a\u043e\u043c\u0430\u043d\u0434\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2189-2371&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;exec&quot;&gt;exec&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;exec_string_or_function&quot;&gt;**exec** String or function&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполняется при щелчке по кнопке в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;.
&lt;br/&gt;

Это должна быть либо строка, которая будет передана в нативную &lt;strong&gt;execCommand()&lt;/strong&gt; функцию браузера.
&lt;br/&gt;

Или функция, принимающая 1 аргумент caller. Функции thisбудут установлены на экземпляр редактора.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; caller HTMLElement&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Элемент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кнопки с командами или null.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;exec: function () {
	this.insert(&#039;[b]Hello World[/b]&#039;);
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;// Bold will be passed to the native execCommand
exec: &#039;bold&#039;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;exec&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;exec&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2372-3121&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;errormessage&quot;&gt;errorMessage&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;errormessage_string&quot;&gt;**errorMessage** String&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сообщение об ошибке, отображаемое в случае execсбоя при вызове нативных функций браузера &lt;strong&gt;execCommand()&lt;/strong&gt;. Применяется только в том случае, если &lt;strong&gt;exec&lt;/strong&gt; это строка.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;errorMessage&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;errormessage&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3122-3455&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;shortcut&quot;&gt;shortcut&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;shortcut&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;shortcut&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3456-3474&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;state&quot;&gt;state&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;state_string_or_function&quot;&gt;**state** String or function&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если &lt;strong&gt;state&lt;/strong&gt; это строка, она будет передана в нативные &lt;strong&gt;queryCommandEnabled&lt;/strong&gt; методы &lt;strong&gt;queryCommandState&lt;/strong&gt; для получения состояния.
&lt;/p&gt;

&lt;p&gt;
Если &lt;strong&gt;state&lt;/strong&gt; это функция, то в качестве аргументов ей будут переданы родительский узел и родительский узел firstBlock. Она должна возвращать значение &lt;strong&gt;-1&lt;/strong&gt;, &lt;strong&gt;0&lt;/strong&gt; или &lt;strong&gt;1&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; -1 Отключено (недоступно для нажатия)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 Неактивен (состояние по умолчанию, можно нажать)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1 Активен (отображается как нажатый)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;state&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;state&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3475-4254&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;txtexec&quot;&gt;txtExec&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;txtexec_string_or_array&quot;&gt;**txtExec** String or array&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Это должен быть либо &lt;em&gt;массив&lt;/em&gt;, содержащий 1-2 строки, либо &lt;em&gt;функция&lt;/em&gt;.
&lt;/p&gt;

&lt;p&gt;
Если задан массив, содержащий две строки, то любое выделенное содержимое будет заключено в обе строки, а курсор будет перемещен перед последней из них. Если массив содержит только одну строку и при этом выделено какое-либо содержимое, то выделенное содержимое будет заменено, а курсор будет перемещен после вставленной строки.
&lt;/p&gt;

&lt;p&gt;
Если &lt;strong&gt;txtExec&lt;/strong&gt; это функция, она должна принимать &lt;strong&gt;1&lt;/strong&gt; аргумент &lt;strong&gt;caller&lt;/strong&gt;. Функции &lt;strong&gt;this&lt;/strong&gt; будут установлены в редакторе.
&lt;/p&gt;

&lt;p&gt;
caller HTMLElement Элемент &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кнопки с командами или null.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;txtExec: function () {
	this.insert(&#039;[b]Hello World[/b]&#039;);
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_commands&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;txtExec: [&#039;[b]&#039;, &#039;[/b]&#039;]&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;txtExec&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;txtexec&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4255-5462&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;tooltip&quot;&gt;tooltip&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;tooltip_string&quot;&gt;**tooltip** String&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Всплывающая подсказка, которая отображается при наведении курсора мыши на команду.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tooltip&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tooltip&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5463-5661&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/custom-commands/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/custom-commands/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5662-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 08:34:13 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_doc_custom_formats</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_formats&amp;rev=1767777713</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;пользовательские_форматы&quot;&gt;Пользовательские форматы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435_\u0444\u043e\u0440\u043c\u0430\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-62&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;структура&quot;&gt;Структура&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В настоящее время SCEditor поддерживает форматы BBCode и XHTML, а также пользовательские форматы.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:При создании пользовательского формата это необходимо сделать до создания экземпляра редактора, например, до вызова метода &lt;code&gt;sceditor.create().&lt;/code&gt;

&lt;/div&gt;
&lt;p&gt;
Структура пользовательского формата должна быть следующей:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_formats&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;sceditor.formats[&#039;youformatname&#039;] = function () {
    /**
     * Called when the editor is created.
     *
     * This is called before the editor is fully initialised 
     */
    this.init = function () {
        // this is set to the editor
    };
&amp;nbsp;
    /**
     * Called when the WYSIWYG editor document is ready
     */
    this.onReady = function () {
        // this is set to the editor
    };
&amp;nbsp;
    /**
     * Called to convert the whole HTML document to this format
     */
    this.toSource = function (html, context) {
        // this is set to this object
    };
&amp;nbsp;
    /**
     * Called to convert the whole source into HTML
     */
    this.toHtml = function (source) {
        // this is set to this object
    };
&amp;nbsp;
    /**
     * Called to convert a fragment HTML into this format
     *
     * Parent is set to the current node
     */
    this.fragmentToSource = function (html, context, parent) {
        // this is set to this object
    };
&amp;nbsp;
    /**
     * Called to convert a fragment of source into HTML
     */
    this.fragmentToHtml = function (source) {
        // this is set to this object
    };
};&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Если какой-либо метод отсутствует, ошибки не возникнет, он просто не будет вызван.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;63-1955&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/custom-formats/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/custom-formats/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1956-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 09:21:53 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_doc_custom_plugins</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_plugins&amp;rev=1767778852</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;пользовательские_плагины&quot;&gt;Пользовательские плагины&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435_\u043f\u043b\u0430\u0433\u0438\u043d\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-62&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;создание_плагина&quot;&gt;Создание плагина&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Плагины необходимо добавлять в качестве свойства объекта &lt;code&gt;sceditor.plugins.*&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Например, для создания плагина с таким названием &lt;code&gt;myplugin&lt;/code&gt; будет выглядеть так:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_plugins&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;// Created in sceditor.plugins.[name] object
sceditor.plugins.myplugin = function() {
	// Place signal handlers and functions here
};&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чтобы затем включить плагин в редакторе, добавьте его &lt;code&gt;myplugin&lt;/code&gt; в &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor#plugins&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot;&gt;раздел плагинов&lt;/a&gt; при создании редактора.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:При создании пользовательского плагина это необходимо сделать до создания экземпляра редактора, например, до вызова метода &lt;code&gt;` sceditor.create().&lt;/code&gt;

&lt;/div&gt;
&lt;p&gt;
Структура пользовательского формата должна быть следующей:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u043f\u043b\u0430\u0433\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;63-1151&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;обработка_сигналов&quot;&gt;Обработка сигналов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для создания обработчика сигнала достаточно создать функцию с именем сигнала, и она будет автоматически вызываться всякий раз, когда этот сигнал возникает.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_custom_plugins&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;sceditor.plugins.myplugin = function() {
	base.signalKeydownEvent = function(e) {
		// this will automatically be called when &#039;myplugin&#039;
		// is registered with an editor instance and there
		// is a keydown event
	};
};&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Все сигналы будут &lt;code&gt;this&lt;/code&gt; установлены на тот экземпляр редактора, к которому применяется плагин.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1152-1909&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;init&quot;&gt;init&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вызывается при регистрации плагина в редакторе.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;init&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;init&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1910-2013&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;destroy&quot;&gt;destroy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вызывается при &lt;code&gt;destroy()&lt;/code&gt; вызове соответствующей функции в редакторе или при удалении плагина из редактора.
&lt;/p&gt;

&lt;p&gt;
Этот сигнал следует использовать для отмены привязки любых событий DOM и для выполнения очистки, чтобы браузер мог освободить используемую память.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;destroy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;destroy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2014-2495&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;signalready&quot;&gt;signalReady&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Вызывается после создания редактора.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:Эту функцию можно вызвать до полной загрузки страницы.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalReady&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalready&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2496-2722&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;signalkeydownevent&quot;&gt;signalKeydownEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;keydown&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда &lt;code&gt;keydown&lt;/code&gt; событие срабатывает в редакторе в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; или в режиме исходного кода.
&lt;/p&gt;

&lt;p&gt;
Используйте эту функцию &lt;code&gt;this.sourceMode(),&lt;/code&gt; чтобы проверить, в каком режиме работает редактор.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalKeydownEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalkeydownevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2723-3189&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;signalkeyupevent&quot;&gt;signalKeyupEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;keyup&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда &lt;code&gt;keyup&lt;/code&gt; событие срабатывает в редакторе в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; или в режиме исходного кода.
&lt;/p&gt;

&lt;p&gt;
Используйте эту функцию &lt;code&gt;this.sourceMode(),&lt;/code&gt; чтобы проверить, в каком режиме работает редактор.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalKeyupEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalkeyupevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3190-3650&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;signalfocusevent&quot;&gt;signalFocusEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;focus&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда &lt;code&gt;focusс&lt;/code&gt; обытие срабатывает в редакторе в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; или в режиме исходного кода.
&lt;/p&gt;

&lt;p&gt;
Используйте эту функцию &lt;code&gt;this.sourceMode(),&lt;/code&gt; чтобы проверить, в каком режиме работает редактор.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalFocusEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalfocusevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3651-4111&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;signalblurevent&quot;&gt;signalBlurEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;blur&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда &lt;code&gt;blur&lt;/code&gt; событие срабатывает в редакторе в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; или в режиме исходного кода.
&lt;/p&gt;

&lt;p&gt;
Используйте эту функцию &lt;code&gt;this.sourceMode(),&lt;/code&gt; чтобы проверить, в каком режиме работает редактор.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalBlurEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalblurevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4112-4569&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;signalcontextmenuevent&quot;&gt;signalContextmenuEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;contextmenu&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда &lt;code&gt;contextmenu&lt;/code&gt; событие срабатывает в редакторе в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; или в режиме исходного кода.
&lt;/p&gt;

&lt;p&gt;
Используйте эту функцию &lt;code&gt;this.sourceMode()&lt;/code&gt;, чтобы проверить, в каком режиме работает редактор.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalContextmenuEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalcontextmenuevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;4570-5048&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;signalselectionchangedevent&quot;&gt;signalSelectionchangedEvent&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Параметры:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; e event Объект события​ &lt;code&gt;selectionchanged&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Вызывается всякий раз, когда изменяется выделение в &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;-редакторе.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclamation-red.png&quot; class=&quot;icon smiley&quot; alt=&quot;:&amp;amp;9:&quot; /&gt; Важно:Это событие не происходит в режиме источника.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;signalSelectionchangedEvent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;signalselectionchangedevent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5049-5413&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/custom-plugins/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/custom-plugins/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;5414-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 09:40:52 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_doc_theming</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_doc_theming&amp;rev=1767779632</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;тематическое_оформление&quot;&gt;Тематическое оформление&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435_\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-60&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;структура_html&quot;&gt;Структура HTML&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Схема структуры &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода SCEditors.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_doc_theming&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Main container &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-container&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Toolbar container &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-toolbar&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Toolbar group container &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-group&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Toolbar button &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;a &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-button sceditor-button-[name]&amp;quot;&lt;/span&gt;
        data&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;sceditor&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;[name]&amp;quot;&lt;/span&gt;
        unselectable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;on&amp;quot;&lt;/span&gt; title&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;[name]&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Toolbar button text container &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div unselectable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;on&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;tooltip or name&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;a&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Contains the WYSIWYG editor &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;iframe&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;iframe&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Contains the source mode editor &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Grip used to resize the editor &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-grip&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; Used to cover the WYSIWYG editor so mousemove events are still handled &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;sceditor-resize-cover&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt; This is hidden and only used so that blur&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; can work &lt;span class=&quot;sy0&quot;&gt;--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 HTML&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_html&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;61-1087&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;структура_css&quot;&gt;Структура CSS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note noteblue&quot;&gt;Примечание:Содержимое &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;- редактора iframe оформляется с помощью внешней таблицы стилей, которую можно передать через &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor#style&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor&quot;&gt;параметр style&lt;/a&gt; в конструкторе редактора.

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-container — контейнер для всего редактора. &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;-класс .sourceModeбудет добавлен в режиме исходного кода, а класс .wysiwygMode— в режиме &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; .&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-toolbar - контейнер для панели инструментов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-group - группа панелей инструментов.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; a.sceditor-button - кнопка панели инструментов. Класс .disabledбудет добавлен, если команда не поддерживается в текущем режиме.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; a.sceditor-button-[name] - аналогичен предыдущему классу, но [name] заменено на имя команды кнопки, например .sceditor-button-bold, ,.sceditor-button-italic&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; div-элемент - div содержащем текст, отвечающий за доступность кнопок, и обычно имеющем фоновое изображение, также устанавливается значок кнопки.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; iframe - используется для &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; -редактора. Его необходимо выбрать с помощью имени тега &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элемента.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; textarea - текстовое поле, используемое для редактора в режиме исходного кода. Его необходимо выделить с помощью имени тега &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элемента.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-grip — элемент управления, используемый для изменения размера редактора.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-resize-cover — div это компонент, который закрывает редактор во время изменения его размера.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; div.sceditor-dropdown, div содержащий выпадающий список&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 CSS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_css&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1088-3404&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;структура_темы&quot;&gt;Структура темы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Все темы по умолчанию в формате LESS &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; находятся в соответствующей &lt;code&gt;src/themes/&lt;/code&gt; директории.
&lt;/p&gt;

&lt;p&gt;
Для сборки и минификации тем выполните команду &lt;code&gt;build/build.sh –css&lt;/code&gt; из корневого каталога SCEditor. Результат будет помещен в этот &lt;code&gt;minified/themesкаталог&lt;/code&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3405-3858&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/theming/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/theming/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3859-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 09:53:52 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_memo_bbcode</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&amp;rev=1767783101</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;памятка_по_использованию_bb-кодов_bbcode&quot;&gt;Памятка по использованию BB-кодов (bbCode)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0430\u043c\u044f\u0442\u043a\u0430 \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e BB-\u043a\u043e\u0434\u043e\u0432 (bbCode)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u043c\u044f\u0442\u043a\u0430_\u043f\u043e_\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e_bb-\u043a\u043e\u0434\u043e\u0432_bbcode&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-84&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;содержание&quot;&gt;Содержание&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#введение&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Введение&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#форматирование_шрифта&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Форматирование шрифта&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#выравнивание_текста_и_форматирование_параграфов&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Выравнивание текста и форматирование параграфов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#форматирование_списков&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Форматирование списков&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#картинки&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Картинки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#ссылки_на_другие_страницы_ftp_e-mail_и_др&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Ссылки на другие страницы, FTP, E-Mail и др.&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#таблицы&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Таблицы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#специальные_тэги&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Специальные тэги&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#работа_с_терминами&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Работа с терминами&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#вставка_видео_и_других_flash-объектов&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Вставка видео и других flash-объектов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#отображение_примеров_различных_кодов&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Отображение примеров различных кодов&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode#специальные_символы&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:sceditor_memo_bbcode&quot;&gt;Специальные символы&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;85-1538&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;введение&quot;&gt;Введение&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
bbCode — Bulletin Board Code, или язык разметки, используемый для форматирования сообщений на многих электронных досках объявлений (BBS) и форумах. Для форматирования текста используются теги, подобные тегам &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;. В отличие от тегов &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;, теги bbCode заключают в квадратные скобки. Перед отображением страницы движок форума производит разбор текста и преобразовывает bbCode в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-код.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteorange&quot;&gt;На многих форумах возможность использования BB-кодов настраивается администратором индивидуально на каждый раздел форума. Поэтому, прежде чем использовать BB-коды в сообщениях, необходимо убедиться, что они разрешены.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1539-2649&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;форматирование_шрифта&quot;&gt;Форматирование шрифта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Базовые тэги для работы с текстом:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[p] Обычный абзац с отступом. [/p]

[p=стиль] Абзац, которому можно задавать стиль. [/p]
* Здесь и далее «стиль» — это аналог style в HTML.
   [p=стиль]текст[/p]  аналогично в HTML  &amp;lt;p style=&amp;quot;стиль&amp;quot;&amp;gt;текст&amp;lt;/p&amp;gt;
** С тэгами [p] [/p] можно использовать другие тэги, такие как [b], [i], [s] и т.д.

[span=стиль] Текст, которому с помощью стиля можно менять свойства. [/span]

[div=стиль] Ограниченная область, которой с помощью стиля можно менять свойства (положение, границы, отступы, свойства содержимого и т.д.). [/div]
* По умолчанию границы областей не видны. На одной странице может быть сразу несколько областей [div].&lt;/pre&gt;

&lt;p&gt;
Форматирование текста:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[b] Важный текст, полужирный [/b]
[i] Важный текст, курсив [/i]
[bold] Просто полужирный [/bold]
[italic] Просто курсив [/italic]
[u] Подчёркнутый текст [/u]
[s] Зачёркнутый текст [/s] — аналогично варианту [strike] [/strike]
[small] Уменьшенный шрифт [/small]
Знак сноски [sup] сверху [/sup] или индекс [sub] снизу [/sub] от текста
[ins] Добавленный текст [/ins]
[del] Удалённый текст [/del]&lt;/pre&gt;

&lt;p&gt;
Размеры шрифта:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[size=13pt] Шрифт размером 13 пунктов [size]
[size=15pt] Шрифт размером 15 пунктов [size]
[size=9px] Шрифт размером 9 пикселей [size]
[size=12px] Шрифт размером 12 пикселей [size]
[size=15px] Шрифт размером 15 пикселей [size]
[size=0] Размер 0 [size]
[size=+1] Размер +1 [size]
[size=+2] Размер +2 [size]&lt;/pre&gt;

&lt;p&gt;
Возможные варианты размеров шрифтов (визуальная оценка) доступны &lt;a href=&quot;https://www.hdsw.ru/?p=16&quot; class=&quot;urlextern&quot; title=&quot;https://www.hdsw.ru/?p=16&quot; rel=&quot;ugc nofollow&quot;&gt;здесь.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;заголовки&quot;&gt;Заголовки:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[h1] Заголовок 1-го уровня [/h1]
[h2] Заголовок 2-го уровня [/h2]
[h3] Заголовок 3-го уровня [/h3]
[h4] Заголовок 4-го уровня [/h4]
[h5] Заголовок 5-го уровня [/h5]
[h6] Заголовок 6-го уровня [/h6]&lt;/pre&gt;

&lt;p&gt;
Оформление текста с помощью шрифтов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[font=Times New Roman] Шрифт Comic Sans Ms [/font]
[font=Monotype Corsiva] Шрифт Monotype Corsiva [/font]
[font=Tahoma] Шрифт Tahoma [/font]&lt;/pre&gt;

&lt;p&gt;
Возможные варианты типов шрифтов (наименования и визуальная оценка) доступны здесь.
&lt;/p&gt;

&lt;p&gt;
Оформление текста с помощью цвета:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[color=Red] Красный текст [/color]
* Можно пользоваться стандартными словесными обозначениями цветов: Red, Green, Blue и т.д.
[color=#0000ff] Синий текст [/color]
* Цифра #0000ff означает синий цвет в RGB палитре.
[bg=#eeeeff] Голубой фон [/bg]
* У фона тоже можно менять цвет.
[color=#0000ff] [bg=lightgray] Синий текст, серый фон [/bg] [/color]&lt;/pre&gt;

&lt;p&gt;
Некоторые предопределённые цвета:
&lt;/p&gt;

&lt;p&gt;
Black White Red Green Blue Purple Firebrick Maroon OrangeRed MidnightBlue CornflowerBlue
Cyan Yellow Magenta DarkGreen DarkGoldenrod Gold Orchid BlueViolet Burlywood PeachPuff
&lt;/p&gt;

&lt;p&gt;
Некоторые цвета в шестнадцатиричном коде — интенсивность красного, зелёного и синего (RRGGBB):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#000000 #FFFFFF #FF0000 #00FF00 #0000FF #FF00FF #FF4444 #FF9999 #FFCCCC #9999FF #FF99FF #DDDDDD #FFE4C4 #CCCC99 #FF8DC #FA8072 #990000 #FF3030 #000080 #000066 #0000CD #AFEEEE #006400 #66FF00 #00B800 #DAA520 #FFCC33 #FFA500 #C71585 #8B008B #CC33FF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0448\u0440\u0438\u0444\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0448\u0440\u0438\u0444\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2650-7090&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;выравнивание_текста_и_форматирование_параграфов&quot;&gt;Выравнивание текста и форматирование параграфов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Выравнивание текста:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[left] Выравнивание текста по левой стороне [/left]
[left стиль] Выравнивание по левой стороне со стилем [/left]
[pleft] Выравнивание в абзаце влево [/pleft]
[center] Выравнивание текста по центру [/center]
[center стиль] Выравнивание по центру со стилем [/center]
[pcenter] Выравнивание в абзаце по центру [/pcenter]
[right] Выравнивание текста по правой стороне [/right]
[right стиль] Выравнивание по правой стороне со стилем [/right]
[pright] Выравнивание в абзаце справа [/pright]
[justify] Выравнивание текста по обеим сторонам [/justify]
[justify стиль] Выравнивание по обеим сторонам со стилем [/justify]
[pjustify] Выравнивание в абзаце по обеим сторонам [/pjustify]&lt;/pre&gt;

&lt;p&gt;
* Выравнивание текстов по обеим сторонам отображается для текстов, имеющих длину более одной строки.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435_\u0442\u0435\u043a\u0441\u0442\u0430_\u0438_\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043f\u0430\u0440\u0430\u0433\u0440\u0430\u0444\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7091-8495&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;оформление_сносок_комментариев_с_отступом_абзаца&quot;&gt;Оформление сносок (комментариев) с отступом абзаца:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[q] Цитата в строке [/q]
[q свойства] Цитата в строке со свойствами [/q]
[quote]
Процитированный в отдельном блоке текст, у которого будет
небольшой отступ слева и особое оформление (стиль форума).
[/quote]&lt;/pre&gt;

&lt;p&gt;
Примеры:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[quote]Lorem ipsum dolor sit amet[/quote]
[quote=John Doe]Lorem ipsum dolor sit amet[/quote]
[quote=John Doe;54525188]Lorem ipsum dolor sit amet[/quote]&lt;/pre&gt;

&lt;p&gt;
Форматирование параграфов и областей:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[indent]
Привет! В этом абзаце первое предложение будет с &amp;quot;красной&amp;quot; строки, т.е. с отступом. Прямо как в книгопечати. Правда, в Интернете это редкая практика. Абзацы должны разделяться просто пустым промежутком.
[/indent]

[pre]

   Преформатированый текст
   сохраняет отступы слева и   между   словами
             и устанавливает те отступы, что вы укажите пробелами.
     Предупреждение! Тэг не делает переноса строки автоматом!
[/pre]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u043d\u043e\u0441\u043e\u043a (\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432) \u0441 \u043e\u0442\u0441\u0442\u0443\u043f\u043e\u043c \u0430\u0431\u0437\u0430\u0446\u0430:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435_\u0441\u043d\u043e\u0441\u043e\u043a_\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432_\u0441_\u043e\u0442\u0441\u0442\u0443\u043f\u043e\u043c_\u0430\u0431\u0437\u0430\u0446\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;8496-9987&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;форматирование_списков&quot;&gt;Форматирование списков&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Используем тэг [ul] или [list] для маркированных списков:

Один из пунктов списка
Другой такой пункт
Ещё один пункт.
[ul]
      [*] Один из пунктов списка [/*]
      [*] Другой такой пункт [/*]
      [*] Ещё один пункт. [/*]
[/ul]

Для пронумерованных списков используем тэг [ol]:

Один из пунктов списка
Другой такой пункт
Ещё один пункт.
[ol]
      [*] Один из пунктов списка [/*]
      [*] Другой такой пункт [/*]
      [*] Ещё один пункт. [/*]
[/ol]

Закрывающий тэг [/*] не обязателен для использования:

Один из пунктов списка
Другой такой пункт
Ещё один пункт.
[list]
      [*] Один из пунктов списка
      [*] Другой такой пункт
      [*] Ещё один пункт.
[/list]

Также возможно прямое указания вида списка:
[list=1] — пронумерованный список
[list=a] — алфавитный список
[list=i] — список, пронумерованный римскими цифрами
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0441\u043f\u0438\u0441\u043a\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;9988-11407&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;картинки&quot;&gt;Картинки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[img] http://img.cx/img/primer.jpg [/img] — пример вставки картинки.

[imgleft] http://img.cx/img/primer.jpg [/imgleft] — картинка слева.
* Данный код аналогичен коду в HTML:
&amp;lt;img src=&amp;quot;http://img.cx/img/primer.jpg&amp;quot; style=&amp;quot;float: left; margin: 0 10px 0 0;&amp;quot;&amp;gt;
[imgright] http://img.cx/img/primer.jpg [/imgright] — картинка справа.
* Данный код аналогичен коду в HTML:
&amp;lt;img src=&amp;quot;http://img.cx/img/primer.jpg&amp;quot; style=&amp;quot;float: right; margin: 0 0 0 10px;&amp;quot;&amp;gt;
[imgcenter] http://img.cx/img/primer.jpg [/imgcenter] — картинка по центру.
* Данный код аналогичен коду в HTML:
&amp;lt;div style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://img.cx/img/primer.jpg&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;

Аналогичные тэги с названиями и всплывающими подсказками:

Важно! В названии картинки нельзя использовать кавычки!

[img Название] http://img.cx/img/primer.jpg [/img] — пример вставки картинки.
[imgleft Название] http://img.cx/img/primer.jpg [/imgleft] — картинка слева.
[imgright Название] http://img.cx/img/primer.jpg [/imgright] — картинка справа.
[imgcenter Название] http://img.cx/img/primer.jpg [/imgcenter] — картинка по центру.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;11408-12874&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;картинки_с_указанными_размерами&quot;&gt;Картинки с указанными размерами:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[img=300×500] http://img.cx/img/primer.jpg [/img] — пример картинки с размером.
* Данный код аналогичен коду в HTML:
&amp;lt;img src=&amp;quot;http://img.cx/img/primer.jpg&amp;quot; style=&amp;quot;width: 300px; height: 500px&amp;quot;&amp;gt;

[imgleft=300×500] http://img.cx/img/primer.jpg [/imgleft] — картинка слева, с размером.

[imgright=300×500] http://img.cx/img/primer.jpg [/imgright] — картинка справа, с размером.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438_\u0441_\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c\u0438_\u0440\u0430\u0437\u043c\u0435\u0440\u0430\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;12875-13434&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;вставка_больших_изображений_с_полосами_прокрутки&quot;&gt;Вставка больших изображений с полосами прокрутки:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[image] http://www.hdsw.ru/pics/IMG_1734.jpg [/image] — картинка в выделенной области, если она больше доступного размера отображения на форуме.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043b\u043e\u0441\u0430\u043c\u0438 \u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_\u0431\u043e\u043b\u044c\u0448\u0438\u0445_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439_\u0441_\u043f\u043e\u043b\u043e\u0441\u0430\u043c\u0438_\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;13435-13773&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;миниатюры_изображения_со_ссылкой_на_оригинал&quot;&gt;Миниатюры изображения со ссылкой на оригинал:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[imgmini=_адрес-mini] адрес [/imgmini] — открыть изображение в новом окне.
* Данный код аналогичен коду в HTML:
&amp;lt;a href=&amp;quot;адрес&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;адрес-mini&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;

[imgmini=адрес-mini] адрес [/imgmini] — открыть изображение в том же окне.
* Данный код аналогичен коду в HTML:
&amp;lt;a href=&amp;quot;адрес&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;адрес-mini&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u0438\u043d\u0438\u0430\u0442\u044e\u0440\u044b_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f_\u0441\u043e_\u0441\u0441\u044b\u043b\u043a\u043e\u0439_\u043d\u0430_\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;13774-14357&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;ссылки_на_другие_страницы_ftp_e-mail_и_др&quot;&gt;Ссылки на другие страницы, FTP, E-Mail и др.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[url] http://www.hdsw.ru/ [/url] — обычная ссылка.
* Данный код аналогичен коду в HTML:
&amp;lt;a href=&amp;quot;http://www.hdsw.ru/&amp;quot;&amp;gt;http://www.hdsw.ru/&amp;lt;/a&amp;gt;

[url=http://www.hdsw.ru/] Линк на HD Systems Worldwide [/url]
* Данный код аналогичен коду в HTML:
&amp;lt;a href=&amp;quot;http://www.hdsw.ru/&amp;quot;&amp;gt;Линк на HD Systems Worldwide&amp;lt;/a&amp;gt;

Картинка-ссылка (баннер):
[url=http://www.hdsw.ru/] [img] http://img.cx/img/primer.jpg [/img] [/url]

[email] e-mail@example.com [/email] — почтовый ящик как ссылка.
[email=e-mail@example.com] текст под ссылкой на e-mail [/email]
[icq] номер ICQ [/icq] — вставка ICQ-номера как ссылки.
[skype] логин в Skype [/skype] — вставка учётной записи Skype как ссылки.
[wmid] номер WMID [/wmid] — вставка WebMoney-идентификатора WMID как ссылки.
[wiki] искомое значение [/wiki] — ссылка на значение в энциклопедии.
[wiki=искомое значение] отображаемый текст [/wiki] — ссылка в текущем тексте (любом) на нужное значение в энциклопедии.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b, FTP, E-Mail \u0438 \u0434\u0440.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0441\u044b\u043b\u043a\u0438_\u043d\u0430_\u0434\u0440\u0443\u0433\u0438\u0435_\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b_ftp_e-mail_\u0438_\u0434\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;14358-15759&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;ссылки_внутри_форумов_и_блогов&quot;&gt;Ссылки внутри форумов и блогов:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[user] имя_пользователя [/user] — ссылка на профиль пользователя.
[user=ID_пользователя] имя_пользователя_произвольно [/user] — ссылка на профиль пользователя с произвольным текстом.

[forum=ID_форума] Описание [/forum] — ссылка на подфорум по его ID.
[blog=ID_блога] Описание [/blog] — ссылка на блог по его ID.

[thread] ID_темы [/thread] — ссылка на тему по его ID.
[thread=ID_темы] Описание [/thread]

[topic=ID_темы] Описание [/topic] — ссылка на тему по его ID.

[post] ID_сообщения [/post] — ссылка на сообщение по его ID.
[post=ID_сообщения] Описание [/post]

[snapback] ID_сообщения [/snapback] — вставляет маленькую иконку со ссылкой на указанное сообщение по его ID.

[entry=ID_поста] Описание [/entry] — ссылка на пост в блоге по его ID.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0444\u043e\u0440\u0443\u043c\u043e\u0432 \u0438 \u0431\u043b\u043e\u0433\u043e\u0432:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0441\u044b\u043b\u043a\u0438_\u0432\u043d\u0443\u0442\u0440\u0438_\u0444\u043e\u0440\u0443\u043c\u043e\u0432_\u0438_\u0431\u043b\u043e\u0433\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;15760-17015&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;таблицы&quot;&gt;Таблицы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Пример простейшей таблицы:

Строка 1, колонка 1	Строка 1, колонка 2
Строка 2, колонка 1	Строка 2, колонка 2
[table]
    [tr]
        [td] Строка 1, колонка 1 [/td]
        [td] Строка 1, колонка 2 [/td]
    [/tr]
    [tr]
        [td] Строка 2, колонка 1 [/td]
        [td] Строка 2, колонка 2 [/td]
    [/tr]
[/table]

В таблице можно указывать произвольные стили и классы. Примеры:
[table class=&amp;quot;red&amp;quot; style=&amp;quot;border: 1px solid red&amp;quot;]
[tr rowspan=&amp;quot;2&amp;quot;]
[td style=&amp;quot;font-size: 18pt&amp;quot;]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17016-17719&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;специальные_тэги&quot;&gt;Специальные тэги&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt; 
[br] — тэг переноса строки.
[bs] — вставка неразрывного пробела, преобразуется в &amp;amp;nbsp;
[tab] — вставка отступа на 32 пикселя (4 символа), аналог символа TAB.
[ucase] ТЕКСТ [/ucase] — выделенный текст в верхнем регистре.
[lcase] текст [/lcase] — выделенный текст в нижнем регистре.
[highlight] Этот текст выделен [/highlight] — позволяет выделить ваш текст (цветом/фоном/шрифтом).
[spoiler=заголовок] скрытый текст [/spoiler] — позволяет спрятать большой кусок текста и изображения под ссылку (кат). Пример:
[spoiler=&amp;quot;Скриншоты&amp;quot;] [img] http://example.com/1.jpg [/img] скрытый текст [/spoiler]
[extract] текст [/extract] — позволяет выделить часть поста в блоге, которая будет показана на титульной странице блога и в RSS feed. Остальной текст будет показан только на странице поста.
[noparse] [b]значение[/b] [/noparse] — отменяет распознавание BB-кодов в выделенном тексте.
[noindex] текст [/noindex] — выделенный текст не будет индексироваться поисковыми системами.
[acronym=‘Твой Верный Спутник’] ТВС [/acronym] — позволяет ввести сокращение (акроним), которое будет показывать пояснение при наведении на него мышью.
[abbr] аббревиатура [/abbr] — указывает, что последовательность символов является аббревиатурой.
[abbr=расшифровка_аббревиатуры] аббревиатура [/abbr]
[cite] Сноска [/cite] — помечает текст как цитату или сноску на другой материал.
[cite свойства] Сноска [/cite]
[address] адрес [/address] — тэг предназначен для хранения информации об авторе и может включать в себя любые элементы вроде ссылок, текста, выделений и т.д.
[address свойства] адрес [/address]
[text-demo] — подключает файл text-demo.txt (можно использовать для проверки стилей шаблона).
[hr] — тэг вставки линии на всю ширину доступной области:&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u044d\u0433\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435_\u0442\u044d\u0433\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;17720-20623&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;работа_с_терминами&quot;&gt;Работа с терминами&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Для работы с терминами используется тройка элементов [dl], [dt], [dd], предназначенных для создания списка определений. Каждый такой список начинается с контейнера [dl], куда входит тег [dt], создающий термин и тег [dd], задающий определение этого термина. Закрывающий тег [/dt] не обязателен, поскольку следующий тег сообщает о завершении предыдущего элемента. Тем не менее, хорошим стилем является закрывать все теги.
Пример:
[dl]
    [dt] Термин 1 [/dt]
        [dd] Определение термина 1 [/dd]
    [dt] Термин 2 [/dt]
        [dd] Определение термина 2 [/dd]
[/dl]
Как правило, в документе, когда упоминается новый термин, он выделяется курсивом и дается его определение. При использовании этого термина в дальнейшем, он считается уже известным читателю. Тег [dfn] применяется для выделения таких терминов, при их первом появлении в тексте.
[dfn] Новый термин [/dfn]
[dfn свойства] Новый термин [/dfn]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0431\u043e\u0442\u0430_\u0441_\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;20624-22222&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;вставка_видео_и_других_flash-объектов&quot;&gt;Вставка видео и других flash-объектов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;[video] ссылка [/video] — универсальный тег.

Тэги под специализированные видеохостинги с использованием идентификатора:
[youtube] идентификатор [/youtube] — вставка видеоролика с YouTube.com
[rutube] идентификатор [/rutube] — вставка видеоролика с RuTube.ru
[googlevideo] идентификатор [/googlevideo] — вставка видеоролика с Google.com
[veoh] идентификатор [/veoh] — вставка видеоролика с Veoh.com
[smotri] идентификатор [/smotri] — вставка видеоролика с Smotri.com. Возможна модификация [smotricomvideo]

Тэги под специализированные видеохостинги с использованием ссылки:
[mailvideo] ссылка [/mailvideo] — вставка видеоролика с Mail.ru
[yandexvideo] ссылка [/yandexvideo] — вставка видеоролика с Yandex.ru

Любые flash-объекты (сторонние видеохостинги, flash-игры, flash-баннеры и т.д.) можно использовать с помощью: [flash=ширина,высота] адрес_объекта [/flash]
* Размер области определяется в пикселях.

Примеры:
[youtube]9L4YCG7dJeE[/youtube]
[video=youtube;9L4YCG7dJeE]https://youtu.be/9L4YCG7dJeE[/video]
[googlevideo]8420876204610684862[/googlevideo]
[veoh]v922088SBwxySaR[/veoh]
[yandexvideo]pugachev-alexander/1rgzbi6w6b.809/[/yandexvideo]&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 flash-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_\u0432\u0438\u0434\u0435\u043e_\u0438_\u0434\u0440\u0443\u0433\u0438\u0445_flash-\u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;22223-23996&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;отображение_примеров_различных_кодов&quot;&gt;Отображение примеров различных кодов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
BB-код в том числе предназначен для публикации примеров различных кодов. С помощью специального форматирования код будет только отображаться, но не исполняться. Кроме того, программный код будет отображаться с «цветовой подсветкой» (highlight).
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[prog=язык] текст программы [/prog]
где «язык» может принимать значения: cpp, objectivec, cs, delphi, avrasm, 1c, python, profile, perl, erlang, erlang_repl, apache, nginx, php, xml, html, css, java, javascript, vbscript, sql, lisp, django, scala, ruby, go, lua, vala, rsl, rib, mel, smalltalk, bash, cmake, axapta, vhdl, parser3, tex, haskell, dos, ini, diff, no-highlight.

[code] текст моноширинным шрифтом [/code] — любой код и текст.
[code=php] текст [/code] — код языка PHP с соответствующей «цветовой подсветкой».
[php] отображаемый HTML-код [/php] — код PHP с «цветовой подсветкой».
[html] отображаемый HTML-код [/html] — код HTML с «цветовой подсветкой».
[sql] отображаемый HTML-код [/sql] — SQL-код с «цветовой подсветкой».&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435_\u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432_\u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445_\u043a\u043e\u0434\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:22,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;23997-25531&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit19&quot; id=&quot;специальные_символы&quot;&gt;Специальные символы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Код	Символ	Для набора на клавиатуре нажмите*
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;amp;laquo;	«	ALT+0171
&amp;amp;raquo;	»	ALT+0187
&amp;amp;mdash;	—	ALT+0151
&amp;amp;copy;	©	ALT+0169
&amp;amp;reg;	®	ALT+0174
&amp;amp;trade;	™	ALT+0153
&amp;amp;#0047;	/	
&amp;amp;lt;	&amp;lt;	
&amp;amp;gt;	&amp;gt;	
&amp;amp;nbsp;	 	ALT+0160 — неразрывный пробел**
* — Зажмите кнопку ALT, наберите код, отпустите ALT. Работает в Windows.
** — Вставьте подряд несколько таких пробелов чтобы они не сливались в один:
&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; — теперь слева отступ в шесть пробелов!&lt;/pre&gt;

&lt;p&gt;
Возможные варианты символов, их названий и кодов доступны &lt;a href=&quot;https://www.hdsw.ru/?p=25&quot; class=&quot;urlextern&quot; title=&quot;https://www.hdsw.ru/?p=25&quot; rel=&quot;ugc nofollow&quot;&gt;здесь.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435_\u0441\u0438\u043c\u0432\u043e\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;25532-26383&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.hdsw.ru/?p=543&quot; class=&quot;urlextern&quot; title=&quot;https://www.hdsw.ru/?p=543&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на официальныый пост&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;26384-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 10:51:41 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_plugins_autosave</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autosave&amp;rev=1767771213</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;плагин_автосохранения&quot;&gt;Плагин автосохранения&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Автоматически сохраняет содержимое редактора (по умолчанию на 1 день) в локальное хранилище &lt;strong&gt;(localStorage)&lt;/strong&gt;.
&lt;br/&gt;

Это удалит автоматически сохраненное содержимое при отправке формы, содержащей редактор, или при &lt;strong&gt;sceditor.plugins.autosave.clear()&lt;/strong&gt; ручном вызове метода. При использовании пользовательского метода storageKeyего необходимо передать в качестве первого аргумента, clear()если требуется ручная очистка автоматически сохраненных данных.
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;plugin_note notered&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/images/smileys/exclaim.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:!:&quot; /&gt; Предупреждение!
&lt;br/&gt;

При использовании нескольких экземпляров редактора на странице всегда указывайте параметр storageKey или переопределяйте обработчики загрузки и сохранения.

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u0430\u0433\u0438\u043d \u0430\u0432\u0442\u043e\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u0430\u0433\u0438\u043d_\u0430\u0432\u0442\u043e\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1174&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;инициализация&quot;&gt;Инициализация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы включить плагин для работы с обычным текстом, добавьте &lt;strong&gt;autosave&lt;/strong&gt; в &lt;strong&gt;plugins&lt;/strong&gt; опцию, например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autosave&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;autosave&#039;,
    style: &#039;minified/themes/content/default.min.css&#039;
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Вот и всё! Теперь содержимое редактора будет сохраняться в localStorage в течение 1 дня.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1175-1697&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;параметры&quot;&gt;Параметры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы указать параметры автосохранения, добавьте &lt;strong&gt;autosave&lt;/strong&gt; в объект &lt;strong&gt;options&lt;/strong&gt; свойство с желаемыми параметрами, например:
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autosave&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;dragdrop&#039;,
    style: &#039;minified/themes/content/default.min.css&#039;,
    autosave: {
        storageKey: ...,
        saveHandler: function (data) {
            ...
        }
    }
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Плагин autosave поддерживает следующие параметры:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autosave&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;autosave: {
    // The storage key to use for storing the draft in local storage.
    // Key should start with &amp;quot;sce-autodraft-&amp;quot; for the autosave plugin to
    // remove it if it is passed the expires.
    // Defaults to &amp;quot;sce-autodraft-&amp;quot; plus the path and query string:
    storageKey: &#039;sce-autodraft-&#039; + location.pathname + location.search;,
    // Save handler function, see below for data object
    saveHandler: function (data) {
        ...
    },
    // Load handler function, see below for data object
    loadHandler: function () {
        ...
        return data;
    },
    // Number of milliseconds to keep drafts before clearing when using the
    // default load and save handlers.
    // Defaults to 24 hrs
    expires: 86400000
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Обработчик сохранения будет вызван с определенным значением, а обработчик загрузки должен вернуть следующий объект:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autosave&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;{
    // Object - contains the source mode caret position
    caret: {
        // Number - source editor caret start position
        start: Number
        // Number - source editor caret end position
        end: Number
    },
    // Boolean - if in source mode
    sourceMode: Boolean,
    // String - editors contents
    value: String,
    // Number - current timestamp
    time: Number
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1698-3726&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/plugins/autosave/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/plugins/autosave/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3727-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 07:33:33 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_plugins_autoyoutube</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autoyoutube&amp;rev=1767772631</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;плагин_autoyoutube&quot;&gt;Плагин AutoYoutube&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Автоматически преобразует ссылки на YouTube, вставленные в редактор, во встроенные видеоролики.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u0430\u0433\u0438\u043d AutoYoutube&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u0430\u0433\u0438\u043d_autoyoutube&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-220&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;инициализация&quot;&gt;Инициализация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Чтобы включить плагин для работы с обычным текстом, добавьте &lt;strong&gt;autoyoutube&lt;/strong&gt; в &lt;strong&gt;plugins&lt;/strong&gt; параметры и укажите параметры перетаскивания. Например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_autoyoutube&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;autoyoutube&#039;,
    style: &#039;minified/themes/content/default.min.css&#039;
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Теперь при вставке ссылки на &lt;strong&gt;YouTube&lt;/strong&gt; она будет преобразовываться во встроенный контент.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;221-843&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/plugins/autoyoutube/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/plugins/autoyoutube/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;844-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 07:57:11 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_plugins_dragdrop</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_plugins_dragdrop&amp;rev=1767772323</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;плагин_dragdrop&quot;&gt;Плагин DragDrop&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Добавляет поддержку перетаскивания файлов в SCEditor. Пример использования для загрузки изображений на &lt;a href=&quot;https://www.sceditor.com/posts/drag-drop-upload-demo/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/posts/drag-drop-upload-demo/&quot; rel=&quot;ugc nofollow&quot;&gt;imgur доступен здесь&lt;/a&gt;.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u0430\u0433\u0438\u043d DragDrop&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u0430\u0433\u0438\u043d_dragdrop&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-324&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;инициализация&quot;&gt;Инициализация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Чтобы включить плагин для работы с обычным текстом, добавьте &lt;strong&gt;dragdrop&lt;/strong&gt; в &lt;strong&gt;plugins&lt;/strong&gt; параметры и укажите параметры перетаскивания. Например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_dragdrop&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;dragdrop&#039;,
    style: &#039;minified/themes/content/default.min.css&#039;,
    dragdrop: {
        allowedTypes: ...,
        handleFile: function (file, createPlaceholder) {
            ...
        }
    }
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;325-909&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;параметры&quot;&gt;Параметры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Плагин поддерживает следующие параметры:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_dragdrop&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;dragdrop: {
    // Array of allowed mime types or null to allow all
    allowedTypes: [&#039;image/jpeg&#039;, &#039;image/png&#039;],
    // Function to return if a file is allowed or not,
    // defaults to always returning true
    isAllowed: function(file) {
        return true;
    },
    // If to extract pasted files like images pasted as
    // base64 encoded URI&#039;s. Defaults to true
    handlePaste: true,
    // Method that handles the files / uploading etc.
    handleFile: function (file, createPlaceholder) {
        // createPlaceholder function will insert a
        // loading placeholder into the editor and
        // return an object with inert(html) and
        // cancel() methods
&amp;nbsp;
        // For example:
        var placeholder = createPlaceholder();
&amp;nbsp;
        asyncUpload(file).then(function (url) {
            // Replace the placeholder with the image HTML
            placeholder.insert(&#039;&amp;lt;img src=\&#039;&#039; + url + &#039;\&#039; /&amp;gt;&#039;);
        }).catch(function () {
            // Error so remove the placeholder
            placeholder.cancel();
        });
    }
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;910-2113&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/plugins/dragdrop/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/plugins/dragdrop/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2114-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 07:52:03 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_plugins_plaintext</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_plugins_plaintext&amp;rev=1767771665</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;плагин_для_работы_с_обычным_текстом&quot;&gt;Плагин для работы с обычным текстом&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

При вставке содержимого в редактор удаляет все форматирование.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u0430\u0433\u0438\u043d_\u0434\u043b\u044f_\u0440\u0430\u0431\u043e\u0442\u044b_\u0441_\u043e\u0431\u044b\u0447\u043d\u044b\u043c_\u0442\u0435\u043a\u0441\u0442\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-207&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;инициализация&quot;&gt;Инициализация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Чтобы включить плагин для работы с обычным текстом, добавьте &lt;strong&gt;plaintext&lt;/strong&gt; в &lt;strong&gt;plugins&lt;/strong&gt; опцию, например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_plaintext&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;plaintext&#039;,
	style: &#039;minified/themes/content/default.min.css&#039;
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Вот и всё, теперь вся вставка в редактор будет осуществляться в виде обычного текста.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;208-745&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;переключить_режим_просмотра_обычного_текста&quot;&gt;Переключить режим просмотра обычного текста&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Установка параметра pastetext.addButtonв значение true изменяет поведение этого плагина, позволяя включать и выключать вставку обычного текста с помощью команды по умолчанию. Например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_plaintext&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
    plugins: &#039;plugin&#039;,
    pastetext: {
        addButton: true,
        enabled: false // Set to true to start in enabled state
    },
	style: &#039;minified/themes/content/default.min.css&#039;
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c_\u0440\u0435\u0436\u0438\u043c_\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430_\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e_\u0442\u0435\u043a\u0441\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;746-1442&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/plugins/plaintext/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/plugins/plaintext/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1443-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 07:41:05 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_plugins_undo</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_plugins_undo&amp;rev=1767771923</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;плагин_отмены&quot;&gt;Плагин отмены&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Этот плагин добавляет поддержку отмены/повтора действий в SCEditor.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043b\u0430\u0433\u0438\u043d \u043e\u0442\u043c\u0435\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043b\u0430\u0433\u0438\u043d_\u043e\u0442\u043c\u0435\u043d\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-168&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;инициализация&quot;&gt;Инициализация&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Чтобы включить плагин отмены, добавьте его &lt;strong&gt;undo&lt;/strong&gt; в &lt;strong&gt;plugins&lt;/strong&gt; параметры. Например:
&lt;br/&gt;

&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_plugins_undo&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script&amp;gt;
sceditor.create(textarea, {
	plugins: &#039;undo&#039;,
	style: &#039;minified/themes/content/default.min.css&#039;
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

Теперь сочетания клавиш &lt;strong&gt;ctrl+z, ctrl+shift+z&lt;/strong&gt; и &lt;strong&gt;ctrl+y&lt;/strong&gt; должны стабильно работать во всех браузерах.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;169-677&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.sceditor.com/documentation/plugins/undo/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/documentation/plugins/undo/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;678-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 07:45:23 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_sbbcodeparser</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_sbbcodeparser&amp;rev=1767780655</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sceditor_sbbcodeparser&quot;&gt;SCEditor SBBCodeParser&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;sceditorкак_сохранять_и_загружать_данные_в_из_mysql&quot;&gt;sceditor: Как сохранять и загружать данные в/из MySQL?&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
SBBCodeParser — это простой PHP-класс для парсинга BBCode, который упрощает добавление собственных BBCode-кодов.
&lt;/p&gt;

&lt;p&gt;
SBBCodeParser распространяется под лицензией &lt;abbr title=&quot;GNU Lesser General Public License&quot;&gt;LGPL&lt;/abbr&gt;, а исходный код доступен на GitHub .
&lt;/p&gt;

&lt;p&gt;
Пример использования:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_sbbcodeparser&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$parser = new SBBCodeParser_Document();
&amp;nbsp;
$parser-&amp;gt;add_emoticons(array(
	&#039;:)&#039; =&amp;gt; &#039;http://localhost/Classes/SCEditor-punbb/punbb-1.3.5/img/smilies/smile.png&#039;,
	&#039;=)&#039; =&amp;gt; &#039;http://localhost/Classes/SCEditor-punbb/punbb-1.3.5/img/smilies/smile.png&#039;
));
&amp;nbsp;
echo $parser-&amp;gt;parse(&#039;This should be [b]bold[/b] and this should be [i]italic[/i]&#039;)
	-&amp;gt;detect_links()
	-&amp;gt;detect_emails()
	-&amp;gt;detect_emoticons()
	-&amp;gt;get_html();&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Пример добавления пользовательского BBCode:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:sceditor_sbbcodeparser&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;script.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$bbcode = new SBBCodeParser_BBCode(&#039;youtube&#039;, function($content, $attribs)
{
    if(substr($content, 0, 23) === &#039;http://www.youtube.com/&#039;)
        $uri = $content;
    else
        $uri = &#039;http://www.youtube.com/v/&#039; . $content;
&amp;nbsp;
    return &#039;&#039;;
}, SBBCodeParser_BBCode::BLOCK_TAG, false, array(), array(&#039;text_node&#039;), SBBCodeParser_BBCode::AUTO_DETECT_EXCLUDE_ALL);
&amp;nbsp;
$parser-&amp;gt;add_bbcode($bbcode);&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В настоящее время по умолчанию включены следующие BB-коды:
&lt;/p&gt;
&lt;pre class=&quot;code js&quot;&gt;b
i
strong
em
u
s
blink
sub
sup
ins
del
right
left
center
justify
note
hidden
abbr
acronym
icq
skype
bing
google
wikipedia
youtube
vimeo
flash
paypal
pastebin
gist
twitter
tweets
googlemaps
pdf
scribd
spoiler
tt
pre
code
php
quote
font
size
color
list
ul
ol
li
*
table
th
h
tr
row
r
td
col
c
notag
nobbc
noparse
h1
h2
h3
h4
h5
h6
big
small
br
sp
hr
anchor
goto
jumpto
img
email
url&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SCEditor SBBCodeParser&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sceditor_sbbcodeparser&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1927&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.samclarke.com/2011/09/sbbcodeparser-php-bbcode-parser-class/&quot; class=&quot;urlextern&quot; title=&quot;https://www.samclarke.com/2011/09/sbbcodeparser-php-bbcode-parser-class/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на официальную статью&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com//samclarke/SBBCodeParser&quot; class=&quot;interwiki iw_github&quot; title=&quot;https://github.com//samclarke/SBBCodeParser&quot;&gt;Ссылка на Github&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sbbcodeparser-master.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:sbbcodeparser-master.zip (30.6 KB)&quot;&gt;Загрузить sbbcodeparser&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1928-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 10:10:55 +0000</pubDate>
        </item>
        <item>
            <title>sceditor_upload_image</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor_upload_image&amp;rev=1767738403</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sceditor_upload_image&quot;&gt;SCEditor upload image&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для вставки изображения достаточно вызвать метод `.bashrc` wysiwygEditorInsertHtml()или даже просто insert()использовать его в экземпляре редактора. insert()Метод `.bashrc` принимает BBCode, если используется плагин BBCode, в противном случае он принимает &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SCEditor upload image&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sceditor_upload_image&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-458&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;настройка_редактора_и_формы_загрузки&quot;&gt;Настройка редактора и формы загрузки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
$(function() { 
    $(&amp;quot;textarea&amp;quot;).sceditor({ 
		format: &#039;bbcode&#039;, 
        style: &#039;/minified/themes/content/default.min.css&#039;, 
    }); 
&amp;nbsp;
    // Сохраняем этот экземпляр редактора, чтобы iframe мог получить к нему доступ 
    window.sceditorInstance = $(&amp;quot;textarea&amp;quot;).sceditor(&amp;quot;instance&amp;quot;); 
}); 
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/textarea.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;textarea&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/textarea.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;textarea&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/form.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;form&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.imageshack.us/redirect_api.php&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;enctype&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;multipart/form-data&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;upload&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Изображение: &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;file&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;media&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&amp;nbsp;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Изменить размер изображения? &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;checkbox&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;optimage&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;optimage&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;checked&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;onclick&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;optsize.disabled=!this.checked&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&amp;nbsp;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Размер: &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/select.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;select&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;optsize&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;optsize&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;resample&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;оптимизировать без изменения размера&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;100x100&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;100x75 (аватар)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;150x150&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;150x112 (миниатюра)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;320x320&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;320x240 (для веб-сайтов и электронной почты)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;640x640&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;640x480 (для форумов)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;800x800&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;800x600 (15-дюймовый монитор)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1024x1024&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;1024x768 (17-дюймовый монитор)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1280x1280&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;1280x1024 (19-дюймовый монитор)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1600x1600&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;1600x1200 (21-дюймовый монитор)&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/option.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;option&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/select.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;select&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&amp;nbsp;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;key&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;DEVELOPER_KEY_HERE&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;rembar&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;yes&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;error_url&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://example.com/imageshack-example.html&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;success_url&amp;quot;&lt;/span&gt; &lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;    &amp;lt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Upload&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/p.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;p&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/form.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;form&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;style&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;visibility: hidden; height: 0; width: 0&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;upload&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;upload&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/iframe.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;iframe&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

imageshack-example.html — страница, на которую осуществляется перенаправление через &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; ImageShack. Это приведет к вставке &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода или отображению сообщения об ошибке.
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0438 \u0444\u043e\u0440\u043c\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_\u0438_\u0444\u043e\u0440\u043c\u044b_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;459-2959&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;imageshack-examplehtml&quot;&gt;imageshack-example.html&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt; 
// Парсер строки запроса, источник: http://stevenbenner.com/2010/03/javascript-regex-trick-parse-a-query-string-into-an-object/ 
var queryString = {}; 
window.location.search.replace( 
    new RegExp(&amp;quot;([^?=&lt;span class=&quot;sc1&quot;&gt;&amp;amp;]+)(=([^&amp;amp;]*))?&amp;quot;, &amp;quot;g&amp;quot;), &lt;/span&gt;
&lt;span class=&quot;sc1&quot;&gt;    function($0, $1, $2, $3) { queryString[$1] = $3;&lt;/span&gt; } 
); 
&amp;nbsp;
if(queryString.url) 
{ 
    var img_url = &amp;quot;https://&amp;quot; + 
        queryString.server + &amp;quot;.imageshack.us/img&amp;quot; + 
        queryString.server + &amp;quot;/&amp;quot; + 
        queryString.bucket + &amp;quot;/&amp;quot; + queryString.filename; 
&amp;nbsp;
    var html = &amp;quot;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/a.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;a&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; + queryString.url + &lt;span class=&quot;st0&quot;&gt;&amp;quot;\&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&amp;quot; + 
            &amp;quot;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/img.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;img&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; + img_url + &lt;span class=&quot;st0&quot;&gt;&amp;quot;\&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;alt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;\&lt;span class=&quot;st0&quot;&gt;&amp;quot;Uploaded Image\&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;&amp;quot; + 
        &amp;quot;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;a&amp;lt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;; &lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;    // Этот метод вызывает wysiwygEditorInsertHtml в родительском окне &lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;    // экземпляре SCEditor &lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;    parent.window.sceditorInstance.wysiwygEditorInsertHtml(html); &lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;} &lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;else if(queryString.message) &lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;    alert(queryString.message); &lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

После отправки формы изображение будет загружено в ImageShack через iframe. После загрузки ImageShack перенаправит пользователя внутрь iframe на страницу с imageshack-example.htmlфайлом, где будет осуществлена ​​вставка изображения или отображено сообщение об ошибке.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;imageshack-example.html&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;imageshack-examplehtml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2960-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 06 Jan 2026 22:26:43 +0000</pubDate>
        </item>
        <item>
            <title>sceditor</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:sceditor&amp;rev=1767779845</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sceditor&quot;&gt;SCEditor&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;SCEditor&lt;/strong&gt; — это легковесный, бесплатный (open-source) JavaScript-редактор для веба, который позволяет пользователям форматировать текст в стилях BBCode и &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; в режиме «что видишь, то и получишь» (&lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;), идеально подходящий для форумов, комментариев и блогов, где нужна простая, но функциональная вставка контента, включая таблицы, картинки, видео и смайлики. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SCEditor&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sceditor&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-642&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;основные_особенности_sceditor&quot;&gt;Основные особенности SCEditor:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; (What You See Is What You Get): Отображает контент так же, как он будет выглядеть в итоге, упрощая форматирование.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Поддержка форматов: Работает как с BBCode (для форумов), так и с &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; (для веб-страниц).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Расширяемость: Легко добавляет функционал через плагины (например, для перетаскивания изображений, YouTube-видео).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Инструменты: Включает базовые функции: жирный, курсив, подчеркивание, выравнивание, вставка ссылок, таблиц, изображений, смайликов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Легковесный: Разработан для быстрой загрузки, без необходимости сложной инсталляции.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Темы и иконки: Возможность настройки внешнего вида. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_1.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 SCEditor:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435_\u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438_sceditor&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;643-1844&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;быстрый_старт&quot;&gt;Быстрый старт&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u044b\u0441\u0442\u0440\u044b\u0439_\u0441\u0442\u0430\u0440\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1845-1882&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;включите_javascript_и_css&quot;&gt;Включите JavaScript и CSS :&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@3/minified/themes/default.min.css&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@3/minified/sceditor.min.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

Либо
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc-1&quot;&gt;&amp;lt;!-- Include the default theme --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;minified/themes/default.min.css&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc-1&quot;&gt;&amp;lt;!-- Include the editors JS --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;minified/sceditor.min.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc-1&quot;&gt;&amp;lt;!-- Include the BBCode or XHTML formats --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;minified/formats/bbcode.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;minified/formats/xhtml.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435 JavaScript \u0438 CSS :&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435_javascript_\u0438_css&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1883-2514&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;инициализируйте_редактор&quot;&gt;Инициализируйте редактор.&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_1.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;bbcode&quot;&gt;BBCode&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы включить плагин BBCode, просто добавьте его &lt;strong&gt;bbcode&lt;/strong&gt; в &lt;strong&gt;format&lt;/strong&gt; параметры. 
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@3/minified/formats/bbcode.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// Replace the textarea #example with SCEditor&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; textarea &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;example&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
sceditor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;bbcode&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	style&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;https://cdn.jsdelivr.net/npm/sceditor@3/minified/themes/content/default.min.css&#039;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_2.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_bbcode_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;xhtml&quot;&gt;XHTML&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы включить плагин XHTML, просто добавьте его &lt;strong&gt;xhtml&lt;/strong&gt; в &lt;strong&gt;format&lt;/strong&gt; параметры. 
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://cdn.jsdelivr.net/npm/sceditor@3/minified/formats/xhtml.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// Replace the textarea #example with SCEditor&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; textarea &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;getElementById&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;example&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
sceditor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;create&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	format&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;xhtml&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
	style&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;https://cdn.jsdelivr.net/npm/sceditor@3/minified/themes/content/default.min.css&#039;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_xhtml_2.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_xhtml_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_xhtml_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2515-3874&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;параметры&quot;&gt;Параметры&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3875-3905&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;указание_параметров&quot;&gt;Указание параметров :&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Все параметры следует передавать через конструктор.
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;// Create the editor
sceditor.create(textarea, {
    // Options go here
&amp;nbsp;
    plugins: &#039;undo&#039;,
    format: &#039;bbcode&#039;,
	toolbar: &#039;bold,italic,underline|source&#039;,
	locale: &#039;no-NB&#039;
});&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_2.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;панель_инструментов&quot;&gt;панель инструментов&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
toolbar String — список всех встроенных команд.
&lt;br/&gt;

Список команд, разделённых запятыми. Для разделения команд на группы используйте символ черточки (|) вместо запятой. Например:«bold,italic,underline|source»
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;панель_инструментов_исключить&quot;&gt;панель инструментов Исключить&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
toolbarExclude String По умолчанию &lt;strong&gt;null&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Список команд, разделенных запятыми, которые следует исключить из панели инструментов. Оставьте значение «как», nullчтобы ничего не исключать.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;стиль&quot;&gt;стиль&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
style String
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адрес таблицы стилей, используемой для оформления содержимого &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;- редактора.
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;var textarea = document.getElementById(&#039;example&#039;);
sceditor.create(textarea, {
	style: &#039;minified/themes/content/default.min.css&#039;
});&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;шрифты&quot;&gt;шрифты&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
fonts String. По умолчанию используется&lt;strong&gt;«Arial,Arial Black,Comic Sans MS,Courier New,Georgia,Impact,Sans-serif,Serif,Times New Roman,Trebuchet MS,Verdana»&lt;/strong&gt;
&lt;br/&gt;

Список шрифтов, разделенных запятыми, для использования с селектором шрифтов.
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;var textarea = document.getElementById(&#039;example&#039;);
sceditor.create(textarea, {
	fonts: &#039;Arial,Courier New,Times New Roman&#039;
});&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_3.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;цвета&quot;&gt;цвета&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
цвета Строка По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Список шестнадцатеричных значений цветов, разделенных запятыми, должен содержать символы черточки (|) для обозначения новых столбцов. Если задано значение, nullцвета будут сгенерированы автоматически.
&lt;/p&gt;

&lt;p&gt;
Например:
&lt;/p&gt;

&lt;p&gt;
colors: &amp;#039;#ffff00,#ff00ff,#00ffff|#ff0000,#00ff00,#0000ff&amp;#039;,
Результатом будет:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;локация&quot;&gt;локация&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
locale Строка По умолчанию «en»
&lt;/p&gt;

&lt;p&gt;
Укажите используемую локаль, например: en, en-US, fr, и т. д.
&lt;/p&gt;

&lt;p&gt;
ВажныйФайл языка необходимо подключить после основного JS-файла редактора, но до создания самого редактора. Например:
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;../minified/jquery.sceditor.min.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;../languages/nl.js&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc-1&quot;&gt;&amp;lt;!-- Create the editor after including the translation --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
sceditor.create(
    ...
);
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;кодировка&quot;&gt;кодировка&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
charset String По умолчанию используется«utf-8»
&lt;/p&gt;

&lt;p&gt;
Кодировка, используемая для содержимого &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;- редактора .
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;startinsourcemode&quot;&gt;startInSourceMode&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
startInSourceMode — логическое значение, по умолчанию —false
&lt;/p&gt;

&lt;p&gt;
Чтобы запустить редактор в режиме исходного кода, установите значение, указывающее на trueзапуск в режиме исходного кода.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;смайликивключены&quot;&gt;смайликиВключены&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
emoticonsEnabled Bool Defaults totrue
&lt;/p&gt;

&lt;p&gt;
Если необходимо включить смайлики. Установите значение false«отключить смайлики».
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;emoticonscompat&quot;&gt;emoticonsCompat&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
emoticonsCompat Bool Defaults to false
&lt;/p&gt;

&lt;p&gt;
Включает или отключает режим совместимости со смайликами.
&lt;/p&gt;

&lt;p&gt;
Если эта функция включена, смайлики должны быть окружены пробелами или символами конца строки . Например, если у вас есть смайлик с кодом :/, в режиме совместимости он не заменит :/в &lt;a href=&quot;http://.&quot; class=&quot;urlextern&quot; title=&quot;http://.&quot; rel=&quot;ugc nofollow&quot;&gt;http://.&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;emoticonsroot&quot;&gt;emoticonsRoot&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
emoticonsRoot String По умолчанию — пустая строка
&lt;/p&gt;

&lt;p&gt;
Корневой &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; всех смайликов. Эта строка будет добавляться в начало всех &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адресов смайликов.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;смайлики&quot;&gt;смайлики&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
объект смайликов
&lt;/p&gt;

&lt;p&gt;
Объект в следующем формате:
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;{
    // Emoticons to be included in the dropdown
    dropdown: {
        &#039;:)&#039;: &#039;emoticons/smile.png&#039;,
        &#039;:angel:&#039;: &#039;emoticons/angel.png&#039;
    },
    // Emoticons to be included in the more section
    more: {
        &#039;:alien:&#039;: &#039;emoticons/alien.png&#039;,
        &#039;:blink:&#039;: &#039;emoticons/blink.png&#039;
    },
    // Emoticons that are not shown in the dropdown but will still
    // be converted. Can be used for things like aliases
    hidden: {
        &#039;:aliasforalien:&#039;: &#039;emoticons/alien.png&#039;,
        &#039;:aliasforblink:&#039;: &#039;emoticons/blink.png&#039;
    }
}&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;иконки&quot;&gt;иконки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
icons Строка По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Набор значков для использования в редакторе. Если это значение равно null, набор значков использоваться не будет, и вместо него будут загружены значки из текущей темы.
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;var textarea = document.getElementById(&#039;example&#039;);
	sceditor.create(textarea, {
		format: &#039;xhtml&#039;,
		icons: &#039;material&#039;
});&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
В комплект входят наборы иконок в монохромном стиле (используйте monocons в качестве значения параметра)
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_4.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

 и иконки в стиле Material Design (используйте material в качестве значения параметра).
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Asceditor&amp;amp;media=software:development:web:docs:web:wysiwyg:sceditor_live_5.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor_live_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor_live_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ширина&quot;&gt;ширина&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
ширина — строка или целое число. По умолчанию —null
&lt;/p&gt;

&lt;p&gt;
Начальная ширина редактора. Может быть либо целым числом, которое будет рассматриваться как значение в пикселях, либо строкой в ​​процентах. Например: «100%».
&lt;/p&gt;

&lt;p&gt;
Если установить значение null, ширина будет равна ширине заменяемого текстового поля.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;высота&quot;&gt;высота&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
высота. Строка или целое число. По умолчанию -null
&lt;/p&gt;

&lt;p&gt;
Начальная высота редактора. Может быть либо целым числом, которое будет рассматриваться как значение в пикселях, либо строкой в ​​процентах. Например: «100%».
&lt;/p&gt;

&lt;p&gt;
Если задать значение null, высота будет равна высоте заменяемого текстового поля.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizeenabled&quot;&gt;resizeEnabled&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeEnabled Bool По умолчаниюtrue
&lt;/p&gt;

&lt;p&gt;
Если это позволяет изменять размер редактора, в правом нижнем углу (левом нижнем углу в режиме LTR) редактора будет добавлен небольшой маркер, позволяющий изменять его размер.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizeminwidth&quot;&gt;resizeMinWidth&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeEnabled int По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Минимальная ширина, до которой можно изменять размер редактора. Установите значение null для половины ширины текстового поля или -1 для неограниченной ширины.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizeminheight&quot;&gt;resizeMinHeight&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeMinHeight int По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Минимальная высота, на которой можно изменять размер редактора. Установите значение null для половины высоты текстового поля или -1 для неограниченной высоты.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizemaxheight&quot;&gt;resizeMaxHeight&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeMaxHeight int По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Максимальная высота, до которой можно изменять размер редактора. Установите значение null для удвоения высоты текстового поля или -1 для неограниченной высоты.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizemaxwidth&quot;&gt;resizeMaxWidth&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeMaxWidth int По умолчанию null
&lt;/p&gt;

&lt;p&gt;
Максимальная ширина, до которой можно изменять размер редактора. Установите значение null для удвоения ширины текстового поля или -1 для неограниченной ширины.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizeheight&quot;&gt;resizeHeight&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeHeight — логическое значение . По умолчанию используетсяtrue
&lt;/p&gt;

&lt;p&gt;
Если необходимо включить изменение высоты редактора.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;resizewidth&quot;&gt;resizeWidth&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
resizeWidth — логическое значение. По умолчанию:true
&lt;/p&gt;

&lt;p&gt;
Если необходимо включить изменение ширины редактора.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;dateformat&quot;&gt;dateFormat&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
dateFormat Строковый формат . По умолчанию используется«year-month-day»
&lt;/p&gt;

&lt;p&gt;
Формат даты, используемый командой date. Этот параметр будет переопределен, если в текущей локали указан другой формат даты.
&lt;/p&gt;

&lt;p&gt;
Слова «год», «месяц» и «день» будут заменены на текущие год, месяц и день пользователя.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;toolbarcontainer&quot;&gt;toolbarContainer&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элемент toolbarContainer по умолчанию null
&lt;/p&gt;

&lt;p&gt;
&lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-узел, в который следует встроить панель инструментов. По умолчанию панель инструментов добавляется над iframe.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включить_фильтрацию_вставки&quot;&gt;включить фильтрацию вставки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
enablePasteFiltering bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если включить фильтрацию при вставке текста, он будет отфильтрован с помощью любых плагинов.
&lt;/p&gt;

&lt;p&gt;
При использовании плагина BBCode любой &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-код, не содержащий допустимого BBCode, будет удален.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;только_для_чтения&quot;&gt;только для чтения&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
readOnly bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если редактор настроен только для чтения.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ртл&quot;&gt;ртл&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
rtl bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если необходимо перевести редактор в режим чтения справа налево.
&lt;/p&gt;

&lt;p&gt;
Это можно изменить во время выполнения с помощью соответствующего rtl(bool)метода.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;автофокус&quot;&gt;автофокус&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
autofocus bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если необходимо включить автоматическую фокусировку редактора при загрузке страницы.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;автофокусконец&quot;&gt;автофокусКонец&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
autofocusEnd bool По умолчаниюtrue
&lt;/p&gt;

&lt;p&gt;
Если курсор следует размещать в конце при автоматической фокусировке или в начале.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;авторазвернуть&quot;&gt;авторазвернуть&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
autoExpand bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если необходимо включить автоматическое расширение редактора в соответствии с содержимым.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;автоматическое_обновление&quot;&gt;автоматическое обновление&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
autoUpdate bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если это так, то исходное текстовое поле будет обновлено текущим значением редактора, когда редактор потеряет фокус.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;runwithoutwysiwygsupport&quot;&gt;runWithoutWysiwygSupport&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
runWithoutWysiwygSupport bool По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Если запускать редактор исходного кода, когда в браузере отсутствует поддержка &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;- редактора. Это применимо только к мобильным ОС, поскольку все современные настольные браузеры поддерживают &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;- редактирование.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;идентификатор&quot;&gt;идентификатор&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
id Строка. По умолчанию используетсяnull
&lt;/p&gt;

&lt;p&gt;
Идентификатор для назначения редактора.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;плагины&quot;&gt;плагины&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
plugins String По умолчанию используется пустая строка
&lt;/p&gt;

&lt;p&gt;
Список плагинов, разделённых запятыми. Например:«plugin1,plugin2»
&lt;/p&gt;

&lt;p&gt;
Список плагинов по умолчанию см. в документации к плагинам.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;проверка_орфографии&quot;&gt;проверка орфографии&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Проверка орфографии Логическое значение По умолчаниюtrue
&lt;/p&gt;

&lt;p&gt;
Если нужно включить встроенную проверку орфографии браузера. Эта опция действительно полезна только в том случае, если вы хотите отключить встроенную проверку орфографии браузера.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;disableblockremove&quot;&gt;disableBlockRemove&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
disableBlockRemove Логическое значение По умолчанию false
&lt;/p&gt;

&lt;p&gt;
По умолчанию редактор удаляет блочные элементы, когда курсор находится в начале элемента и нажата клавиша Backspace. Эта опция позволяет отключить такое поведение.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;parseroptions&quot;&gt;parserOptions&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Объект parserOptions. По умолчанию используется пустой объект.
&lt;/p&gt;

&lt;p&gt;
Объект с параметрами для передачи в функцию BBCodeParser. Параметры следующие:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; breakBeforeBlock&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если необходимо добавить перевод строки перед блоком BB-кодов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; breakStartBlock&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если нужно добавить перевод строки в начало блока BB-кодов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; breakEndBlock&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если нужно добавить перевод строки в конец блока BB-кодов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; breakAfterBlock&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если нужно добавить перевод строки после блока BB-кодов.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fixInvalidNesting&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если необходимо исправить некорректные вложенные BBCode, такие как блочные BBCode внутри встроенных BBCode.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fixInvalidChildren&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если необходимо исправить дочерние элементы, которые не должны быть дочерними элементами родительского BB-кода.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; removeEmptyTags&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Если нужно удалить пустые теги.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; quoteType&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Тип кавычек, используемых для атрибутов BBCode.
&lt;br/&gt;

Дополнительную информацию см. в разделе «Формат BBCode» .
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;bbcodetrim&quot;&gt;bbcodeTrim&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
bbcodeTrim Логическое значение По умолчанию false
&lt;/p&gt;

&lt;p&gt;
Важный Это применимо только при использовании редактора в режиме BBCode.
&lt;/p&gt;

&lt;p&gt;
Удаляет пустое пространство в начале и конце значения редактора.
&lt;/p&gt;

&lt;p&gt;
Это не влияет на содержимое тегов BBCode или пробелы между ними, только на пробелы в начале и конце значения редактора.
&lt;/p&gt;

&lt;p&gt;
Например:
&lt;/p&gt;

&lt;p&gt;
[b]  example  [/b]
&lt;/p&gt;

&lt;p&gt;
[b]  example  [/b]
&lt;/p&gt;

&lt;p&gt;
станет:
&lt;/p&gt;

&lt;p&gt;
[b]  example  [/b]
&lt;/p&gt;

&lt;p&gt;
[b]  example  [/b]
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;dropdowncss&quot;&gt;dropDownCss&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Объект dropDownCss по умолчанию представляет собой пустой объект.
&lt;/p&gt;

&lt;p&gt;
Дополнительный &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;-код для добавления в выпадающее меню (например, z-index).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разрешенные_теги&quot;&gt;разрешенные теги&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
массив allowedTags &amp;lt;string&amp;gt; По умолчанию[]
&lt;/p&gt;

&lt;p&gt;
Массив дополнительных тегов, которые должны быть разрешены в содержимом редактора.
&lt;/p&gt;

&lt;p&gt;
По умолчанию пользовательские &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элементы удаляются средством очистки &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-кода. Эта опция позволяет указать любые пользовательские &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-элементы, которые должны быть разрешены.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;разрешенные_атрибуты&quot;&gt;разрешенные атрибуты&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
allowedAttributes Array&amp;lt;string&amp;gt; Defaults to[]
&lt;/p&gt;

&lt;p&gt;
Набор дополнительных атрибутов, разрешенных для тегов в содержимом редактора.
&lt;/p&gt;

&lt;p&gt;
По умолчанию &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-санитайзер удаляет пользовательские атрибуты. Эта опция позволяет указать любые пользовательские атрибуты, которые должны быть разрешены.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 :&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3906-22060&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.sceditor.com/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на официальны сайт&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/samclarke/SCEditor&quot; class=&quot;interwiki iw_github&quot; title=&quot;https://github.com/samclarke/SCEditor&quot;&gt;Ссылка на Github&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:sceditor-3.2.0.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:sceditor-3.2.0.zip (649.8 KB)&quot;&gt;Загрузить SCEditor-3.2.0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.sceditor.com/api/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sceditor.com/api/&quot; rel=&quot;ugc nofollow&quot;&gt;Документация / API&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;22061-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 09:57:25 +0000</pubDate>
        </item>
        <item>
            <title>tinymce_upload_image_ajax_php_mysql</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;rev=1767958519</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;загрузка_изображений_в_tinymce_с_помощью_ajax_и_php&quot;&gt;Загрузка изображений в TinyMCE с помощью Ajax и PHP&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В предыдущем уроке мы объяснили, как использовать редактор TinyMCE для сохранения контента с помощью Ajax, PHP и MySQL . В этом уроке мы расскажем, как реализовать загрузку изображений в редакторе TinyMCE с помощью Ajax и PHP .
&lt;/p&gt;

&lt;p&gt;
TinyMCE — это широко известный &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-редактор, который активно используется в веб-приложениях для создания &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-контента. Он поддерживает форматирование текста, вставку таблиц, ссылок, изображений и многое другое.
&lt;/p&gt;

&lt;p&gt;
TinyMCE имеет множество плагинов, позволяющих вставлять изображения в редактор из различных источников. Однако, возможность выбора изображения и его загрузки на сервер для вставки в редактор не предусмотрена. Для этого нам необходимо разработать собственный функционал.
&lt;/p&gt;

&lt;p&gt;
Итак, если вы ищете решение для загрузки изображений в редактор TinyMCE, то вы попали по адресу.
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce_upload_image_ajax_php_mysql&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce-image-upload-min.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce-image-upload-min.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce-image-upload-min.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

В этом уроке мы шаг за шагом с помощью демонстрации в реальном времени покажем, как загрузить изображение из редактора TinyMCE и вставить его в редактор.
&lt;/p&gt;

&lt;p&gt;
Итак, давайте реализуем загрузку изображений в TinyMCE с помощью Ajax и PHP. Основные файлы:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;index.php&lt;/strong&gt; : PHP-файл для загрузки редактора TinyMCE.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tinymce_editor.js&lt;/strong&gt; : JavaScript-файл для инициализации редактора TinyMCE и загрузки изображений с помощью Ajax.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;upload.php&lt;/strong&gt; : PHP-файл для обработки загрузки изображений на сервер.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 TinyMCE \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Ajax \u0438 PHP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439_\u0432_tinymce_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_ajax_\u0438_php&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2427&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;шаг_1подключите_tinymce_и_jquery&quot;&gt;Шаг 1: Подключите TinyMCE и jQuery.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы скачали редактор TinyMCE, сохранили его в папку tinymce и подключили к &lt;code&gt;index.php&lt;/code&gt; файлу. Также мы подключим jQuery и пользовательский &lt;code&gt;tinymce_editor.js&lt;/code&gt; файл JavaScript.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script src=&amp;quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; src=&amp;quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&amp;quot;tinymce/tinymce.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&amp;quot;tinymce/tinymce.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&amp;quot;js/tinymce_editor.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;script src=&amp;quot;js/tinymce_editor.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 1: \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 TinyMCE \u0438 jQuery.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_1\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435_tinymce_\u0438_jquery&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2428-3145&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;шаг_2создайте_форму_с_текстовым_полем&quot;&gt;Шаг 2: Создайте форму с текстовым полем.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;index.php&lt;/code&gt; файле мы создадим форму с текстовым полем для загрузки редактора TinyMCE.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	 &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;container&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;row&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;					&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;row&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;					
		&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;form id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
			&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;br&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;				&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;br&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;				
		&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;		&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;		
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;div&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2: \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u043e\u0440\u043c\u0443 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u0435\u043c.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_2\u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435_\u0444\u043e\u0440\u043c\u0443_\u0441_\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c_\u043f\u043e\u043b\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3146-3754&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;шаг_3инициализация_редактора_tinymce&quot;&gt;Шаг 3: Инициализация редактора TinyMCE&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы инициализируем редактор TinyMCE, чтобы преобразовать текстовое поле в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-редактор TinyMCE &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;tinymce.init({.init({
	selector: &amp;quot;textarea&amp;quot;,: &amp;quot;textarea&amp;quot;,
	plugins: &amp;quot;code&amp;quot;,: &amp;quot;code&amp;quot;,
	toolbar: &amp;quot;undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link code image_upload&amp;quot;,: &amp;quot;undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link code image_upload&amp;quot;,
	menubar:false,:false,
    statusbar: false,: false,
	content_style: &amp;quot;.mce-content-body {font-size:15px;font-family:Arial,sans-serif;}&amp;quot;,: &amp;quot;.mce-content-body {font-size:15px;font-family:Arial,sans-serif;}&amp;quot;,
	height: 200: 200
});});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3: \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 TinyMCE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_3\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3755-4663&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;шаг_4добавьте_кнопку_загрузки_изображения&quot;&gt;Шаг 4: Добавьте кнопку загрузки изображения.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы реализуем функциональность для добавления значка загрузки изображения на панель инструментов TinyMCE. Нам также потребуется добавить название кнопки &lt;code&gt;image_upload&lt;/code&gt; на панель инструментов.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;setup: function(ed) {		: function(ed) {		
	ed.addButton(&#039;image_upload&#039;, {.addButton(&#039;image_upload&#039;, {
		tooltip: &#039;Upload Image&#039;,: &#039;Upload Image&#039;,
		icon: &#039;image&#039;,: &#039;image&#039;,
		onclick: function () {: function () {
			fileInput.trigger(&#039;click&#039;);.trigger(&#039;click&#039;);
		}}
	});});
}}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4: \u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_4\u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435_\u043a\u043d\u043e\u043f\u043a\u0443_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4664-5445&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;шаг_5обработка_просмотра_и_загрузки_изображений&quot;&gt;Шаг 5: Обработка просмотра и загрузки изображений.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы реализуем функциональность для выбора изображения при нажатии кнопки загрузки изображения, выполнения Ajax-запроса к &lt;code&gt;upload.php&lt;/code&gt; файлу для загрузки изображения на сервер, а также для вставки изображения в редактор TinyMCE.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;var fileInput = $(&#039;&amp;lt;input id=&amp;quot;tinymce-uploader&amp;quot; type=&amp;quot;file&amp;quot; name=&amp;quot;pic&amp;quot; accept=&amp;quot;image/*&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;&#039;); fileInput = $(&#039;&amp;lt;input id=&amp;quot;tinymce-uploader&amp;quot; type=&amp;quot;file&amp;quot; name=&amp;quot;pic&amp;quot; accept=&amp;quot;image/*&amp;quot; style=&amp;quot;display:none&amp;quot;&amp;gt;&#039;);
$(ed.getElement()).parent().append(fileInput);(ed.getElement()).parent().append(fileInput);
&amp;nbsp;
fileInput.on(&amp;quot;change&amp;quot;,function(){			.on(&amp;quot;change&amp;quot;,function(){			
	var file = this.files[0];var file = this.files[0];
	var reader = new FileReader();			var reader = new FileReader();			
	var formData = new FormData();var formData = new FormData();
	var files = file;var files = file;
	formData.append(&amp;quot;file&amp;quot;,files);.append(&amp;quot;file&amp;quot;,files);
	formData.append(&#039;filetype&#039;, &#039;image&#039;);				.append(&#039;filetype&#039;, &#039;image&#039;);				
	jQuery.ajax({.ajax({
		url: &amp;quot;upload.php&amp;quot;,: &amp;quot;upload.php&amp;quot;,
		type: &amp;quot;post&amp;quot;,: &amp;quot;post&amp;quot;,
		data: formData,: formData,
		contentType: false,: false,
		processData: false,: false,
		async: false,async: false,
		success: function(response){: function(response){
			var fileName = response;var fileName = response;
			if(fileName) {if(fileName) {
				ed.insertContent(&#039;&amp;lt;img src=&amp;quot;upload/&#039;+fileName+&#039;&amp;quot;/&amp;gt;&#039;);.insertContent(&#039;&amp;lt;img src=&amp;quot;upload/&#039;+fileName+&#039;&amp;quot;/&amp;gt;&#039;);
			}}
		}}
	});		});		
	reader.readAsDataURL(file);	 .readAsDataURL(file);	 
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5: \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_5\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430_\u0438_\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5446-7275&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;шаг_6загрузка_изображения_на_сервер&quot;&gt;Шаг 6: Загрузка изображения на сервер&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;upload.php&lt;/code&gt; файле мы реализуем функциональность для загрузки файла изображения на сервер в uploadпапку и возврата ответа в виде имени загруженного файла.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce_upload_image_ajax_php_mysql&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;upload.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;file&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;file&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fileType&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;filetype&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;filetype&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileType&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;image&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileType&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;image&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;re0&quot;&gt;$validExtension&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;png&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;jpeg&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;jpg&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;png&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;jpeg&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;jpg&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$uploadDir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;upload/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;upload/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/pathinfo&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;pathinfo&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploadDir&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PATHINFO_EXTENSION&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/pathinfo&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;pathinfo&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploadDir&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PATHINFO_EXTENSION&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/strtolower&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;strtolower&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/strtolower&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;strtolower&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/in_array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;in_array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$validExtension&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/in_array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;in_array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$fileExtension&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$validExtension&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/move_uploaded_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;move_uploaded_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;file&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploadDir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/move_uploaded_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;move_uploaded_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;file&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$uploadDir&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; 
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$fileName&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6: \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_6\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f_\u043d\u0430_\u0441\u0435\u0440\u0432\u0435\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7276-8400&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://coderszine.com/tinymce-upload-image-with-ajax-and-php/&quot; class=&quot;urlextern&quot; title=&quot;https://coderszine.com/tinymce-upload-image-with-ajax-and-php/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce-image-upload.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce-image-upload.zip (227.7 KB)&quot;&gt;Загрузка изображений в TinyMCE с помощью Ajax и PHP&lt;/a&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
——————————————
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8401-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Jan 2026 11:35:19 +0000</pubDate>
        </item>
        <item>
            <title>tinymce-editor_ajax_php_mysql</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;rev=1767958447</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;загрузка_динамического_редактора_tinymce_с_использованием_ajax_php_и_mysql&quot;&gt;Загрузка динамического редактора TinyMCE с использованием Ajax, PHP и MySQL.&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В предыдущем уроке мы объяснили, как реализовать загрузку изображений в TinyMCE с помощью Ajax и PHP . В этом уроке вы узнаете, как загружать динамические изображения в редакторе TinyMCE с помощью Ajax, PHP и MySQL.
&lt;/p&gt;

&lt;p&gt;
TinyMCE — популярный &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt;-редактор, используемый для ввода данных с целью их сохранения в базе данных. Он применяется в веб-приложениях для добавления и редактирования &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-контента. Новый контент добавляется с помощью фиксированного редактора, но редактор TinyMCE необходимо динамически загружать и удалять для редактирования контента из разных записей.
&lt;/p&gt;

&lt;p&gt;
Если вы ищете решения для динамической загрузки и удаления редактора TinyMCE для сохранения содержимого, то вы попали по адресу. В этом руководстве вы узнаете, как динамически загружать и удалять редактор TinyMCE для редактирования и сохранения содержимого из разных записей с помощью Ajax, PHP и MySQL.
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce-editor_ajax_php_mysql&amp;amp;media=software:development:web:docs:web:wysiwyg:dynamic-tinymce-editor-min-750x410.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:dynamic-tinymce-editor-min-750x410.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:dynamic-tinymce-editor-min-750x410.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

В этом пошаговом руководстве мы рассмотрим, как динамически загружать и удалять редактор TinyMCE, а также сохранять контент в таблицу базы данных MySQL.
&lt;/p&gt;

&lt;p&gt;
Итак, давайте реализуем динамическую загрузку и удаление редактора TinyMCE и сохранение контента в таблицу базы данных MySQL с помощью Ajax, PHP и MySQL. Основные файлы:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;index.php&lt;/strong&gt; : PHP-файл для загрузки редактора TinyMCE и записи сообщений.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tinymce_editor.js&lt;/strong&gt; : JavaScript-файл для инициализации редактора TinyMCE и обеспечения функциональности сохранения изменений.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;action.php&lt;/strong&gt; : PHP-файл для обработки AJAX-запросов на редактирование и сохранение записей.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Message.php&lt;/strong&gt; : Класс, содержащий методы для получения, сохранения и редактирования записей.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 TinyMCE \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Ajax, PHP \u0438 MySQL.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430_\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_tinymce_\u0441_\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c_ajax_php_\u0438_mysql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2974&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;таблица_базы_данных&quot;&gt;Таблица базы данных&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Как показано в этом руководстве, мы будем отображать записи из базы данных и редактировать/сохранять их, загружая динамический редактор TinyMCE. Поэтому сначала мы создадим таблицу в базе данных MySQL, &lt;strong&gt;message&lt;/strong&gt; используя приведенное ниже выражение для создания таблицы, чтобы реализовать эту функциональность.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;MySQL&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code mysql&quot;&gt;&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CREATE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;CREATE&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TABLE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;TABLE&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;`message`&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; 
  &lt;span class=&quot;st0&quot;&gt;`id`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt; 
  &lt;span class=&quot;st0&quot;&gt;`message`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TEXT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;text&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt; 
  &lt;span class=&quot;st0&quot;&gt;`user`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=VARCHAR&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;varchar&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt; 
  &lt;span class=&quot;st0&quot;&gt;`created`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DATETIME&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;datetime&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DEFAULT&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;DEFAULT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html&quot;&gt;&lt;span class=&quot;kw17&quot;&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;/a&gt; 
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ENGINE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ENGINE&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt;&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INNODB&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;InnoDB&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DEFAULT&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;DEFAULT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CHARSET&quot;&gt;&lt;span class=&quot;kw7&quot;&gt;CHARSET&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt;utf8mb4&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ALTER&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ALTER&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TABLE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;TABLE&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;`message`&lt;/span&gt; 
  &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ADD&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ADD&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=PRIMARY%20KEY&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;PRIMARY KEY&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;`id`&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ALTER&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ALTER&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TABLE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;TABLE&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;`message`&lt;/span&gt; 
  &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=MODIFY&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;MODIFY&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;`id`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=AUTO_INCREMENT&quot;&gt;&lt;span class=&quot;kw6&quot;&gt;AUTO_INCREMENT&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0430\u0431\u043b\u0438\u0446\u0430_\u0431\u0430\u0437\u044b_\u0434\u0430\u043d\u043d\u044b\u0445&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2975-3941&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;шаг_1подключите_редактор_tinymce_и_jquery&quot;&gt;Шаг 1: Подключите редактор TinyMCE и jQuery.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы загрузим библиотеку редактора TinyMCE, сохраним её в папке tinymceи включим в &lt;code&gt;index.php&lt;/code&gt; файл. Также мы подключим jQuery и пользовательский JavaScript- &lt;code&gt;tinymce_editor.js&lt;/code&gt; файл.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;&amp;lt;script src=&amp;quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;script src=&amp;quot;tinymce/tinymce.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;script src=&amp;quot;js/tinymce_editor.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 1: \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 TinyMCE \u0438 jQuery.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_1\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_tinymce_\u0438_jquery&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3942-4523&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;шаг_2загрузите_редактор_tinymce_чтобы_сохранить_новое_сообщение&quot;&gt;Шаг 2: Загрузите редактор TinyMCE, чтобы сохранить новое сообщение.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы создадим форму с текстовым полем для загрузки редактора TinyMCE, чтобы добавить новое сообщение.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; 
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;br&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	 
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;input type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;action&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;action&amp;quot;&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&amp;gt;&lt;/span&gt; 
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;button type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn btn-info saveButton&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Сохранить&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; 
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2: \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 TinyMCE, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_2\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_tinymce_\u0447\u0442\u043e\u0431\u044b_\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c_\u043d\u043e\u0432\u043e\u0435_\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4524-5142&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;шаг_3загрузите_редактор_tinymce&quot;&gt;Шаг 3: Загрузите редактор TinyMCE.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы создадим функцию startEditor()для инициализации редактора TinyMCE.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;function startEditor(id) { 
	tinymce.init({ 
		selector: &amp;quot;textarea#&amp;quot;+id, 
		plugins: [ 
			&amp;quot;code &amp;quot;, 
			&amp;quot;paste&amp;quot; 
		], 
		toolbar: &amp;quot;undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link code &amp;quot;, 
		menubar:false, 
		statusbar: false, 
		content_style: &amp;quot;.mce-content-body {font-size:15px;font-family:Arial,sans-serif;}&amp;quot;, 
		height: 200	 
	}); 
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы вызовем функцию &lt;code&gt;startEditor()&lt;/code&gt; и укажем идентификатор текстового поля, чтобы загрузить редактор.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$( document ).ready(function() { 
	startEditor(&#039;message&#039;);	 
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3: \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 TinyMCE.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_3\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5143-6058&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;шаг_4список_записей_с_сообщением&quot;&gt;Шаг 4: Список записей с сообщением&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;index.php&lt;/code&gt; файле мы выведем список сообщений с кнопками редактирования для изменения текста сообщения.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&amp;lt;div id=&amp;quot;postLsit&amp;quot;&amp;gt;		 
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; 
&lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;getPost&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;fetch_assoc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;			 
	&lt;span class=&quot;re0&quot;&gt;$date&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date_create&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date_create&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;created&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt; 
	&amp;lt;article class=&amp;quot;row&amp;quot; id=&amp;quot;postRow_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt; 
		&amp;lt;div class=&amp;quot;col-md-2 col-sm-2 hidden-xs&amp;quot;&amp;gt; 
		  &amp;lt;figure class=&amp;quot;thumbnail&amp;quot;&amp;gt; 
			&amp;lt;img class=&amp;quot;img-responsive&amp;quot; src=&amp;quot;images/user-avatar.png&amp;quot; /&amp;gt; 
			&amp;lt;figcaption class=&amp;quot;text-center&amp;quot;&amp;gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/ucwords&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ucwords&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/figcaption&amp;gt; 
		  &amp;lt;/figure&amp;gt; 
		&amp;lt;/div&amp;gt; 
		&amp;lt;div class=&amp;quot;col-md-10 col-sm-10&amp;quot;&amp;gt; 
		  &amp;lt;div class=&amp;quot;panel panel-default arrow left&amp;quot;&amp;gt; 
			&amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt; 
			  &amp;lt;header class=&amp;quot;text-left&amp;quot;&amp;gt; 
				&amp;lt;div class=&amp;quot;comment-user&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-user&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Автор: &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/div&amp;gt; 
				&amp;lt;time class=&amp;quot;comment-date&amp;quot; datetime=&amp;quot;16-12-2014 01:05&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-clock-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date_format&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date_format&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$date&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;d MYH:i:s&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/time&amp;gt; 
			  &amp;lt;/header&amp;gt; 
			  &amp;lt;div class=&amp;quot;comment-post&amp;quot; id=&amp;quot;post_message_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt; 
&amp;nbsp;
				&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt; 
&amp;nbsp;
			  &amp;lt;/div&amp;gt; 
&amp;nbsp;
			  &amp;lt;textarea name=&amp;quot;message&amp;quot; id=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; style=&amp;quot;visibility:hidden;&amp;quot;&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;br&amp;gt; 
&amp;nbsp;
			  &amp;lt;div class=&amp;quot;text-right&amp;quot; id=&amp;quot;button_section_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt; 
				&amp;lt;a class=&amp;quot;btn btn-default btn-sm&amp;quot; id=&amp;quot;edit_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-reply&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Редактировать&amp;lt;/a&amp;gt; 
				&amp;lt;a class=&amp;quot;btn btn-default btn-sm&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-reply&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; Удалить&amp;lt;/a&amp;gt; 
			  &amp;lt;/div&amp;gt;		 
&amp;nbsp;
			&amp;lt;div id=&amp;quot;editSection_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; class=&amp;quot;hidden&amp;quot;&amp;gt;						 
				&amp;lt;button type=&amp;quot;submit&amp;quot; id=&amp;quot;save_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; name=&amp;quot;save&amp;quot; class=&amp;quot;btn btn-info saveButton&amp;quot;&amp;gt;Сохранить&amp;lt;/button&amp;gt; 
				&amp;lt;button type=&amp;quot;submit&amp;quot; id=&amp;quot;cancel_&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;quot; name=&amp;quot;cancel&amp;quot; class=&amp;quot;btn btn-info saveButton&amp;quot;&amp;gt;Отменить&amp;lt;/button&amp;gt; 
			&amp;lt;/div&amp;gt;					 
			&amp;lt;/div&amp;gt;			 
&amp;nbsp;
		  &amp;lt;/div&amp;gt; 
		&amp;lt;/div&amp;gt; 
	&amp;lt;/article&amp;gt;		 
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt; 
&amp;lt;/div&amp;gt;	&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4: \u0421\u043f\u0438\u0441\u043e\u043a \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0441 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_4\u0441\u043f\u0438\u0441\u043e\u043a_\u0437\u0430\u043f\u0438\u0441\u0435\u0439_\u0441_\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;6059-8248&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;шаг_5загрузите_динамический_редактор_tinymce_для_редактирования_сообщения&quot;&gt;Шаг 5: Загрузите динамический редактор TinyMCE для редактирования сообщения.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы загрузим TinyMCE, вызвав функцию &lt;code&gt;startEditor(messageId)&lt;/code&gt; при нажатии кнопки редактирования сообщения. Мы загрузим редактор TinyMCE вместе с сообщением.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$(&#039;#postLsit&#039;).on(&#039;click&#039;,&#039;[id^=edit_]&#039;, function(event){ 
	var messageId = $(this).attr(&#039;id&#039;); 
	messageId = messageId.replace(/edit_/g, &#039;&#039;); 
	messageId = parseInt(messageId); 
	tinymce.execCommand(&amp;quot;mceRemoveEditor&amp;quot;, true, messageId); 
	startEditor(messageId);		 
	tinymce.get(messageId).setContent($(&amp;quot;#post_message_&amp;quot;+messageId).html()); 
	$(&amp;quot;#editSection_&amp;quot;+messageId).removeClass(&#039;hidden&#039;);	 
	$(&amp;quot;#button_section_&amp;quot;+messageId).addClass(&#039;hidden&#039;);		 
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5: \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 TinyMCE \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_5\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435_\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_tinymce_\u0434\u043b\u044f_\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f_\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;8249-9180&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;шаг_6редактировать_сообщение_о_сохранении&quot;&gt;Шаг 6: Редактировать сообщение о сохранении&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы реализуем функциональность сохранения сообщения из динамического редактора с помощью Ajax-запроса &lt;code&gt;action.php&lt;/code&gt; с действием updateредактирования/сохранения сообщения. Мы также обеспечим отображение обновленного сообщения с подробной информацией.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$(&#039;#postLsit&#039;).on(&#039;click&#039;,&#039;[id^=save_]&#039;, function(event){ 
	var messageId = $(this).attr(&#039;id&#039;); 
	messageId = messageId.replace(/save_/g, &#039;&#039;); 
	messageId = parseInt(messageId);	 
	var postMessage = tinymce.get(messageId).getContent();	 
	tinymce.execCommand(&amp;quot;mceRemoveEditor&amp;quot;, true, messageId);					 
	var action = &#039;update&#039;; 
	$.ajax({ 
		url:&#039;action.php&#039;, 
		method:&amp;quot;POST&amp;quot;, 
		data:{id:messageId, message:postMessage, action:action}, 
		dataType:&amp;quot;json&amp;quot;, 
		success:function(data){	 
			var html = $(&amp;quot;#postHtml&amp;quot;).html();					 
			html = html.replace(/USERNAME/g, data.user); 
			html = html.replace(/POSTDATE/g, data.post_date); 
			html = html.replace(/POSTMESSAGE/g, data.message); 
			html = html.replace(/POSTID/g, data.id); 
			$(&amp;quot;#postRow_&amp;quot;+messageId).html(html);				 
			$(&amp;quot;#editSection_&amp;quot;+messageId).addClass(&#039;hidden&#039;); 
			$(&amp;quot;#button_section_&amp;quot;+messageId).removeClass(&#039;hidden&#039;);					 
		} 
	});		 
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В &lt;code&gt;action.php&lt;/code&gt; файле мы проверим наличие действия updateи вызовем update()метод из класса &lt;code&gt;Message.php&lt;/code&gt; для обновления записи.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;action.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;	 
	&lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
	&lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;id&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;	 
	&lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;update&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;	 
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На занятии &lt;code&gt;Message.php&lt;/code&gt; мы реализуем &lt;code&gt;update()&lt;/code&gt; метод для обновления сообщения в таблице базы данных и возврата обновленных сведений о записи.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;Message.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; update&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; 
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; 
&amp;nbsp;
		&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;prepare&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; 
			UPDATE &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;messageTable&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; SET message = ? 
			WHERE id = ?&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
		&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;bind_param&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;si&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
&amp;nbsp;
		&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;					 
			&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; 
				SELECT id, message, user, DATE_FORMAT(created,&#039;&lt;span class=&quot;es6&quot;&gt;%d&lt;/span&gt; %M %Y %H:%i:&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&#039;) AS post_date 
				FROM &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;messageTable&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; WHERE id = &#039;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&#039;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
			&lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;prepare&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;				 
			&lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
			&lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;get_result&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
			&lt;span class=&quot;re0&quot;&gt;$record&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;fetch_assoc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
			&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$record&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;		 
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; 
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6: \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_6\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c_\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435_\u043e_\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;9181-12023&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;шаг_7удалите_динамический_редактор_tinymce&quot;&gt;Шаг 7: Удалите динамический редактор TinyMCE.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы реализуем функциональность для удаления загруженного редактора TinyMCE при нажатии кнопки «Отмена».
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_ajax_php_mysql&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;$(&#039;#postLsit&#039;).on(&#039;click&#039;,&#039;[id^=cancel_]&#039;, function(event){ 
	var messageId = $(this).attr(&#039;id&#039;); 
	messageId = messageId.replace(/cancel_/g, &#039;&#039;); 
	tinymce.execCommand(&amp;quot;mceRemoveEditor&amp;quot;, true, messageId); 
	$(&amp;quot;#editSection_&amp;quot;+messageId).addClass(&#039;hidden&#039;); 
	$(&amp;quot;#button_section_&amp;quot;+messageId).removeClass(&#039;hidden&#039;);		 
});&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 7: \u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 TinyMCE.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_7\u0443\u0434\u0430\u043b\u0438\u0442\u0435_\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;12024-12690&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://coderszine.com/load-dynamic-tinymce-editor-with-ajax-php-mysql/&quot; class=&quot;urlextern&quot; title=&quot;https://coderszine.com/load-dynamic-tinymce-editor-with-ajax-php-mysql/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:dynamic-tinymce-editor_1_.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:dynamic-tinymce-editor_1_.zip (212.2 KB)&quot;&gt;dynamic-tinymce-editor_1_.zip&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce-image-upload.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce-image-upload.zip (227.7 KB)&quot;&gt;Загрузка изображений в TinyMCE с помощью Ajax и PHP&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;12691-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Jan 2026 11:34:07 +0000</pubDate>
        </item>
        <item>
            <title>tinymce-editor_with_ajax_php_mysql</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;rev=1767958374</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;сохранение_содержимого_редактора_tinymce_с_помощью_php_и_mysql&quot;&gt;Сохранение содержимого редактора TinyMCE с помощью PHP и MySQL&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В предыдущем уроке мы объяснили, как разработать систему учета посещаемости студентов с использованием PHP и MySQL . В этом уроке мы расскажем, как использовать редактор TinyMCE для замены текстового поля и сохранения контента с помощью Ajax, PHP и MySQL.
&lt;/p&gt;

&lt;p&gt;
TinyMCE — это самый продвинутый JavaScript &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-редактор для создания контента на веб-сайтах. Редактор легко интегрируется в любой веб-сайт, преобразуя текстовые поля в &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-редактор для создания &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-контента.
&lt;/p&gt;

&lt;p&gt;
Если вы работаете над сайтом и хотите заменить обычное текстовое поле на продвинутый &lt;abbr title=&quot;What You See Is What You Get&quot;&gt;WYSIWYG&lt;/abbr&gt; &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-редактор, то вы попали по адресу.
&lt;/p&gt;

&lt;p&gt;
В этом пошаговом руководстве мы рассмотрим, как интегрировать редактор TinyMCE и сохранять контент в базу данных MySQL с помощью Ajax и PHP.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce-editor_with_ajax_php_mysql&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce-php-min-750x410.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce-php-min-750x410.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce-php-min-750x410.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Основные файлы:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;index.php&lt;/strong&gt; : PHP-файл для загрузки редактора TinyMCE для сохранения контента.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tinymce_editor.js&lt;/strong&gt; : JavaScript-код для инициализации редактора TinyMCE.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;action.php&lt;/strong&gt; : Файл действий для обработки AJAX-запросов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Post.php&lt;/strong&gt; : Класс для хранения методов.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 TinyMCE \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PHP \u0438 MySQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435_\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_tinymce_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_php_\u0438_mysql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1911&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;шаг_1создание_таблицы_в_базе_данных_mysql&quot;&gt;Шаг 1: Создание таблицы в базе данных MySQL&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сначала мы создадим таблицу в базе данных MySQL &lt;code&gt;posts&lt;/code&gt; для хранения содержимого, полученного из редактора TinyMCE.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;MySQL&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code mysql&quot;&gt;&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CREATE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;CREATE&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TABLE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;TABLE&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;`posts`&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;`id`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;`message`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TEXT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;text&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;`user`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=VARCHAR&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;varchar&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;`edited`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INT&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;int&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DEFAULT&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;DEFAULT&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;`created`&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DATETIME&quot;&gt;&lt;span class=&quot;kw4&quot;&gt;datetime&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html&quot;&gt;&lt;span class=&quot;kw10&quot;&gt;NOT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=NULL&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;NULL&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DEFAULT&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;DEFAULT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html&quot;&gt;&lt;span class=&quot;kw17&quot;&gt;current_timestamp&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ENGINE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ENGINE&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt;&lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=INNODB&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;InnoDB&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DEFAULT&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;DEFAULT&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CHARSET&quot;&gt;&lt;span class=&quot;kw7&quot;&gt;CHARSET&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy1&quot;&gt;=&lt;/span&gt;latin1&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 1: \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 MySQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_1\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0442\u0430\u0431\u043b\u0438\u0446\u044b_\u0432_\u0431\u0430\u0437\u0435_\u0434\u0430\u043d\u043d\u044b\u0445_mysql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1912-2464&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;шаг_2подключите_файлы_bootstrap_jquery_и_tinymce_editor&quot;&gt;Шаг 2: Подключите файлы Bootstrap, jQuery и TinyMCE Editor.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Поскольку мы будем создавать страницы с использованием Bootstrap, мы включим файлы Bootstrap. Также мы включим файлы jQuery и TinyMCE в &lt;code&gt;index.php&lt;/code&gt; файл.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/link&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;link&lt;/span&gt;&lt;/a&gt; rel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; href &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/link&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;link&lt;/span&gt;&lt;/a&gt; rel&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; href&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tinymce/tinymce.min.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;js/tinymce_editor.js&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 2: \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0444\u0430\u0439\u043b\u044b Bootstrap, jQuery \u0438 TinyMCE Editor.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_2\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0435_\u0444\u0430\u0439\u043b\u044b_bootstrap_jquery_\u0438_tinymce_editor&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2465-3233&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;шаг_3создайте_форму_с_помощью_редактора_tinymce&quot;&gt;Шаг 3: Создайте форму с помощью редактора TinyMCE.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;index.php&lt;/code&gt; файле мы создадим &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-форму с текстовым полем и кнопкой отправки для сохранения данных формы.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;form id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;posts&amp;quot;&lt;/span&gt; method&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;br&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;input type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;hidden&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;action&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;action&amp;quot;&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;button type&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;submit&amp;quot;&lt;/span&gt; id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;save&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn btn-info saveButton&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Save&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;button&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 3: \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0444\u043e\u0440\u043c\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 TinyMCE.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_3\u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435_\u0444\u043e\u0440\u043c\u0443_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3234-3809&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;шаг_4инициализация_редактора_tinymce&quot;&gt;Шаг 4: Инициализация редактора TinyMCE.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В &lt;code&gt;tinymce_editor.js&lt;/code&gt; файле мы инициализируем редактор TinyMCE. Мы будем использовать текстовое поле для преобразования в расширенный редактор TinyMCE.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;tinymce_editor.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;tinymce.init({
	selector: &amp;quot;textarea&amp;quot;,
	plugins: [
		&amp;quot;code &amp;quot;,
		&amp;quot;paste&amp;quot;
	],
	toolbar: &amp;quot;undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link code &amp;quot;,
	menubar:false,
    statusbar: false,
	content_style: &amp;quot;.mce-content-body {font-size:15px;font-family:Arial,sans-serif;}&amp;quot;,
	height: 200	
});  &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 4: \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 TinyMCE.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_4\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f_\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3810-4523&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;шаг_5обработка_отправки_формы_и_сохранение_содержимого&quot;&gt;Шаг 5: Обработка отправки формы и сохранение содержимого.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы будем обрабатывать отправку формы с помощью jQuery и выполнять JAX-запрос &lt;code&gt;action.php&lt;/code&gt; с действием saveдля сохранения значений формы в таблицу базы данных и отображения сохраненного контента в случае успешного выполнения JAX-запроса.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;action.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;document&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;submit&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;#posts&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; formData &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;this&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;a href=&quot;http://www.php.net/serialize&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;serialize&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	$&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;ajax&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
			url&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;action.php&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
			method&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;              
			data&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; formData&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
			dataType&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;json&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
			success&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;     
				&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; html &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#postHtml&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;html&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;					
				html &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;USERNAME&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;user&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				html &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;POSTDATE&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;post_date&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				html &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; html&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;POSTMESSAGE&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;message&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;#postLsit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;append&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;html&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;fadeIn&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;slow&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
				tinymce&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;get&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;setContent&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;		
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В &lt;code&gt;action.php&lt;/code&gt; файле мы обработаем AJAX POST-запрос и вызовем метод insert()для вставки содержимого в базу данных.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;action.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;include_once&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;config/Database.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;include_once&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;class/Post.php&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$database&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Database&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$db&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$database&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;getConnection&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Post&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$db&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;save&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;	
	&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;user&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;User&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;insert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;code&gt;insert()&lt;/code&gt; В классе будет реализован метод &lt;code&gt;Post.php&lt;/code&gt; для сохранения содержимого в таблицу базы данных MySQL и возврата сохраненных данных в виде JSON-ответа для отображения записи содержимого.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;Post.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; insert&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;prepare&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
			INSERT INTO &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;postsTable&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;(`message`, `user`)
			VALUES(?, ?)&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;bind_param&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ss&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;user&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;	
			&lt;span class=&quot;re0&quot;&gt;$lastPid&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;insert_id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;
				SELECT id, message, user, DATE_FORMAT(created,&#039;&lt;span class=&quot;es6&quot;&gt;%d&lt;/span&gt; %M %Y %H:%i:&lt;span class=&quot;es6&quot;&gt;%s&lt;/span&gt;&#039;) AS post_date
				FROM &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;postsTable&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; WHERE id = &#039;&lt;span class=&quot;es4&quot;&gt;$lastPid&lt;/span&gt;&#039;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;prepare&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;				
			&lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$stmt2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;get_result&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;re0&quot;&gt;$record&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;fetch_assoc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
			&lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$record&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;		
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 5: \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_5\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430_\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438_\u0444\u043e\u0440\u043c\u044b_\u0438_\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435_\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4524-7151&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;шаг_6отображение_сохраненных_записей&quot;&gt;Шаг 6: Отображение сохраненных записей&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Мы отобразим сохраненные записи в &lt;code&gt;index.php&lt;/code&gt; файле, вызвав соответствующий &lt;code&gt;getPost()&lt;/code&gt; метод.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&amp;lt;div id=&amp;quot;postLsit&amp;quot;&amp;gt;		
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$posts&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;getPost&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;fetch_assoc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;			
	&lt;span class=&quot;re0&quot;&gt;$date&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date_create&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date_create&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;created&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
	&amp;lt;article class=&amp;quot;row&amp;quot;&amp;gt;
		&amp;lt;div class=&amp;quot;col-md-2 col-sm-2 hidden-xs&amp;quot;&amp;gt;
		  &amp;lt;figure class=&amp;quot;thumbnail&amp;quot;&amp;gt;
			&amp;lt;img class=&amp;quot;img-responsive&amp;quot; src=&amp;quot;images/user-avatar.png&amp;quot; /&amp;gt;
			&amp;lt;figcaption class=&amp;quot;text-center&amp;quot;&amp;gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/ucwords&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;ucwords&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/figcaption&amp;gt;
		  &amp;lt;/figure&amp;gt;
		&amp;lt;/div&amp;gt;
		&amp;lt;div class=&amp;quot;col-md-10 col-sm-10&amp;quot;&amp;gt;
		  &amp;lt;div class=&amp;quot;panel panel-default arrow left&amp;quot;&amp;gt;
			&amp;lt;div class=&amp;quot;panel-body&amp;quot;&amp;gt;
			  &amp;lt;header class=&amp;quot;text-left&amp;quot;&amp;gt;
				&amp;lt;div class=&amp;quot;comment-user&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-user&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; By: &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;user&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/div&amp;gt;
				&amp;lt;time class=&amp;quot;comment-date&amp;quot; datetime=&amp;quot;16-12-2014 01:05&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-clock-o&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/date_format&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date_format&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$date&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;d M Y H:i:s&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;lt;/time&amp;gt;
			  &amp;lt;/header&amp;gt;
			  &amp;lt;div class=&amp;quot;comment-post&amp;quot;&amp;gt;
				&amp;lt;p&amp;gt;
				&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;message&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
				&amp;lt;/p&amp;gt;
			  &amp;lt;/div&amp;gt;
			  &amp;lt;p class=&amp;quot;text-right&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; class=&amp;quot;btn btn-default btn-sm&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-reply&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; reply&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;/div&amp;gt;
		  &amp;lt;/div&amp;gt;
		&amp;lt;/div&amp;gt;
	&amp;lt;/article&amp;gt;		
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;	&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;lt;/div&amp;gt; &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы реализуем &lt;code&gt;getPost()&lt;/code&gt; в классе метод &lt;code&gt;Post.php&lt;/code&gt; для получения записей.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce-editor_with_ajax_php_mysql&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;index.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; getPost&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;		
	&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;
		SELECT *
		FROM &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;postsTable&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ORDER BY id DESC&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;conn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;prepare&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$sqlQuery&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;execute&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$stmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;get_result&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;			
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$result&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0428\u0430\u0433 6: \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0448\u0430\u0433_6\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435_\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445_\u0437\u0430\u043f\u0438\u0441\u0435\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7152-8879&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://coderszine.com/use-tinymce-editor-with-ajax-php-mysql/&quot; class=&quot;urlextern&quot; title=&quot;https://coderszine.com/use-tinymce-editor-with-ajax-php-mysql/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce-demo-2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce-demo-2.zip (210.6 KB)&quot;&gt;Сохранение содержимого редактора TinyMCE с помощью PHP и MySQL&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8880-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Jan 2026 11:32:54 +0000</pubDate>
        </item>
        <item>
            <title>tinymce</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:tinymce&amp;rev=1767826241</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;tinymce&quot;&gt;TinyMCE&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;TinyMCE&lt;/strong&gt; (англ. Tiny Moxiecode Content Editor) — это онлайн-редактор форматированного текста, выпущенный как программное обеспечение с открытым исходным кодом под лицензией GNU General Public License версии 2 или более поздней. TinyMCE использует модель freemium , которая включает бесплатный базовый редактор и платные планы с расширенными функциями. Он преобразует textareaполя &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; или другие указанные элементы &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt; в экземпляры редактора.
&lt;/p&gt;

&lt;p&gt;
TinyMCE разработан для интеграции с библиотеками JavaScript, такими как React , Vue.js , Angular и Stencil.js, а также с системами управления контентом, такими как Joomla! и WordPress.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;поддержка_браузерами&quot;&gt;Поддержка браузерами&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&#039;plugin_tablelayout_placeholder&#039; data-tablelayout=&quot;{&amp;quot;colwidth&amp;quot;:[&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;,&amp;quot;60px&amp;quot;],&amp;quot;rowsHeaderSource&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;rowsVisible&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;float&amp;quot;:&amp;quot;left&amp;quot;}&quot;&gt;&lt;/div&gt;&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=edge.gif&quot; class=&quot;media&quot; title=&quot;edge.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=e6a55a&amp;amp;media=edge.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;ie&quot; alt=&quot;ie&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=ie.gif&quot; class=&quot;media&quot; title=&quot;ie.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=4547f0&amp;amp;media=ie.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;ie&quot; alt=&quot;ie&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=chrome.gif&quot; class=&quot;media&quot; title=&quot;chrome.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=2eb854&amp;amp;media=chrome.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;chrome&quot; alt=&quot;chrome&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=firefox.gif&quot; class=&quot;media&quot; title=&quot;firefox.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=a00018&amp;amp;media=firefox.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;firefox&quot; alt=&quot;firefox&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=opera.gif&quot; class=&quot;media&quot; title=&quot;opera.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=99b08d&amp;amp;media=opera.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;opera&quot; alt=&quot;opera&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=safari.gif&quot; class=&quot;media&quot; title=&quot;safari.gif&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=30&amp;amp;tok=e9817a&amp;amp;media=safari.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;safari&quot; alt=&quot;safari&quot; width=&quot;30&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yandex.png&quot; class=&quot;media&quot; title=&quot;yandex.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=36&amp;amp;tok=6a71af&amp;amp;media=yandex.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yandex&quot; alt=&quot;yandex&quot; width=&quot;36&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=fa3ac5&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=no.jpg&quot; class=&quot;media&quot; title=&quot;no.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=f0cfb3&amp;amp;media=no.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=fa3ac5&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=fa3ac5&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=fa3ac5&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; title=&quot;yes.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=fa3ac5&amp;amp;media=yes.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=no.jpg&quot; class=&quot;media&quot; title=&quot;no.jpg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?w=32&amp;amp;tok=f0cfb3&amp;amp;media=no.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;yes&quot; alt=&quot;yes&quot; width=&quot;32&quot; /&gt;&lt;/a&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1189-1554&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;тип_лицензииgpl2&quot;&gt;Тип лицензии: GPL2+&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce6.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TinyMCE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1658&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;быстрый_стартtinymce&quot;&gt;Быстрый старт: TinyMCE&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Загружаем &lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?id=software:development:web:docs:web:wysiwyg:tinymce#дополнения_и_файлы&quot; class=&quot;wikilink1&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce&quot; data-wiki-id=&quot;software:development:web:docs:web:wysiwyg:tinymce&quot;&gt;в конце статьи&lt;/a&gt; файлы и запускаем файл index.html(index.php) с нижеприведенным кодом
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;!&lt;/span&gt;DOCTYPE html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;html lang&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta charset&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;google&amp;quot;&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;notranslate&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;meta name&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; content&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tinymce/tinymce.min.js&amp;quot;&lt;/span&gt; referrerpolicy&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;origin&amp;quot;&lt;/span&gt; crossorigin&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;anonymous&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
      tinymce&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;init&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        selector&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;#mytextarea&#039;&lt;/span&gt;
      &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;TinyMCE Quick Start Guide&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;h1&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;form method&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;textarea id&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;mytextarea&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;Hello&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; World&lt;span class=&quot;sy0&quot;&gt;!&amp;lt;/&lt;/span&gt;textarea&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;form&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce_install_base_0.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_install_base_0.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_install_base_0.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442: TinyMCE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u044b\u0441\u0442\u0440\u044b\u0439_\u0441\u0442\u0430\u0440\u0442tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1659-2567&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;базовый_тест_tinymce&quot;&gt;Базовый тест TinyMCE&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_html&quot;&gt;index.html&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc0&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;lang&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;en&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;charset&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;UTF-8&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;google&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;notranslate&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/meta.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;meta&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;viewport&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;content&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width=device-width, initial-scale=1&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/link.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tinymce/bootstrap/5.3.8/bootstrap.min.css&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tinymce/jquery/3.7.1/jquery-3.7.1.min&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/tinymce/tinymce.min.js&amp;quot;&lt;/span&gt; referrerpolicy&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;origin&amp;quot;&lt;/span&gt; crossorigin&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;anonymous&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
  tinymce.init({
	        selector: &#039;textarea&#039;,
			/*Установить язык «Русский»*/
			language:&amp;quot;ru&amp;quot;,
			theme : &amp;quot;silver&amp;quot;,
			/*Скрыть «Powered by TinyMCE»*/
			branding: false,
			/*Скрыть «Upgrade»*/
			promotion: false,
    plugins: [
      // Core editing features
      &#039;anchor&#039;, &#039;autolink&#039;, &#039;charmap&#039;, &#039;codesample&#039;, &#039;emoticons&#039;, &#039;images&#039;, &#039;image&#039;, &#039;link&#039;, &#039;lists&#039;, &#039;media&#039;, &#039;searchreplace&#039;, &#039;table&#039;, &#039;visualblocks&#039;, &#039;wordcount&#039;,
      // Your account includes a free trial of TinyMCE premium features
      // Try the most popular premium features until Jan 5, 2025:
      &#039;checklist&#039;, &#039;mediaembed&#039;, &#039;casechange&#039;, &#039;export&#039;, &#039;formatpainter&#039;, &#039;pageembed&#039;, &#039;a11ychecker&#039;, &#039;tinymcespellchecker&#039;, &#039;permanentpen&#039;, &#039;powerpaste&#039;, &#039;advtable&#039;, &#039;advcode&#039;, &#039;editimage&#039;, &#039;advtemplate&#039;, &#039;ai&#039;, &#039;mentions&#039;, &#039;tinycomments&#039;, &#039;tableofcontents&#039;, &#039;footnotes&#039;, &#039;mergetags&#039;, &#039;autocorrect&#039;, &#039;typography&#039;, &#039;inlinecss&#039;, &#039;markdown&#039;,&#039;importword&#039;, &#039;exportword&#039;, &#039;exportpdf&#039;
    ],
    toolbar: &#039;undo redo code| blocks fontfamily fontsize | bold italic underline strikethrough | link image media table mergetags | addcomment showcomments | spellcheckdialog a11ycheck typography | align lineheight | checklist numlist bullist indent outdent | emoticons charmap | removeformat&#039;,
    tinycomments_mode: &#039;embedded&#039;,
    tinycomments_author: &#039;Author name&#039;,
    mergetags_list: [
      { value: &#039;First.Name&#039;, title: &#039;First Name&#039; },
      { value: &#039;Email&#039;, title: &#039;Email&#039; },
    ],
    ai_request: (request, respondWith) =&amp;gt; respondWith.string(() =&amp;gt; Promise.reject(&#039;See docs to implement AI Assistant&#039;)),
  });
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/script.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;script&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/head.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;head&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;container mt-5&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
		&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/form.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;form&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
			&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;form-group&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
				&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Title&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
				&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/input.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;form-control&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
			&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
			&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;form-group mt-4&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
				&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;Content&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/label.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;label&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
				&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/textarea.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;textarea&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tinymce&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Hello, World!&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/textarea.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;textarea&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
			&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
			&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw3&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn btn-primary mt-4&amp;quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;Submit&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/button.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;button&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
		&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/form.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;form&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
	&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/div.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;div&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/body.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;body&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;a href=&quot;http://december.com/html/4/element/html.html&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;html&lt;/span&gt;&lt;/a&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce_install_base_1.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_install_base_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_install_base_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_base_test.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_base_test.zip (1.6 MB)&quot;&gt;TinyMCE Базовый тест&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0435\u0441\u0442 TinyMCE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0430\u0437\u043e\u0432\u044b\u0439_\u0442\u0435\u0441\u0442_tinymce&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2568-5299&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;вставка_изображения_из_директории&quot;&gt;Вставка изображения из директории&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
в &lt;code&gt;tinymce.init({&lt;/code&gt; добпаляем следующий код
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_js&quot;&gt;.js&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code js&quot;&gt;	/*URL скрипта обработчика*/
        images_upload_url: &#039;postAcceptor.php&#039;,
        /* Автоматическая загрузка изображений после их выбора пользователем.*/
        automatic_uploads: true,&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Создаем для примера в корне директории файл скрипта обработчика &lt;strong&gt;postAcceptor.php&lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:development:web:docs:web:wysiwyg:tinymce&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_php&quot;&gt;postAcceptor.php.php&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// postAcceptor.php&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Define allowed origins (optional)&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Access-Control-Allow-Origin: *&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Target directory&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$imageFolder&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;uploads/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Create directory if it doesn&#039;t exist&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/file_exists&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_exists&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$imageFolder&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/mkdir&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;mkdir&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$imageFolder&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu8&quot;&gt;0777&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// Get the file and check if it&#039;s an uploaded file&lt;/span&gt;
&lt;a href=&quot;http://www.php.net/reset&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;reset&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a href=&quot;http://www.php.net/current&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;current&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_FILES&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/is_uploaded_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;is_uploaded_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;// Basic sanitization and extension verification&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/preg_match&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;preg_match&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/([^\w\s\d\-_~,;\[\]\(\).])|([\.]{2,})/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a href=&quot;http://www.php.net/in_array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;in_array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/strtolower&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;strtolower&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/pathinfo&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;pathinfo&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PATHINFO_EXTENSION&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;gif&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;jpg&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;png&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;jpeg&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;HTTP/1.1 400 Invalid file.&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Move the uploaded file&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$filetowrite&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$imageFolder&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/move_uploaded_file&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;move_uploaded_file&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$temp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;tmp_name&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$filetowrite&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;// Respond with JSON including the image location&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;a href=&quot;http://www.php.net/json_encode&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;location&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$filetowrite&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;// Handle upload failure&lt;/span&gt;
    &lt;a href=&quot;http://www.php.net/header&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;header&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;HTTP/1.1 500 Server Error&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
проверяем в браузере (Вставить → Изображение → Вкладка «Передать») 
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce_install_base_3.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_install_base_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_install_base_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

В корне будет создана папка &lt;strong&gt;uploads&lt;/strong&gt; куда и будет загружена картинка
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Adevelopment%3Aweb%3Adocs%3Aweb%3Awysiwyg%3Atinymce&amp;amp;media=software:development:web:docs:web:wysiwyg:tinymce_install_base_4.png&quot; class=&quot;media&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_install_base_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_install_base_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_uploads.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_uploads.zip (1.6 MB)&quot;&gt;tinymce_uploads.zip&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438\u0437 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0430\u0432\u043a\u0430_\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f_\u0438\u0437_\u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5300-7441&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;дополнения_и_файлы&quot;&gt;Дополнения и Файлы&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com//tinymce/tinymce-demos&quot; class=&quot;interwiki iw_github&quot; title=&quot;https://github.com//tinymce/tinymce-demos&quot;&gt;Демонстрации TinyMCE&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_8.3.1.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_8.3.1.zip (1 MB)&quot;&gt;TinyMCE 8 8.3.1.zip&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:langs_8.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:langs_8.zip (440.6 KB)&quot;&gt;TinyMCE 8 Community Language Packs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:langs_7.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:langs_7.zip (503.9 KB)&quot;&gt;TinyMCE 7 Community Language Packs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_8_lang_pack.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_8_lang_pack.zip (1.4 MB)&quot;&gt;TinyMCE 8 Language Packs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_base_test.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_base_test.zip (1.6 MB)&quot;&gt;TinyMCE Базовый тест&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:tinymce_uploads.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:tinymce_uploads.zip (1.6 MB)&quot;&gt;TinyMCE тест загрузки картинки&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:development:web:docs:web:wysiwyg:bootstrap-main.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:development:web:docs:web:wysiwyg:bootstrap-main.zip (8 MB)&quot;&gt;Bootstrap 5.3.8&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;7442-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 07 Jan 2026 22:50:41 +0000</pubDate>
        </item>
    </channel>
</rss>
