Как добавить пользовательскую кнопку на панель инструментов 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 на сервер.
Есть ли лучший способ создания кнопки?
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>
";
Первое, на мой взгляд, является более простым подходом.
Я надеюсь, что это ответ на ваш вопрос, и если вам нужна помощь в понимании чего-то, дайте мне знать..
Вот код, который я использую в теме 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>';
}