YiiWheels
  • Package
  • Class
  • Tree

Packages

  • None
  • yiiwheels
    • behaviors
    • widgets
    • widgets
      • ace
      • box
      • datepicker
      • daterangepicker
      • datetimepicker
      • detail
      • fileupload
      • fileuploader
      • gallery
      • google
      • grid
        • behaviors
        • operations
      • highcharts
      • maskInput
      • maskmoney
      • modal
      • multiselect
      • rangeslider
      • redactor
      • select2
      • sparklines
      • switch
      • timeago
      • timepicker
      • toggle
      • typeahead

Classes

  • YiiWheels
  1 <?php
  2 /**
  3  * YiiWheels class file.
  4  * @author Antonio Ramirez <amigo.cobos@gmail.com>
  5  * @copyright Copyright &copy; 2amigos.us 2013-
  6  * @license http://www.opensource.org/licenses/bsd-license.php New BSD License
  7  * @package yiiwheels
  8  */
  9 
 10 class YiiWheels extends CApplicationComponent
 11 {
 12     /**
 13      * @var array the HTML options for the view container tag.
 14      */
 15     public $htmlOptions = array();
 16 
 17     /**
 18      * @var array $assetsJs of javascript library names to be registered when initializing the library.
 19      */
 20     public $assetsJs = array();
 21 
 22     /**
 23      * @var array $assetsCss of style library names to be registered when initializing the library.
 24      */
 25     public $assetsCss = array();
 26 
 27     /**
 28      * @var TbApi $_api
 29      */
 30     protected $_api;
 31 
 32     /**
 33      * @var string holds the published assets
 34      */
 35     protected $_assetsUrl;
 36 
 37 
 38     /**
 39      * Widget's initialization
 40      * @throws CException
 41      */
 42     public function init()
 43     {
 44         $this->_api = Yii::app()->getComponent('bootstrap');
 45 
 46         if (null === $this->_api) {
 47             throw new CException(Yii::t('zii', '"YiiWheels" must work in conjunction with "YiiStrap".'));
 48         }
 49 
 50         /* ensure all widgets - plugins are accessible to the library */
 51         Yii::import('bootstrap.widgets.*');
 52         /* ensure common behavior is also accessible to the library */
 53         Yii::import('yiiwheels.behaviors.WhPlugin');
 54 
 55         /* register css assets */
 56         foreach ($this->assetsCss as $css) {
 57             $this->registerAssetCss($css);
 58         }
 59 
 60         /* register js assets */
 61         foreach ($this->assetsJs as $js) {
 62             $this->registerAssetJs($js);
 63         }
 64     }
 65 
 66     /**
 67      * Returns the core library (yiistrap) component
 68      * @return TbApi
 69      */
 70     public function getApi()
 71     {
 72         return $this->_api;
 73     }
 74 
 75     /**
 76      * Returns the assets URL.
 77      * Assets folder has few orphan and very useful utility libraries.
 78      * @return string
 79      */
 80     public function getAssetsUrl()
 81     {
 82         if (isset($this->_assetsUrl)) {
 83             return $this->_assetsUrl;
 84         } else {
 85             $forceCopyAssets = $this->getApi()->forceCopyAssets;
 86             $path            = Yii::getPathOfAlias('yiiwheels');
 87             $assetsUrl       = Yii::app()->assetManager->publish(
 88                 $path . DIRECTORY_SEPARATOR . 'assets',
 89                 false,
 90                 -1,
 91                 $forceCopyAssets
 92             );
 93 
 94             return $this->_assetsUrl = $assetsUrl;
 95         }
 96     }
 97 
 98     /**
 99      * Register a specific js file in the asset's js folder
100      * @param string $jsFile
101      * @param int $position the position of the JavaScript code.
102      * @see CClientScript::registerScriptFile
103      * @return $this
104      */
105     public function registerAssetJs($jsFile, $position = CClientScript::POS_END)
106     {
107         Yii::app()->getClientScript()->registerScriptFile($this->getAssetsUrl() . "/js/{$jsFile}", $position);
108         return $this;
109     }
110 
111     /**
112      * Registers a specific css in the asset's css folder
113      * @param string $cssFile the css file name to register
114      * @param string $media the media that the CSS file should be applied to. If empty, it means all media types.
115      * @return $this
116      */
117     public function registerAssetCss($cssFile, $media = '')
118     {
119         Yii::app()->getClientScript()->registerCssFile($this->getAssetsUrl() . "/css/{$cssFile}", $media);
120         return $this;
121     }
122 }
YiiWheels API documentation generated by ApiGen 2.8.0