Как добавить пользовательскую кнопку на панель инструментов tinyMCE?

Я хочу добавить пользовательскую кнопку на панель инструментов tinyMCE на экране «Добавить новую почту», который при нажатии будет вставлять текст в новое сообщение.

Я пробовал использовать этот код (из http://tinymce.moxiecode.com/tryit/custom_toolbar_button.php ):

wp_admin_css('thickbox'); wp_print_scripts('jquery-ui-core'); wp_print_scripts('jquery-ui-tabs'); wp_print_scripts('post'); wp_print_scripts('editor'); add_thickbox(); wp_print_scripts('media-upload'); setup : function(ed) { // Add a custom button ed.addButton('mybutton', { title : 'My button', image : 'img/example.gif', onclick : function() { // Add you own code to execute something on click ed.focus(); ed.selection.setContent('Hello world!'); } }); } 

но он не компилируется. Это ошибка в строке с ' setup: function (ed) '

Это ошибка, потому что мне нужно ссылаться на tinyMCE.js? Я не смог найти этот файл под моей установкой WordPress на сервере.

есть ли лучший способ создания кнопки?

Solutions Collecting From Web of "Как добавить пользовательскую кнопку на панель инструментов tinyMCE?"

Ваша проблема, я считаю, это строки, которые следуют за окнами и сценариями печати, вы смешиваете Javascript с PHP.

Javascript входит в HTML-раздел файла PHP или внутри выражения echo.

На этой странице кода используется пример добавления кнопки в TinyMCE внутри WordPress.

Однако эта запись в кодексе может быть немного устаревшей, поэтому в случае проблем с кодом здесь есть некоторые альтернативные примеры кода, из которых можно работать.

http://brettterpstra.com/adding-a-tinymce-button/
https://stackoverflow.com/questions/4413470/how-to-add-a-mailto-button-to-tinymce

RE: Проблемы с кодом

Внутри файла PHP HTML идет между окончанием и запуском блоков PHP, например.

 ?> <div>example</div> <?php 

Или, альтернативно, внутри оператора эха.

 echo '<div>example</div>'; 

Javascript следует обрабатывать так же, как HTML, поэтому вы над кодом (часть JS) должны выглядеть так:

 ?> <script type="text/javascript"> setup : function(ed) { // Add a custom button ed.addButton('mybutton', { title : 'My button', image : 'img/example.gif', onclick : function() { // Add you own code to execute something on click ed.focus(); ed.selection.setContent('Hello world!'); } }); </script> <?php 

Или..

 echo " <script type=\"text/javascript\"> setup : function(ed) { // Add a custom button ed.addButton('mybutton', { title : 'My button', image : 'img/example.gif', onclick : function() { // Add you own code to execute something on click ed.focus(); ed.selection.setContent('Hello world!'); } }); </script> "; 

Первое, на мой взгляд, более легкий подход.

Надеюсь, это ответит на ваш вопрос, и если вам нужна помощь в понимании чего-то, дайте мне знать ..

Это код, который я использую в быстрой теме:

 (function() { tinymce.create('tinymce.plugins.tinyplugin', { init : function(ed, url){ ed.addButton('note', { title : 'Insert a note', onclick : function() { var sel = ed.selection.getContent(); ed.execCommand( 'mceInsertContent', false, swift_notice(sel) ); }, image: url + "/note.png" }); } function swift_notice(seldata) { return '<p class="note"><span class="bg"> </span>'+ seldata + '</p>'; }