registerScriptFile и дублирования

я почему-то наивно думал что если использовать Yii::app()->clientScript->registerScriptFile, то у меня не будет дублирований в коде одного и того же файла. Но оказалось что стандартные модули могут насильно впихнуть второй раз.

как избавится от повторного включения одной и той же библиотеки ?

А подробнее, что именно по несколько раз регистрируется?

Вот код:




public function registerScriptFile($url,$position=self::POS_HEAD)

{

      $this->_hasScripts=true;

      $this->scriptFiles[$position][$url]=$url;

      $params=func_get_args();

      $this->recordCachingAction('clientScript','registerScriptFile',$params);

}



т.е. два раза может зарегистрироваться либо если position разный указан, либо url (это может быть, если папка со скриптом публикуется разными способами, например, есть /assets/js/my.js и сначала публикуется assets и /js/my.js из нее, а потом js и /my.js).

у меня очень активно используется jquery ui, я его в лэйауте подключаю.

а на одной странице использую Datapicker, и он гад вставляет еще раз jquery ui возле себя.

посмотрел по апи, виджеты вроде другой метод вызывают. видимо из-за этого факап (

хотя вот сейчас в голову пришло что можно датапикер юзать напрямую, минуя Yii и будет мне радость и счастье )

isScriptFileRegistered()

кстати, а логика немного не корректная.

Получается что я один и тот же файл смогу добавить 3 раза, или сколько там позишинов доступно ?