Проблема с передачей параметров внутрь js плагина Imperavi Redactor. Пропадает элемент массива
Здравствуйте. У меня тут творится самая настоящая магия. Пытаюсь наладить работу одного весьма хорошего wysiwyg редактора. У редактора есть входной параметр buttons - массив имён кнопок для панели, и вот с ним творится бяда.
Вызываю я всю эту ерунду через php, а конкретно через Yii:
$this->widget('Redactor.ImperaviRedactorWidget', [
'model' => $model,
'attribute' => 'content',
'options' => [
'buttons' => ['html', 'bold'],
'cleanOnPaste' => FALSE
]
]);
Yii генерирует мне абсолютно корректную строчку вызова:
jQuery('#KbContent_content').redactor({'lang':'ru','imageUpload':'/site/uploadFiles','buttons':['html','bold'],'cleanOnPaste':false,'plugins':['fullscreen']});
Но кнопка html, то бишь исходный код, не появляется. Тогда я добавил console.log() в конструктор этого редактора и, пардон, очешуел. Добавил вот так:
$.fn.redactor = function(options)
{
console.log(options);
var val = [];
var args = Array.prototype.slice.call(arguments, 1);
и там потом ещё много кода, но он не важен, на сколько я понимаю. То есть функция принимает в себя объект и тут же выводит его в консоль. Вот что видно в консоли:
Из массива buttons пропал элемент html. И, что ещё интересно, в кратком выводе объекта (первая строка) buttons описан как массив из 2-х элементов, а в полном выводе (вторая строка) как из одного.
Эксперименты показали:
- если в buttons передать только bold - всё работает правильно;
- если поменять местами bold и html - результат не изменится;
- если передать только html на входе в плагин buttons пуст (та же ерунда - в кратком Array(1) в полном Array(0));
- если html передать дважды (['html', 'html', 'bold']), то он таки появляется в массиве buttons на входе в плагин, но это ж костыль какой-то невозможный вообще.
Кто-нибудь сталкивался с подобной магией? В чём может быть дело?