Как добавить пользовательскую кнопку на панель инструментов 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 на сервере.

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

Ваша проблема, я считаю, это строки, которые следуют за окнами и сценариями печати, вы смешиваете 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>'; }