$criteria = new CDbCriteria;
$criteria->select = "t.* ,(SELECT COUNT(*) FROM {{messages}} WHERE IF(t.userTo=:userid,userTo,userFrom)=t.userTo AND IF(t.userTo=:userid,userFrom,userTo)=t.userFrom AND isNew=1) AS newMessagesdialog";
$criteria->join = "JOIN (SELECT IF(userTo=:userid,userFrom,userTo) AS user_id_other, MAX(creationDate) AS date_time_max FROM pdb_messages
WHERE (userTo=:userid OR userFrom=:userid) AND IF(userTo=:userid,hideOnUserTo,hideOnUserFrom)=0 AND moderated_status=1 AND IF(type='s' AND userFrom=:userid,false,true) GROUP BY IF(userTo=:userid,userFrom,userTo)) AS d ON IF(userTo=:userid,userFrom,userTo)=user_id_other AND creationDate=date_time_max ";
$criteria->addCondition('userTo=:userid OR userFrom=:userid');
$criteria->order = 'newMessagesdialog DESC,t.creationDate DESC';
$criteria->params = array(':userid' => $userid);
/* Правила роутинга для модулей */
'onBeginRequest' => array('ModuleUrlManager', 'collectRules'),
/**
* Класс менеджер путей модулей
* Активирует urlRules параметр активного модуля
* Работает с многоуровневой вложеностью модулей
* Реализовано кеширование urlRules модулей
*/
class ModuleUrlManager {
static function collectRules() {
if (!empty(Yii::app()->modules)) {
$cache = Yii::app()->getCache();
$route = Yii::app()->getRequest()->getPathInfo();
$patharray = explode('/', $route);
$moduleName = substr($route, 0, strpos($route, '/'));
/* Если роут имеет вид module.html */
if (empty($moduleName)) {
$moduleName = substr($route, 0, strpos($route, '.'));
}
if (Yii::app()->hasModule($moduleName)) {
$urlRules = false;
if ($cache)
$urlRules = $cache->get('module.url.rules.' . $moduleName);
if ($urlRules === false) {
$module = Yii::app()->getModule($moduleName);
if (isset($module->urlRules)) {
$urlRules = $module->urlRules;
if ($cache && !empty($urlRules))
$cache->set('module.url.rules.' . $module->id, $urlRules);
}
}
if (!empty($urlRules))
Yii::app()->getUrlManager()->addRules($urlRules);
if (!empty($patharray)) {
foreach ($patharray as $pathUnit) {
$position = strpos($pathUnit, '.html');
if ($position) {
$pathUnit = substr($pathUnit, 0, $position);
}
$urlRules = false;
if ($cache)
$urlRules = $cache->get('module.url.rules.' . $moduleName . '/' . $pathUnit);
if ($urlRules === false) {
$module = Yii::app()->getModule($moduleName);
if ($module->hasModule($pathUnit)) {
$submodule = $module->getModule($pathUnit);
if (isset($submodule->urlRules)) {
$urlRules = $submodule->urlRules;
if ($cache && !empty($urlRules))
$cache->set('module.url.rules.' . $submodule->id, $urlRules);
}
}
}
if (!empty($urlRules))
Yii::app()->getUrlManager()->addRules($urlRules);
}
}
}
return true;
}
}
}
# Убираем несколько слешей в урле
RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=302,L,NE]
# Убираем последний слеш в урле
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} (/+)$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
'categories'=>array(self::MANY_MANY, 'Category', 'tbl_post_category(post_id, category_id)'),
jQuery('body').on('click','.content > sup',function(){
var marker=jQuery(this).text();
var element=jQuery('.note_box strong:contains("'+marker+'")');
if (element.length != 0) {
jQuery('html, body').animate({scrollTop:element.offset().top }, 500);
}
});