Если я правильно понимаю ваш вопрос, вы хотите добавить больше кнопок без необходимости дублировать функции register_button($buttons)
и add_plugin($plugin_array)
?
Я знаю, что это старый вопрос, но есть способ сделать это без дублирования функций.
Просто зайдите в ваш customcodes.js и в init : function(ed, url)
создайте новые кнопки так же, как вы делали первую, чтобы она выглядела так:
init : function(ed, url) {
/* your original button */
ed.addButton('quote', {
title : 'Add a Quote',
image : url+'/image.png',
onclick : function() {
ed.selection.setContent('[quote]' + ed.selection.getContent() + '[/quote]');
}
});
/* your second button */
ed.addButton('singlequote', {
title : 'Add a Single Quote',
image : url+'/image.png',
onclick : function() {
ed.selection.setContent('[singlequote]' + ed.selection.getContent() + '[/singlequote]');
}
});
}
И так далее, столько кнопок, сколько вам нужно.
После этого просто вернитесь к функции register_button($buttons)
и обновите array_push()
.
Итак, когда у вас была только одна кнопка для добавления, это выглядело так:
function register_button($buttons) {
array_push($buttons, "quote");
return $buttons; }
Теперь, когда вы создали свои новые кнопки, эта функция будет выглядеть следующим образом.
function register_button($buttons) {
array_push($buttons, "quote", "singlequote");
return $buttons; }
И так далее, в зависимости от того, сколько новых кнопок вы добавили.
Вам не нужно дублировать функции или добавлять новые действия и фильтры, чтобы добавлять новые кнопки в ваш tinyMCE.
Вы просто создаете новые кнопки внутри своего плагина tinyMCE и перечисляете имена кнопок, которые вы создали внутри array_push().
Возможно, вы не знали, что array_push()
принимает несколько значений push.
Вот его документация на php.net