プロジェクトの GridView に問題があります。私は Yii アプリケーションを開発しており、プロジェクトのさまざまなビューで標準の zii グリッド ビューを使用しています。私の問題は、プロジェクト内の 1 つの場所から CSS スタイルを変更する方法を見つけることです。ビューごとに変更したくありません。これを行うための提案はありますか?
4 に答える
グローバル設定については、アプリケーション構成ファイル main.php を次のように編集できます。
return array(
…
'components'=>array(
'widgetFactory'=>array(
'widgets'=>array(
'CGridView'=>array(
'cssFile' => Yii::app()->request->baseUrl.'/css/gridview.css',,
),
まとめてロードを停止するスニペットを追加したかっただけです。メイン構成のコンポーネント配列に追加されました。これは 1.1.3 以降で利用可能です
//stop zii loading css
'widgetFactory'=>array(
'widgets'=>array(
'CGridView'=>array(
'cssFile' => FALSE,
),
),
),
または、特定のスタイルシートをロードします
//stop zii loading css and load a specific stylesheet
'widgetFactory'=>array(
'widgets'=>array(
'CGridView'=>array(
'cssFile' => Yii::app()->request->baseUrl.'/css/gridview.css',
),
),
),
この問題について多くのことを検索した後、そのための優れた標準的な解決策を見つけることができませんでした。そのため、私はそれを解決するために珍しい、おそらく標準的ではない方法を使用し、私の問題に直面する可能性のある人のためにここに置きました.
zii yii グリッド ビューを使用すると、デフォルトで、実行時に適切な CSS ファイルを取得するためのリクエストが送信されるため、コントローラーでは、このコードを使用して元のファイルを取得できません。
Yii::app()->clientScript->scriptMap = array(
'pager.css' => false,
'styles.css' => false,
);
ポイントは、このコードは、プロジェクトにあるすべての styles.css ファイルへのすべての要求を防ぐことです。ので気をつけてください。
次に、リクエストを sytles.css および pager.css ファイルに変更しました。gridStyle.css と pager.css という名前の 2 つのカスタム css ファイルを定義し、これら 2 つの元のファイルの代わりに使用します。したがって、次のコードでは、そのためにいくつかのマッピングを使用しました:
Yii::app()->clientScript->scriptMap = array(
'pager.css' => Yii::app()->theme->baseUrl . '/css/pager.css',
'styles.css' => Yii::app()->theme->baseUrl . '/css/gridStyle.css',
);
このコードで、styles.css および pager.css ファイルへの要求がある場合は、それらをカスタム ファイルに置き換えると言いました。
ビューごとにそれを変更するには(あなたがしたくないと言ったのは知っていますが、ここでは検索している可能性のある人のためのものです) は、インスタンスのcssFile
プロパティを次のように変更することです:CGridView
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'user-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'ajaxUpdate' => false,
'cssFile' => Yii::app()->request->baseUrl.'/css/gridview.css',
...
上記の例では、デフォルトの CSS ファイルの代わりにgridview.cssという CSS ファイルを使用しています。
グローバルに( のすべてのインスタンスにわたってCGridView
) 変更するには、いずれかの CSS ファイルでグリッドビューの CSS 属性を手動で上書きします (ファイルの読み込み順序に注意してください。使用する必要がある場合があります!important
) 。
また
次の場所にある gridview のフレームワーク アセットを編集するだけです。
framework/zii/widgets/assets/gridview/styles.css