Таким способом можно прикрутить любое из расширений JQ да и JS
Для начала я скачал старый добрый Datepicker с http://jqueryui.com/demos/datepicker/#default
Перенес файлы с архива в проект, каталог вышел такой:
Код: Выделить всё
/js/
jquery_ui/
datepicker/
i18n/
jquery-ui-i18n.js
ui.datepicker-ru.js
images/
ui-bg_flat_0_aaaaaa_40x100.png
ui-bg_flat_75_ffffff_40x100.png
.....
ui-icons_cd0a0a_256x240.png
ui.datepicker.css
ui.datepicker.js
ui.core.js
Код: Выделить всё
<?php
$cs=Yii::app()->clientScript;
/* Подключаем css календаря */
$cs->registerCSSFile(Yii::app()->request->baseUrl.'/js/jquery_ui/datepicker/ui.datepicker.css', CClientScript::POS_HEAD);
/* Регистрируем библиотеку JQuery, она идет в поставки с фреймворком, хранится в недрях папки assets проекта */
$cs->registerCoreScript('jquery');
/* Для работы UI регистрируем корневую библиотеку */
$cs->registerScriptFile(Yii::app()->request->baseUrl.'/js/jquery_ui/ui.core.js', CClientScript::POS_HEAD);
/* Регистрируем библиотеку datepicker */
$cs->registerScriptFile(Yii::app()->request->baseUrl.'/js/jquery_ui/datepicker/ui.datepicker.js', CClientScript::POS_HEAD);
/* Регистрируем языковый файл, что бы все было по русски */
$cs->registerScriptFile(Yii::app()->request->baseUrl.'/js/jquery_ui/datepicker/i18n/ui.datepicker-ru.js', CClientScript::POS_HEAD);
/* Ну и добавляем скриптик, ктоторый определяет языковый пакет и запускает календарь */
$script = '$(function() {'."\n";
$script .= '$.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional[\'\']));'."\n";
/* Не забываем менять ID поля ;) */
$script .= '$("#Articles_Date").datepicker($.datepicker.regional[\'ru\']);'."\n";
$script .= '});'."\n";
/* datepicker_init_local - Это идентификатор куска JS который мы добавляем*/
$cs->registerScript('datepicker_init_local', $script, CClientScript::POS_BEGIN);
?>
Наверное стоит упомянуть что CClientScript::POS_HEAD будет добавлен перед тегом </heaer>, а CClientScript::POS_BEGIN после тега <body>