Browse Source

Added $publish parameter to AssetManager::getBundle().

tags/2.0.0-beta
Qiang Xue 11 years ago
parent
commit
b03b38fb0d
  1. 2
      framework/yii/base/View.php
  2. 2
      framework/yii/web/AssetBundle.php
  3. 10
      framework/yii/web/AssetManager.php

2
framework/yii/base/View.php

@ -552,7 +552,7 @@ class View extends Component
foreach($bundle->depends as $dep) {
$this->registerAssetFiles($dep);
}
$bundle->registerAssets($this);
$bundle->registerAssetFiles($this);
unset($this->assetBundles[$name]);
}

2
framework/yii/web/AssetBundle.php

@ -133,7 +133,7 @@ class AssetBundle extends Object
* Registers the CSS and JS files with the given view.
* @param \yii\base\View $view the view that the asset files are to be registered with.
*/
public function registerAssets($view)
public function registerAssetFiles($view)
{
foreach ($this->js as $js) {
if (strpos($js, '/') !== 0 && strpos($js, '://') === false) {

10
framework/yii/web/AssetManager.php

@ -95,10 +95,12 @@ class AssetManager extends Component
* it will treat `$name` as the class of the asset bundle and create a new instance of it.
*
* @param string $name the class name of the asset bundle
* @param boolean $publish whether to publish the asset files in the asset bundle before it is returned.
* If you set this false, you must manually call `AssetBundle::publish()` to publish the asset files.
* @return AssetBundle the asset bundle instance
* @throws InvalidConfigException if $name does not refer to a valid asset bundle
*/
public function getBundle($name)
public function getBundle($name, $publish = true)
{
if (isset($this->bundles[$name])) {
if ($this->bundles[$name] instanceof AssetBundle) {
@ -111,8 +113,10 @@ class AssetManager extends Component
} else {
$bundle = Yii::createObject($name);
}
/** @var AssetBundle $bundle */
$bundle->publish($this);
if ($publish) {
/** @var AssetBundle $bundle */
$bundle->publish($this);
}
return $this->bundles[$name] = $bundle;
}

Loading…
Cancel
Save