Assets + js + css

Hali. Ez a view file-om tartalma, lehetne ezt valahogyan szebben és egyszerűbben?


<?php $this->breadcrumbs = array(Yii::t("z3us", "videos")); ?>


<?php $this->widget('zii.widgets.CListView', array

(

	'dataProvider'=>$dataProvider,

	'itemView'=>'_view',

	'sortableAttributes'=>array

	(

		'title',

		'added',

    ),

));?>


<?php

$file1 = Yii::app()->getAssetManager()->publish( Yii::getPathOfAlias('application.views.index.javascript').'/jquery.easing.1.3.js' );

$file2 = Yii::app()->getAssetManager()->publish( Yii::getPathOfAlias('application.views.index.javascript').'/jquery.movingboxes.min.js' );

$file3 = Yii::app()->getAssetManager()->publish( Yii::getPathOfAlias('application.views.index.css').'/movingboxes.css' );

Yii::app()->clientScript->registerScriptFile($file1);

Yii::app()->clientScript->registerScriptFile($file2);

Yii::app()->clientScript->registerCssFile($file3);

?>

Erre a témára a widget és portlet témakörben láttam megvalósításokat.

Lehet, hogy ronda megoldás de én úgy oldottam meg, hogy a /js könyvtárba tettem a javascript könyvtáraim és nem bíztam rá az asset manager-re.

És pont azért mert ez a megoldás nem tetszett nem használtam az asset-et, de jobbat nem tudok, jó lenne ha valaki megosztana velünk egy szebb megoldást.

Én azért nem hajítanám ki az assetsManager-t. Jó az akkor ha extension-t vagy module-t írsz és tényleg szeretnéd hogy modulárisak legyenek.

Asset manager tud egész könyvtárakat másolni így a fentieket a következőképpen lehet egyszerűsíteni:


<?php

$jsAssetsPath = Yii::app()->assetManager->publish( Yii::getPathOfAlias('application.views.index.javascript') );

Yii::app()->clientScript->registerCssFile(

    Yii::app()->getAssetManager()->publish(

        Yii::getPathOfAlias('application.views.index.css').'/movingboxes.css'

    )

);

Yii::app()->clientScript->registerScriptFile("$jsAssetsPath/jquery.easing.1.3.js");

Yii::app()->clientScript->registerScriptFile("$jsAssetsPath/jquery.movingboxes.min.js");

?>

Még ezt lehetne tovább finomítani a CClientScript packages tömbjével.

Azt azért megjegyezném, hogy ha module-t írsz, akkor jobb megoldást kell találni a getPathOfAlias helyett, hisz lehet hogy module-odat később nested-module-nak szeretnéd használni.

Újra reagálok a bejegyzésre. Időközben megismerkedtem a widget írás, modul írás rejtelmeivel.

Alapvetően a főkönyvtárban lévő /js /css is jó megoldás, de ha modulárisan több kódba felhasználható beépülőket szeretnétek írni, mindenképpen az asset-ek a jó megoldás.

Sok minden még most sem egyértelmű számomra, főleg a themes, messages része a yii-nek, illetve, hogy hogyan kellene igazán szépen használni.

Idővel és gyakorlással majd megtudom, esetleg aki ezt már szervesen használja, az bedobhatna egy kommentet ide, hogy mit és hogy…