1. Возьмите уже готовый плагин для Yii2 и установите в систему, ибо делать что-то свое с нуля - это изобретения велосипеда
2. Отнаследуйте установленный плагин на уровне класса (грубо говоря это будет Ваша модификация)
3. В своей модификации плагина установите для JS-плагина в свойство setup (при инициализации):
setup: function (editor) {
editor.addButton('mybutton', {
text: 'My button',
icon: <url-to-icon>,
onclick: function () {
editor.insertContent(' <b>It\'s my content!</b> ');
}
});
},
Например для
этого готового виджета последний пункт можно реализовать так:
use dosamigos\tinymce\TinyMce;
<?= $form->field($model, 'text')->widget(TinyMce::className(), [
'options' => ['rows' => 6],
'language' => 'es',
'clientOptions' => [
'plugins' => [
"advlist autolink lists link charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
'toolbar' => "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
'setup' => // тут JS код указанный в пункте 3
]
]);?>