/**
  * 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));
 }
Example #2
0
 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;
 }