예제 #1
0
 public function actionDescription($gallError = "")
 {
     $this->firmId = (int) Yii::app()->request->getParam("fid", 0);
     $id = (int) Yii::app()->request->getParam("id", 0);
     // Если не указан ID фирмы, то берем ID из описания тура
     if ($id > 0 && $this->firmId == 0) {
         $tourModel = CatalogTours::fetch($id);
         if ($tourModel->id > 0 && $tourModel->firm_id && $tourModel->firm_id->id > 0) {
             $this->firmId = $tourModel->firm_id->id;
         }
     }
     if ($this->firmId == 0) {
         die("id==0");
         $this->redirect(SiteHelper::createUrl("/user/firms"));
     }
     $firmModel = CatalogFirms::fetch($this->firmId);
     if ($firmModel->id == 0) {
         die("id==not correct");
         $this->redirect(SiteHelper::createUrl("/user/firms"));
     }
     parent::init();
     $this->addModel = "CatalogToursAdd";
     $this->tableName = "catalog_tours";
     $this->name = Yii::t("user", "туры");
     $_POST["CatalogToursAdd"]["firm_id"] = $this->firmId;
     $_POST["CatalogToursAdd"]["user_id"] = Yii::app()->user->getId();
     parent::actionDescription();
 }
예제 #2
0
 public function actionDescription()
 {
     Yii::app()->page->setInfo(array("description" => $this->description, "keyWord" => $this->keyWord));
     $id = 0;
     $class = $this->classModel;
     if (!empty($_GET["slug"])) {
         $model = $class::fetchBySlug(trim($_GET["slug"]));
         if ($model->id > 0) {
             $_GET["id"] = $model->id;
             $id = $model->id;
         } else {
             $arrId = explode("-", $_GET["slug"]);
             if (sizeof($arrId) > 0) {
                 $id = (int) $arrId[0];
             }
         }
     }
     $error = Yii::t("page", "Произошла ошибка перехода на страницу, проверьте правильно написания адреса страницы");
     if ($id > 0) {
         $item = CatalogTours::fetch($id);
         if ($item->id > 0) {
             LogHelper::saveCatLogTours($item->id);
             CCModelHelper::colCounter($item);
             // Картинки тура
             $images = ImageHelper::getImages($item);
             Yii::app()->page->title = $item->name . ", тур " . $item->category_id->name . ", " . $item->country_id->name;
             $this->render('description', array("item" => $item, "images" => $images, "otherTours" => CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("image>'' AND country_id=:country_id AND id!=:id AND firm_id!=:firm_id")->setParams(array(":country_id" => $item->country_id->id, ":id" => $item->id, ":firm_id" => $item->firm_id->id))->setOrderBy("col DESC")->setLimit(6)), "firmsTours" => CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("image>'' AND firm_id=:firm_id AND id!=:id")->setParams(array(":firm_id" => $item->firm_id->id, ":id" => $item->id))->setOrderBy("col DESC")->setLimit(6)), "tourCount" => CatalogTours::count(DBQueryParamsClass::CreateParams()->setConditions("country_id=:country")->setParams(array(":country" => $item->country_id->id))), "firmCount" => CatalogFirms::count(DBQueryParamsClass::CreateParams()->setConditions("country_id=:country")->setParams(array(":country" => $item->country_id->id)))));
         } else {
             throw new CHttpException("", $error);
         }
     } else {
         throw new CHttpException("", $error);
     }
 }
예제 #3
0
 public function actionTest()
 {
     // Расчет ретинга фирмы
     /*
                     + Рейтинг фирмы
                         если рейтинг = 0 то - 100
            + Заполленность описания 40
                         если не заполнено - 30
            + Заполленность ПРОГРАММЫ 40
                         если не заполнено - 30
            + Заполленность ЦЕНЫ 40
                         если не заполнено - 30
            + Заполенность ЦЕНЫ И ВАЛЮТЫ 100
                         - если не заполнена цена - 100
                         не учитывать если не заполнено валюта
            + Заполенность ВКЛЮЧННО 40
                         если не заполнено - 30
            + Заполенность НЕ ВКЛЮЧННО 20
                     + Заполенность ВНИМАНИЕ 20
                     + Заполенность ДЛИТЕЛЬНОСТЬ 40
                         если не заполнено - 30
            + Галлерея + 10 за каждую, но учитывать только 5
                         Если нет не одной то -50
                         Если меньше 3 то -20
     */
     /*        $count = 20;
                   $lastFirm = CatCache::fetchBySlug("index_last_tours");
                   $list = CatalogTours::fetchAll( DBQueryParamsClass::CreateParams()->setConditions("id>:id")->setParams( array( ":id"=>$lastFirm->value ) )->setLimit( $count ) );
                   foreach( $list as $item )
                   {
                       $id = $item->id;
               */
     $id = (int) $_GET["id"];
     $item = CatalogTours::fetch($id);
     $rating = 0;
     // Рейтинг фирмы
     if ($item->firm_id->rating > 0) {
         $rating += $item->firm_id->rating;
     } elseif ($item->firm_id->rating == 0) {
         $rating -= 100;
     }
     // Проверяем описание
     if ((int) $item->price > 0) {
         if ($item->currency_id->id > 0) {
             $rating += 100;
         }
     } else {
         $rating -= 100;
     }
     if ($item->description) {
         if (strlen(trim(strip_tags($item->description))) > 200) {
             $rating += 40;
         }
     } else {
         $rating -= 30;
     }
     if ($item->program) {
         if (strlen(trim(strip_tags($item->program))) > 200) {
             $rating += 40;
         }
     } else {
         $rating -= 30;
     }
     if ($item->prices) {
         if (strlen(trim(strip_tags($item->prices))) > 100) {
             $rating += 40;
         }
     } else {
         $rating -= 30;
     }
     if ($item->included) {
         if (strlen(trim(strip_tags($item->included))) > 100) {
             $rating += 40;
         }
     } else {
         $rating -= 30;
     }
     if ($item->duration) {
         $rating += 40;
     } else {
         $rating -= 30;
     }
     if ($item->not_included) {
         $rating += 20;
     }
     if ($item->attention) {
         $rating += 20;
     }
     // Галлерея
     $images = CatGallery::count(DBQueryParamsClass::CreateParams()->setConditions("catalog='catalog_tours' AND item_id=:id")->setParams([":id" => $id]));
     if ($images > 0) {
         $rating += $images * 5;
     } else {
         $rating -= 10;
     }
     $item->rating = $rating;
     if (!$item->save()) {
         print_r($item->getErrors());
     }
     echo $item->id . "-" . $rating . "<br/>";
 }