/** * This is the default 'index' action that is invoked * when an action is not explicitly requested by users. */ public function actionIndex() { Yii::app()->page->title = "Банеры"; $banners = ExBanner::fetchAll(DBQueryParamsClass::CreateParams()->setOrderBy("name")->setLimit(-1)->setCache(0)); $bannersCategory = ExBannerCategory::fetchAll(DBQueryParamsClass::CreateParams()->setOrderBy("name")->setLimit(-1)->setCache(0)); $this->render("index", array("banners" => $banners, "bannersCategory" => $bannersCategory)); }
public function getBannerByCategory($categoryKeyWord) { if (!empty($categoryKeyWord)) { $banner = false; $categoryModel = ExBannerCategory::fetchByKeyWord($categoryKeyWord); if (!$categoryModel || $categoryModel->id > 0) { $DBParams = DBQueryParamsClass::CreateParams()->setConditions("category=:category AND status_id=2 ")->setParams(array(":category" => $categoryModel->id))->setOrderBy("last_date ASC")->setCache(0)->setLimit(1); $bannerArray = ExBanner::fetchAll($DBParams); if (sizeof($bannerArray) > 0) { $banner = $bannerArray[0]; // Дефолтовый банер if (!$banner) { $DBParams = DBQueryParamsClass::CreateParams()->setConditions("category=:category AND `default`=1 AND status_id=2")->setParams(array(":category" => $categoryModel->id))->setOrderBy("count_show DESC")->setCache(0)->setLimit(1); $bannerArray = ExBanner::fetchAll($DBParams); if (sizeof($bannerArray) > 0) { $banner = $bannerArray[0]; } } if ($banner->id > 0) { $banner->update(array("count_show" => $banner->count_show + 1, "last_date" => time())); // Если выставлено ограничение показов if ($banner->finish_count_show > 0 && $banner->count_show >= $banner->finish_count_show) { $banner->update(array("status_id" => 3)); } // Окончание показа банера, если указана дата окончания публикации //echo "=".$banner->finish_date." ".( date("d.m.Y", $banner->finish_date ) )."<hr/>"; //echo "=".time()." ".( date("d.m.Y" )); if (!empty($banner->finish_date) && $banner->finish_date <= time()) { // $banner->update( array( "status_id"=>3 ) ); // Отправляем уведомление о окончании заказщику if ($banner->email) { /* $subject = "Показ рекламного банера на сайте ".ZONA_HOST." успешно завершен"; $message = "Здравствуйте<br/> Показ рекламного банера на сайте ".ZONA_HOST." успешно завершен.<br/> Параметры:<br/> -------------------------------------------------<br/>\ Дата начала: ".date( "d.m.Y", strtotime( $start_date ) )."<br/> Дата окнчания: ".date( "d.m.Y", strtotime( $finish_date ) )."<br/> Количество показов: ".( $count_show + $addCount )."<br/> <br/> С уважением<br/> Администрация сайта ".ZONA_HOST; mailto( $subject."-", $from='', $email, $message ); */ } } } } if (!empty($banner)) { $controller = new Controller("index"); $controller->layout = false; return $controller->renderPartial("ext.banners.views.index", array("banner" => $banner), true); } } else { throw new CHttpException("Banner error", "Неправельно указана категория банера ( " . $categoryKeyWord . " )"); } } else { throw new CHttpException("Banner error", "Не указана категория банера"); } return false; }