Изменить тему JuiAsset в yii2

Я использую datePicker из yii2-jui и хочу изменить используемую тему Jquery Ui.
Я попробовал хардкорное изменение в myapp\vendor\yiisoft\yii2-jui\JuiAsset.php

class JuiAsset extends AssetBundle
{
public $sourcePath = '@bower/jquery-ui';
public $js = [
'jquery-ui.js',
];
public $css = [
'themes/THE_OTHER_THEME/jquery-ui.css',
];
public $depends = [
'yii\web\JqueryAsset',
];
}

Вот фрагмент _form Посмотреть:

<?php

use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\jui\DatePicker;

/* @var $this yii\web\View */
/* @var $model frontend\models\Profile */
/* @var $form yii\widgets\ActiveForm */
?>
...
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'birthdate')->widget(DatePicker::className(), ['clientOptions' => ['dateFormat' => 'yy-mm-dd']]) ?>

Однако этот способ не решение получить то, что я хочу. Я не могу знать, что я должен делать, на мой взгляд _form.php чтобы можно было переопределить свойство объекта JuiAsset $css

0

Решение

Мало того, что это не ООП, но и изменение основных файлов Yii — это плохо.

2 варианта:

  1. сделай это https://github.com/yiisoft/yii2/issues/6170 это вторая ссылка, которая появляется при поиске в Google. Если вы поставите точное название вопроса, это номер 4, так что вы можете попробовать это в будущем
  2. Зарегистрируйте новую тему (файл CSS) после
    зарегистрирован по умолчанию. Классы в теме, зарегистрированные в последний раз
    перезаписать те, которые по умолчанию.

РЕДАКТИРОВАТЬ:
Вы сказали мне, что вы ищете что-то в комментариях

  Yii::$app->set('assetManager' , [
'class' => 'yii\web\AssetManager',
'bundles' => [
'yii\widgets\ActiveFormAsset' => [
'js' => [],
'depends' => [
'yii\adminUi\assetsBundle\AdminUiActiveForm',
],
],
'yii\grid\GridViewAsset' => [
'depends'   => [
'backend\assets\AppAsset'
],
],
],
'linkAssets' => true,
]);
1

Другие решения

немного староват, но вы должны поместить переопределение assetManager в файл config / web.php в «компоненты» следующим образом:

$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],

'components' => [
'assetManager' => [
'bundles' => [
'yii\jui\JuiAsset' => [
'css' => [
'themes/flick/jquery-ui.css',
]
]
]
],
],];

я только что проверил это, поскольку я искал что-то похожее, работал просто отлично

0

По вопросам рекламы [email protected]