更改yii2中的JuiAsset主题

时间:2015-01-23 02:51:11

标签: php oop yii2 yii2-advanced-app

我使用了yii2-jui中的datePicker,我想更改使用的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

2 个答案:

答案 0 :(得分:1)

不仅不是OOP,而且修改核心Yii文件也很糟糕。

2个选项:

  1. 执行此操作https://github.com/yiisoft/yii2/issues/6170这是您在Google上搜索时出现的第二个链接。如果您输入问题的确切名称,则为4号,以便将来可以尝试
  2. 在一个之后注册新主题(css文件) 默认注册。最后注册的主题中的类将 覆盖默认的那些。
  3. 修改 你告诉我你在评论中寻找的东西

      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 :(得分:0)

有点旧,但你应该将assetManager覆盖在config / web.php文件中的&#39; components&#39;像这样:

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

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

我刚测试了这个,因为我正在寻找类似的东西,工作得很好