1) Добавлена так недостающая поддержка CDbCommand в двух возможных вариантах : установка дефолтного CDbCriteria в виде параметра scope и передача как параметра в функции типа getTagsWithModelCount(CDbCriteria $criteria). Первый вариант действует во всех случаях подгрузки тегов к модели, по сути - тот же defaultScope в модели, но оформленный как переменная в поведении для удобства конфига, например :
Код: Выделить всё
'tags' => array(
'class' => 'application.extensions.yiiext.behaviors.model.taggable.ETaggableBehavior',
'scope' => array(
'condition' => ' t.user_id = :user_id ',
'params' => array( ':user_id' => Yii::app()->user->id ),
),
),
Код: Выделить всё
'tags' => array(
'class' => 'application.extensions.yiiext.behaviors.model.taggable.ETaggableBehavior',
'insertValues' => array(
'user_id' => Yii::app()->user->id,
),
),
Все это делалось для возможности реализовать пользовательские теги, которые видны только конкретному участнику, но могут быть и совершенно другие потребности, под себя не затачивал.
Пришлось переписать достаточно много кода с жестко забитых SQL на CDbCommandBuilder, чтобы обеспечить работу с CDbCriteria.
Замечу, что я пока не вкурил PHPUnit и оттестировать толком не умею