Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавление своих плагинов #4

Closed
Insolita opened this issue Jul 30, 2014 · 13 comments
Closed

Добавление своих плагинов #4

Insolita opened this issue Jul 30, 2014 · 13 comments

Comments

@Insolita
Copy link

'''
php

if (isset($this->settings['plugins'])) {
$asset->plugins = $this->settings['plugins'];
}
'''
Надо как-то отделить, или опцию отдельно для кастомных плагинов сделать, которые своими ассетами вручную регистрироваться будут

@vova07 vova07 closed this as completed in 6aea1ff Jul 30, 2014
@vova07
Copy link
Owner

vova07 commented Jul 30, 2014

Добавил. Буду признателен если протестируете. Надеюсь вы именно этого хотели.

@Insolita
Copy link
Author

Чё-т не получается ... подключаю так

'plugins'=>['attachmanager'=>['sourcePath'=>'@app/modules/uploader/assets',
                                          'js'=>['attachmanager.js'],
                                          'depends'=>['vova07\imperavi\Asset']
                        ]],

Данные взяты из рабочего бандла который при прямой регистрации работает.
Вообще предпочтительнее чтоб можно было просто класс своего бандла указать, или чтоб свой бандл вообще отдельно зарегистрировать а в конфиге 'plugins'=>['attachmanager'] оставить
пробовала без depends

@vova07
Copy link
Owner

vova07 commented Jul 31, 2014

Я думал так сделать но подумал что люди не захотят плодить бандлы для своих плагинов. Но лично мне бы такое решение больше бы понравилось. Скоро проверю баг.

@Insolita
Copy link
Author

а не, можно чотб отдельно только так писать приходится

 'plugins'=>['attachmanager'=>[]]

@Insolita
Copy link
Author

Так проще один раз бандл сделать, и подключать его классом, чем каждый раз массив писать

@Insolita
Copy link
Author

к тому же ладно я как автор плагина у себя без проблем все пропишу, а если поделиться - то проще с готовым бандлом

@vova07
Copy link
Owner

vova07 commented Jul 31, 2014

Согасен. Скоро будет!

@Insolita
Copy link
Author

Спасиб за оперативность

vova07 added a commit that referenced this issue Jul 31, 2014
@vova07
Copy link
Owner

vova07 commented Jul 31, 2014

Готово!
Буду признателен если протестите, и напишите ответ.

@Insolita
Copy link
Author

да, всё ок, спасибо

@temirfe
Copy link

temirfe commented Aug 7, 2018

На офф сайте есть плагин Specialchars, которого нет в виджете по умолчанию. Пробовал добавить этот плагин по описанному выше методу:

  1. скачал specialchars.min.js с офф сайта и залил в папку frontend/web/js
  2. создал бандл SpecialcharsAsset.php в папке frontend/assets с таким контентом:
public $sourcePath = '@webroot';
    //public $basePath = '@webroot';
    //public $baseUrl = '@web';
    public $css = [];
    public $js = [
        'js/specialchars.min.js'
    ];
    public $depends = [
        'vova07\imperavi\Asset'
    ];
  1. в форме где я использую виджет непосредственно:
<?php
    echo $form->field($model, 'text')->widget(ImperaviWidget::className(), [
        'settings' => [
            'lang' => 'ru',
            'minHeight' => 200,
            'maxHeight' => 400,
            'imageUpload' => Url::to(['/site/image-upload']),
            'imageManagerJson' => Url::to(['/site/images-get']),
            'plugins' => [
                'clips',
                'fullscreen',
                'imagemanager',
                'table',
                'specialchars'=> 'SpecialcharsAsset'
               // 'specialchars'=> 'frontend\assets\SpecialcharsAsset' //и так пробовал (метод 2)
            ],
        ],
    ]);
    ?>

и не работает. В консоле смотрю ошибка: http://example.com/assets/6fbfea23/plugins/SpecialcharsAsset/SpecialcharsAsset.js 404 not found
или http://example.com/assets/6fbfea23/plugins/frontend/assets/SpecialcharsAsset/frontend/assets/SpecialcharsAsset.js 404 (Not Found) в методе 2
что делать?

@vova07
Copy link
Owner

vova07 commented Aug 8, 2018

Здравствуйте @temirfe ,

У вас проблема в самом коде с настройками.
Перечитайте пожалуйста вот этот раздел документации: https://github.com/vova07/yii2-imperavi-widget/blob/master/README_RU.md#Регистрация-своих-плагинов

Вкратце вы должны использовать отдельный индекс plugins в массиве настроек который находиться на том-же уровне что и settings.

То есть у вас должен быть примерно такой код:

[
    'settings' => [
        ...
        'plugins' => [...], // Тут подключаться дефолтные плагины.
        ...
    ],
    'plugins' => [
        'specialchars' => SpecialcharsAsset::class, // Тут вы добавляете свои кастомные плагины.
    ]
]

Желаю удачи!

@BeekeeperVS
Copy link

Подскажите. добавил плагин budfferbuttons. У мене несколько вкладок где используется редактор. в перевой вкладке погружаеться, в остальных просто отображается textarea. в чом может быть проблема?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants