/** * @param string $lang * @param \yii\web\View $view */ public static function addLangFile($lang, $view) { $lang = ElFinder::getSupportedLanguage($lang); if ($lang !== false && $lang !== 'en') { $view->registerJsFile(self::getPathUrl() . '/js/i18n/elfinder.' . $lang . '.js', ['depends' => [Assets::className()]]); } }
/** * @param string $lang * @param \yii\web\View $view */ public static function addLangFile($lang, $view) { $lang = ElFinder::getSupportedLanguage($lang); if ($lang !== false && $lang !== 'en') { list(, $path) = \Yii::$app->assetManager->publish(__DIR__ . "/assets"); $view->registerJsFile($path . '/js/i18n/elfinder.' . $lang . '.js', ['depends' => [Assets::className()]]); } }
/** * Registers TinyMce JS */ protected function registerClientScript() { $view = $this->getView(); if (!isset($this->options['language']) || empty($this->options['language'])) { $this->options['language'] = strtolower(substr(Yii::$app->language, 0, 2)); } // Insert plugins in options if (isset($this->options['plugins'])) { foreach ($this->options['plugins'] as $pluginLine) { foreach (explode(' ', $pluginLine) as $plugin) { //if load elfinder plugin ,load elfinder asserts first if ($plugin == 'elfinder') { \mihaildev\elfinder\Assets::register($this->getView()); \mihaildev\elfinder\Assets::addLangFile($this->options['language'], $this->getView()); } $this->registerPlugin($plugin); } } } $options = empty($this->options) ? '' : Json::encode($this->options); $js = "tinymce.init({$options});"; $view->registerJs($js); }
<?php /** * @var \yii\web\View $this * @var array $options */ use mihaildev\elfinder\Assets; use yii\helpers\Json; Assets::register($this); Assets::addLangFile($options['lang'], $this); if (!empty($options['noConflict'])) { Assets::noConflict($this); } unset($options['noConflict']); $options['soundPath'] = Assets::getSoundPathUrl(); $this->registerJs("\nfunction ElFinderGetCommands(disabled){\n var Commands = elFinder.prototype._options.commands;\n \$.each(disabled, function(i, cmd) {\n (idx = \$.inArray(cmd, Commands)) !== -1 && Commands.splice(idx,1);\n });\n return Commands;\n}\n\n var winHashOld = '';\n function elFinderFullscreen(){\n\n var width = \$(window).width()-(\$('#elfinder').outerWidth(true) - \$('#elfinder').width());\n var height = \$(window).height()-(\$('#elfinder').outerHeight(true) - \$('#elfinder').height());\n\n var el = \$('#elfinder').elfinder('instance');\n\n var winhash = \$(window).width() + '|' + \$(window).height();\n\n\n if(winHashOld == winhash)\n return;\n\n winHashOld = winhash;\n\n el.resize(width, height);\n }\n\n \$('#elfinder').elfinder(" . Json::encode($options) . ").elfinder('instance');\n\n \$(window).resize(elFinderFullscreen);\n\n elFinderFullscreen();\n "); $this->registerCss("\nhtml, body {\n height: 100%;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n position: relative;\n padding: 0; margin: 0;\n}\n"); $this->beginPage(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>elFinder 2.0</title> <?php $this->head(); ?> </head> <body> <?php $this->beginBody();
<?php /** * @var \yii\web\View $this * @var array $options */ use mihaildev\elfinder\Assets; use yii\helpers\Json; Assets::register($this); Assets::addLangFile($options['lang'], $this); if (!empty($options['noConflict'])) { Assets::noConflict($this); } unset($options['noConflict']); $this->registerJs("\nfunction ElFinderGetCommands(disabled){\n var Commands = elFinder.prototype._options.commands;\n \$.each(disabled, function(i, cmd) {\n (idx = \$.inArray(cmd, Commands)) !== -1 && Commands.splice(idx,1);\n });\n return Commands;\n}\n\n var winHashOld = '';\n function elFinderFullscreen(){\n\n var width = \$(window).width()-(\$('#elfinder').outerWidth(true) - \$('#elfinder').width());\n var height = \$(window).height()-(\$('#elfinder').outerHeight(true) - \$('#elfinder').height());\n\n var el = \$('#elfinder').elfinder('instance');\n\n var winhash = \$(window).width() + '|' + \$(window).height();\n\n\n if(winHashOld == winhash)\n return;\n\n winHashOld = winhash;\n\n el.resize(width, height);\n }\n\n \$('#elfinder').elfinder(" . Json::encode($options) . ").elfinder('instance');\n\n \$(window).resize(elFinderFullscreen);\n\n elFinderFullscreen();\n "); $this->registerCss("\nhtml, body {\n height: 100%;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n position: relative;\n padding: 0; margin: 0;\n}\n"); $this->beginPage(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>elFinder 2.0</title> <?php $this->head(); ?> </head> <body> <?php $this->beginBody(); ?>
public static function getRedactorOptions(View $view, $controller, $options = []) { \mihaildev\elfinder\Assets::register($view); return ArrayHelper::merge(['url' => self::getConnectUrl($controller)], $options); }
<?php /** * @var array $options */ use app\core\elfinder\events\ConnectEvent; use app\core\elfinder\MyElFinder; define('ELFINDER_IMG_PARENT_URL', \mihaildev\elfinder\Assets::getPathUrl()); $event = new ConnectEvent(['options' => $options]); Yii::$app->trigger('elfinder_connect_set_options', $event); $target = Yii::$app->getRequest()->get('target'); $width = Yii::$app->getRequest()->get('w'); $height = Yii::$app->getRequest()->get('h'); $watermark = Yii::$app->getRequest()->get('watermark'); if ($width && $height) { $event->options['bind']['upload.presave'][] = 'Plugin.AutoResize.onUpLoadPreSave'; $event->options['plugin']['AutoResize'] = ['enable' => true, 'maxWidth' => $width, 'maxHeight' => $height, 'quality' => 95]; } if ($watermark) { if ($watermark != 1) { $source = Yii::getAlias('@webroot/files/') . strtr($watermark, '::', '/'); } else { $source = Yii::getAlias('@webroot/files/watermark.png'); } $event->options['bind']['upload.presave'][] = 'Plugin.Watermark.onUpLoadPreSave'; $event->options['plugin']['Watermark'] = ['source' => Yii::getAlias('@webroot/files/watermark.png'), 'marginRight' => 5, 'marginBottom' => 5, 'quality' => 95, 'transparency' => 100, 'targetType' => IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP, 'targetMinPixel' => 200]; } function filterName(&$path, &$name, $src, $elfinder, $volume) { //$name = strtolower($name); $name = str_replace(' ', '_', $name);
<?php /** * @var \yii\web\View $this * @var array $options */ // use m00nk\elfinder\Assets; use mihaildev\elfinder\Assets; use yii\helpers\Json; Assets::register($this); Assets::addLangFile($options['lang'], $this); $this->registerJs("\nfunction ElFinderGetCommands(disabled)\n{\n var Commands = elFinder.prototype._options.commands;\n \$.each(disabled, function(i, cmd) {\n (idx = \$.inArray(cmd, Commands)) !== -1 && Commands.splice(idx,1);\n });\n return Commands;\n}\n\nvar winHashOld = '';\nfunction elFinderFullscreen(){\n\n var width = \$(window).width()-(\$('#elfinder').outerWidth(true) - \$('#elfinder').width());\n var height = \$(window).height()-(\$('#elfinder').outerHeight(true) - \$('#elfinder').height());\n\n var el = \$('#elfinder').elfinder('instance');\n\n var winhash = \$(window).width() + '|' + \$(window).height();\n\n if(winHashOld == winhash)\n return;\n\n winHashOld = winhash;\n\n el.resize(width-20, height-20);\n}\n\nfunction elFinderFileCallback(file)\n{\n window.parent.tinymce_filenav_add_file(file);\n window.close();\n}\n\n\$('#elfinder').elfinder(" . Json::encode($options) . ").elfinder('instance');\n\n\$(window).resize(elFinderFullscreen);\n\nelFinderFullscreen();\n"); $this->registerCss("\nhtml, body {\n height: 100%;\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n position: relative;\n padding: 5px; margin: 0;\n}\n"); $this->beginPage(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>elFinder</title> <?php $this->head(); ?> </head> <body> <?php $this->beginBody(); ?> <div id="elfinder"></div> <?php $this->endBody();
use yii\helpers\Html; use mihaildev\elfinder\Assets; use yii\helpers\Url; /* @var $this yii\web\View */ /* @var $model app\models\Page */ /* @var $startPath string */ /* @var $id_parent integer */ /* @var $elfinderData array */ Yii::$app->i18n->disableDot(); $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => Module::t('', 'Pages'), 'url' => ['index']]; $this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['update', 'id' => $model->id]]; $this->params['breadcrumbs'][] = Module::t('', 'Files'); Yii::$app->i18n->resetDot(); Assets::register($this); Assets::addLangFile(Yii::$app->language, $this); $this->registerJs(' var btn = $.fn.button.noConflict(); $.fn.btn = btn; $("#elfinder").elfinder({ url : "' . Url::to(ArrayHelper::merge(['/adm/elfinder/connect', 'startPath' => $startPath], $elfinderData)) . '", lang : "' . Yii::$app->language . '", customData: {"' . Yii::$app->request->csrfParam . '":"' . Yii::$app->request->csrfToken . '"}, rememberLastDir : false, }); '); ?> <div class="product-files"> <h1><?php echo Html::encode($this->title);