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

Но он не компилируется. Ошибка в строке с 'настройка: функция (ред)'

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

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

Author: Techboy, 2011-01-09

2 answers

Я полагаю, что ваша проблема заключается в строках, которые следуют за очередями и сценариями печати, вы смешиваете 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.

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>
";

Первое, на мой взгляд, является более простым подходом.

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

 5
Author: t31os, 2017-05-23 12:40:07

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

(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>';
}
 2
Author: Satish Gandham, 2013-03-31 19:30:33