Deve essere yii a includere nell’header gli script che ti servono non devi metterli brutalmente tu perchè si accavallano ad esempio con jquery già usato da yii.io mi sono fatto una cartella packages nella webroot e là ho messo tutti gli script js/css, poi nel file di configurazione di yii (sezione components di main.php) devi dichiarare la posizione degli script (puoi anche sostituire jquery di yii con una versione più recente… ma prova se è compatibile con yii)
Nota che ad esempio jqueryui dipende da jquery e lo specifichi con il parametro ‘depends’
'clientScript' => array(
'packages' => array(
'jquery' => array(
'baseUrl' => '/packages/jquery-1.7.2.min',
'js' => array(
'jquery-1.7.2.min.js',
),
),
'jquery-ui' => array(
'baseUrl' => '/packages/jquery-ui-1.8.18.custom',
'js' => array(
'js/jquery-ui-1.8.18.custom.min.js',
'development-bundle/ui/i18n/jquery-ui-i18n.js',
),
'css' => array(
'css/ui-lightness/jquery-ui-1.8.18.custom.css'
),
'depends' => array(
'jquery'
),
),
'bootstrap' => array(
'baseUrl' => '/packages/twitter-bootstrap-2.0.2',
'js' => array(
'js/bootstrap.min.js',
),
'css' => array(
'css/bootstrap.min.css',
'css/bootstrap-responsive.min.css',
),
'depends' => array(
'jquery'
),
),
),
Poi per inserirli nella view io personalmente ho ridefinito il controller aggiungendo un filtro comune a tutte le actions che include gli script che sicuramente mi servono
public function filters() { return array( 'initScriptComuni'); }
public function filterInitScriptComuni($filterChain)
{
Yii::app()->getClientScript()->registerCoreScript("jquery");
Yii::app()->getClientScript()->registerCoreScript("jquery-ui");
Yii::app()->getClientScript()->registerCoreScript("bootstrap");
$filterChain->run();
}
Infine se nella action specifica ti serve un css o uno script specifico lo aggiungi, ma ricordati che lo devi sempre dichiarare nel main.php
Yii::app()->getClientScript()->registerCoreScript("altroscript");