Difference between #1 and #2 of
Serve jQuery and jQuery-UI from Google's CDN

Revision #2 has been created by Yeti on Oct 19, 2011, 5:47:59 PM with the memo:

Everything now configured in main config file
« previous (#1) next (#3) »

Changes

Title unchanged

Serve jQuery and jQuery-UI from Google's CDN

Category unchanged

Tutorials

Yii version unchanged

Tags unchanged

jquery, jqueryui, google, CDN

Content changed

[...]
This tutorial shows you how to use Goggle's CDN to serve jQuery and jQuery UI in Yii.

Edit your Config File
------------------
There are t
wohree additions to make in your config file: 1. Define the JUI Theme you want to use.
 
2.
Add a _package_ definition for jQuery under the "clientScript" component in the "components" section 23. Add a _package_ definition for jQuery UI the "params" section
 
 
 
```php
Set "theme", "scriptURL" and "themeURL" for each JUI Widget you use the "widgetFactory" section; the URLs point to Google's CDN, the theme uses the define from step 1.
 
 
 
```php 
define('JUI-THEME','dark-hive');

return array(
// other config
[...]
// other clientScript config
),
// other component config
 
  ),
 
  // other config
 
 
  'params
'widgetFactory'=>array(  'jquery.ui 'widgets'=>array( 'the  'CJui<WidgetName>'=>'dark-hive', // change to the theme you want to use
 
array( // where <WidgetName> is the name of the JUI Widget (Tabs, DatePicker, etc.). Each CJuiWidget used must be declared
 
    
'scriptUrl'=>'//ajax.googleapis.com/ajax/libs/jqueryui/1/',           'theme'=>JUI-THEME,
 
    
'themeUrl'=>'//ajax.googleapis.com/ajax/libs/jqueryui/1/themes/',     ),     // other params
 
  )
Repeat for other CJuiWidgets
 
      ),
 
    ),
 
    // other component config
 
  ),
 
  // other config
); ``` Note that the URLs are missing the protocol. This allows users browsers to cache both http and https requests from a single download. For jQuery that is all that is needed.
 
 
For jQuery UI we need to tell JUI widgets to use the CDN; we do this when the configuring the widget in the view:
 
 
 
```php 
$jui = Yii::app()->params['jquery.ui'];
 
$this->widget('zii.widgets.jui.CJui<WidgetName>',array(
 
  'scriptUrl'=>$jui['scriptUrl'],
 
  'theme'=>$jui['theme'],
 
  'themeUrl'=>$jui['themeUrl'],
 
  // other widget config
 
));
 
```
 
where <WidgetName> is the name of the JUI Widget (Tabs, DatePicker, etc.)
 
 
That's it - your application will now use Google's CDN to serve jQuery and jQuery UI; to the benefit of you and your visitors. It also means that a single change in the config file will change the theme of all your JUI widgets.
 
 
(Thanks to redguy for pointing out the widget factory configuration)
14 0
17 followers
Viewed: 42 653 times
Version: 1.1
Category: Tutorials
Written by: Yeti
Last updated by: fad
Created on: Oct 18, 2011
Last updated: 11 years ago
Update Article

Revisions

View all history