Closed Valonix closed 9 years ago
данный вопрос можно реализовать разными способами 1) (если у вас разные модули для Posts и Pages) для кажого модуля можно задать свои настройки указав в кажом модуле свой ель фаиндер
class Module extends \yii\base\Module
{
public function init()
{
parent::init();
$this->controllerMap['elfinder'] =[
'class' => 'mihaildev\elfinder\PathController',
'access' => ['@'],
'root' => [
'path' => 'files',
'name' => 'Files'
]
];
}
}
в шаблоне
$form->field($model, 'attribute')->widget(CKEditor::className(), [
...
'editorOptions' => ElFinder::ckeditorOptions('news/elfinder',[/* Some CKEditor Options */]),
...
]);
2) вариант использовать PathController и параметр патх
в настройках
'controllerMap' => [
'elfinder' => [
'class' => 'mihaildev\elfinder\PathController',
'access' => ['@'],
'root' => [
'path' => 'files',
'name' => 'Files'
],
'watermark' => [
'source' => __DIR__.'/logo.png', // Path to Water mark image
'marginRight' => 5, // Margin right pixel
'marginBottom' => 5, // Margin bottom pixel
'quality' => 95, // JPEG image save quality
'transparency' => 70, // Water mark image transparency ( other than PNG )
'targetType' => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
'targetMinPixel' => 200 // Target image minimum pixel size
]
]
],
$form->field($model, 'attribute')->widget(CKEditor::className(), [
...
'editorOptions' => ElFinder::ckeditorOptions(['elfinder', 'path' => 'news'],[/* Some CKEditor Options */]),
...
]);
$form->field($model, 'attribute')->widget(CKEditor::className(), [
...
'editorOptions' => ElFinder::ckeditorOptions(['elfinder', 'path' => 'pages'],[/* Some CKEditor Options */]),
...
]);
при этом папка в которой будут сохранятся фаилы будет путь указанный в настройках + тот который указан в шаблоне
из примера в настройках 'path' => 'files' и допустим из шаблона 'path' => 'pages'
в результате получим files/pages папку для хранения фаилов
3) вариант использовать elfinder\Controller
перечислить все папки и при использовании выбирать нужную папку для сохранения!
Спасибо. Правда я про модели спрашивал а не про модули:)
ну я предположил что какждая модель относится к своему модулю!
маленький вопрос. а как эту прелесть привинтить к tinynce. наткнулся на ваше описание, там сказано что легко, но я как не пойму на всякий случай я этот взял в качестве основы https://github.com/2amigos/yii2-tinymce-widget
примерно так будет работать
\mihaildev\elfinder\AssetsCallBack::register($this);
$elFinderUrl = \mihaildev\elfinder\ElFinder::getManagerUrl('elfinder', ['callback' => 'my_return_id']); $elFinderUrl = \yii\helpers\Json::encode($elFinderUrl); $js = <<<JS mihaildev.elFinder.register('my_return_id', function(URL){ window.tinymce.activeEditor.windowManager.getParams().setUrl(URL); var t = window.tinymce.activeEditor.windowManager.windows[0]; t.find('#src').fire('change'); window.tinymce.activeEditor.windowManager.close(); });
function elFinderBrowser (field_name, url, type, win) { tinymce.activeEditor.windowManager.open({ file: $elFinderUrl, title: 'elFinder 2.0', width: 900, height: 450, resizable: 'yes' }, { setUrl: function (url) { win.document.getElementById(field_name).value = url; } }); return false; } JS;
$this->registerJs($js);
далее в настройки tinymce
http://www.tinymce.com/wiki.php/Configuration:file_browser_callback file_browser_callback : elFinderBrowser
7 октября 2015 г., 19:21 пользователь libero1286 notifications@github.com написал:
маленький вопрос. а как эту прелесть привинтить к tinynce. наткнулся на ваше описание, там сказано что легко, но я как не пойму на всякий случай я этот взял в качестве основы https://github.com/2amigos/yii2-tinymce-widget
— Reply to this email directly or view it on GitHub https://github.com/MihailDev/yii2-elfinder/issues/30#issuecomment-146250543 .
спасибо. я вчера вечером сам разобрался. немного по другому сделал но в целом очень похоже получилось
Добрый день. Осваиваю YII. И в качестве контент едитора решил поставить ваше расширение CKEditor. Чтобы загружать фото в тело контента хочу поставить elfinder. И мне честно не понятно эта часть. use mihaildev\ckeditor\CKEditor; use mihaildev\elfinder\ElFinder;
$form->field($model, 'attribute')->widget(CKEditor::className(), [ ... 'editorOptions' => ElFinder::ckeditorOptions('elfinder',[/* Some CKEditor Options */]), ... ]);
Подскажите где мне указать для загрузчика куда помещать все фото. И можно ли как то будет их отделить друг от друга (Posts, Pages) по моделям к примеру.
Ранее ни CKeditor, не Elfinder не использовал, по этому мне много не понятно. Спасибо за ответ.