class Widgets { public function zdravkz($limit=4) { $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60*30; $key = 'zdravkz_width_'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $rss = file_get_contents("http://www.zdrav.kz/news.xml"); $content = new SimpleXMLElement($rss); if($content) { foreach($content->channel->item as $k=>$v) { if(strlen($v->title)>150) { $end_pos = strlen($v->title)>150 ? strrpos(substr($v->title,0,150)," ") : strlen($v->title); $v->title = substr($v->title,0, $end_pos).'...'; } $v = (array)$v; $img = (array)$v['enclosure']; $widget[] = array( 'title' => $v['title'], 'link' => $v['link'], 'date' => $v['pubDate'], 'image' => $img['@attributes']['url'] ); if(count($widget)>=$limit) break; } $mem->set($key,$widget,false,$cacheTime); } } return $widget; } public function kazTengri () { $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60*30; $key = 'kaz_tengri_width_'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->findAll(array( 'condition' => 'status = :active', 'params' => array(':active' => 'published'), 'order' => 'publish_date desc', 'limit' => 4 )); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public function ruTengri () { $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60*30; $key = 'ru_tengri_width_'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->findAll(array( 'condition' => 'status = :active', 'params' => array(':active' => 'published'), 'order' => 'publish_date desc', 'limit' => 4 )); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public function kundelik () { $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60*30; $key = 'kundelik_width_'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->findAll(array( 'condition' => 'status = :active AND secure_content=:secure_content', 'params' => array(':active' => 'published', ':secure_content'=>true), 'order' => 'publish_date desc', 'limit' => 4 )); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public function winners () { $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60; $key = 'winners'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = Pobediteli::model()->with('photos')->find(array( 'condition' => 't.status = :active and (photos.image IS NOT NULL AND photos.image != "") AND photos.ava = :ava', 'params' => array(':active' => 1,':ava' => 1), 'order' => 'RAND()', 'limit' => 1 )); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public static function also_read(){ $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60; $key = 'alsoread'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->with('photos')->findAll( array( 'condition' => 'type = :type AND status = :status AND rubric_id = :id', 'params' => array(':type' => 0, ':status' => 'published', ':id' => 168), 'limit'=>10, 'order'=>'publish_date desc' ) ); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public static function _mix_massaget(){ $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60; $key = 'alsoread'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->with('photos')->findAll( array( 'condition' => 'type = :type AND status = :status AND rubric_id = :id', 'params' => array(':type' => 0, ':status' => 'published', ':id' => 168), 'limit'=>10, 'order'=>'publish_date desc' ) ); $mem->set($key,$widget,false,$cacheTime); } return $widget; } public static function _multispace(){ $mem = new Memcache; $mem->addServer(Yii::app()->params['memcacheServer'],'11211'); $cacheTime = 60; $key = 'multispace'.Yii::app()->language; $widget = $mem->get($key); if(!$widget) { $widget = News::model()->with('photos')->findAll( array( 'condition' => 'type = :type AND status = :status AND rubric_id = :id', 'params' => array(':type' => 0, ':status' => 'published', ':id' => 10187), 'limit'=>10, 'order'=>'publish_date desc' ) ); $mem->set($key,$widget,false,$cacheTime); } return $widget; } }