<?php

namespace backend\bootstrap;

use core\entities\Settings;

use zertex\elfinder\ElFinder;
use zertex\ckeditor\CKEditor;
use yii\base\BootstrapInterface;
use yii\helpers\ArrayHelper;

class SetUp implements BootstrapInterface
{
    public function bootstrap($app)
    {
        $container = \Yii::$container;

        // init presets
	    $presetsPath = \Yii::getAlias('@core/components/ckeditor/presets');
	    // basic
	    $app->params['ckeditor']['basic']['toolbar'] = require $presetsPath . '/basic/toolbar.php';
	    $app->params['ckeditor']['basic']['plugins'] = require $presetsPath . '/basic/plugins.php';
	    // editor
	    $app->params['ckeditor']['editor']['toolbar'] = require $presetsPath . '/editor/toolbar.php';
	    $app->params['ckeditor']['editor']['plugins'] = require $presetsPath . '/editor/plugins.php';
	    // debeloper
	    $app->params['ckeditor']['developer']['toolbar'] = require $presetsPath . '/developer/toolbar.php';
	    $app->params['ckeditor']['developer']['plugins'] = require $presetsPath . '/developer/plugins.php';

	    // set preset example
	    /*$form->field($model, 'content')->widget(CKEditor::class, [
		    'editorOptions' => \zertex\elfinder\ElFinder::ckeditorOptions('elfinder',[
			    'toolbar' => Yii::$app->params['ckeditor']['editor']['toolbar'],
			    'extraPlugins' => Yii::$app->params['ckeditor']['editor']['plugins'],
		    ])
	    ])*/

        $container->set(CKEditor::class, [
            'editorOptions' => ElFinder::ckeditorOptions('elfinder', [
	            'toolbar' => $app->params['ckeditor']['editor']['toolbar'],
	            'extraPlugins' => $app->params['ckeditor']['editor']['plugins'],
            ]),
        ]);

        // load settings
	    $settings = ArrayHelper::map(Settings::find()->andWhere(['active' => 1])->all(), 'key', 'value', 'section');
	    $app->params['settings'] = $settings;

	    // Connect backend modules

	    // Add finish UrlRules
	    $app->getUrlManager()->addRules([
		    '<_c:[\w\-]+>' => '<_c>/index',
		    '<_c:[\w\-]+>/<id:\d+>' => '<_c>/view',
		    '<_c:[\w\-]+>/<_a:[\w-]+>' => '<_c>/<_a>',
		    '<_c:[\w\-]+>/<id:\d+>/<_a:[\w\-]+>' => '<_c>/<_a>',
	    ]);
    }
}