public function actionTree()
 {
     $id = Yii::app()->request->getParam("id", 0);
     if (!empty($id)) {
         $images = CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => "catalog_gardens_tree", ":item_id" => $id))->setLimit(10));
         $tree = CatalogGardensTree::fetch($id);
         $this->render("usertree", array("images" => $images, "tree" => $tree));
     }
 }
Example #2
0
 public function run()
 {
     $conditions = "catalog=:catalog";
     $params = array(":catalog" => $this->catalog);
     if (!empty($id)) {
         $conditions .= " sAND item_id=:item_id";
         $params = array_merge($params, array(":id" => $id));
     }
     $images = CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions($conditions)->setParams($params)->setLimit(10));
     $this->render("gallery", array('images' => $images));
 }
 public function actionIndex()
 {
     $page = (int) Yii::app()->request->getParam("p", 1);
     $this->layout = '//layouts/main-landing';
     if (!empty($_GET["country"])) {
         $model = CatalogCountry::fetchBySlug(trim($_GET["country"]));
     }
     if ($model && $model->id > 0) {
         $item = $model;
         Yii::app()->page->setInfo(array("description" => $item->name . "," . $this->description, "keyWord" => $item->name . "," . $this->keyWord));
         if (!empty($item) && $item->id > 0) {
             Yii::app()->page->title = $item->name;
             $this->render('index', array("item" => $item, "page" => $page, "tours" => CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("image>'' AND country_id=:id")->setParams(array(":id" => $item->id))->setOrderBy("rating DESC")->setLimit(12)), "gallerySlide" => CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog='catalog_country' AND type='slide-gallery' AND item_id=:id")->setParams(array(":id" => $item->id))->setOrderBy("pos")->setLimit(-1)), "gallery" => CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog='catalog_country' AND type='' AND item_id=:id")->setParams(array(":id" => $item->id))->setOrderBy("pos")->setLimit(9)), "info" => CatalogInfo::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("category_id=(SELECT id FROM catalog_info_category WHERE slug=:slug LIMIT 1)")->setParams(array(":slug" => $item->slug))), "monuments" => CatalogMonuments::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("country_id=:id")->setParams(array(":id" => $item->id)))));
         } else {
             throw new CHttpException("Ошибка", Yii::t("page", "Ошибка перехода на страницу"));
         }
     } else {
         throw new CHttpException("Ошибка", Yii::t("page", "Ошибка перехода на страницу"));
     }
 }
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate()
 {
     if ($this->catalog) {
         $catalog = ucwords($this->catalog);
         $id = (int) Yii::app()->request->getParam("id", 0);
         if (!empty($id)) {
             $model = $catalog::fetch($id);
         } else {
             $model = new $catalog();
         }
         $message = "";
         // Сохрание полей
         if (isset($_POST[$catalog])) {
             $model->setAttributesFromArray($_POST[$catalog]);
             if ($model->description) {
                 $model->description = str_replace("../../../../", Yii::app()->params["baseUrl"], $model->description);
             }
             if (!empty($_FILES[$catalog])) {
                 foreach ($_FILES[$catalog]["name"] as $key => $field) {
                     if (property_exists($model, $key)) {
                         $model->{$key} = $field;
                     }
                 }
             }
             if ($model->saveWithRelation()) {
                 $message = "Данные успешно сохраненны";
                 //$this->redirect(array('view','id'=>$model->id));
             }
         }
         // Сохранение TITLE галереи
         if (!empty($_POST["image_submit"]) && !empty($_POST["image"])) {
             foreach ($_POST["image"] as $value) {
                 if ($value["id"] > 0) {
                     $imageModel = CatGallery::fetch($value["id"]);
                     if ($imageModel->id > 0) {
                         $imageModel->name = $value["name"];
                         $imageModel->pos = $value["pos"];
                         $imageModel->type = $value["type"];
                         $imageModel->save();
                     }
                 }
             }
             $message = "Галерея успешно сохраненна";
         }
         // Добвление картинки
         $addGallery = new CatGallery();
         if (!empty($_POST["submit_add_gallery"]) && !empty($id)) {
             $addGallery->setAttributesFromArray($_POST["CatGallery"]);
             $addGallery->image = $_FILES["CatGallery"]["name"]["image"];
             $addGallery->catalog = $model->tableName();
             $addGallery->item_id = $id;
             $addGallery->save();
             // "", false
             $addGallery = new CatGallery();
         }
         if ($model->id > 0) {
             $listImage = CatGallery::findByAttributes(array("catalog" => $model->tableName(), "item_id" => $model->id));
         } else {
             $listImage = array();
         }
         $this->render('edit', array('arrayParams' => $this->arrayParams, 'form' => $model, 'catalog' => $this->catalog, 'listImage' => $listImage, 'message' => $message, 'addGallery' => $addGallery));
     }
 }
Example #5
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/>";
 }
 public function actionDescription($gallError = "")
 {
     $_POST["CatalogWorkResumeAdd"]["user_id"] = Yii::app()->user->getId();
     $_POST["CatalogWorkResumeAdd"]["type_id"] = 1;
     if (!Yii::app()->user->isGuest) {
         Yii::app()->page->title = Yii::t("page", "Описание");
         $id = (int) Yii::app()->request->getParam("id", 0);
         $status = Yii::app()->request->getParam("status", "");
         $error = Yii::app()->request->getParam("error", "");
         $addClass = $this->addModel;
         if (!empty($id)) {
             $item = $addClass::fetch($id);
         } else {
             $item = new $addClass();
             SiteHelper::setLog($item->tableName(), "open_add_form", $item->id, Yii::app()->user->getId());
         }
         if (!$item->id || $item->user_id->id == Yii::app()->user->getId()) {
             $message = !empty($status) && $status == 'saved' ? Yii::t("user", "Сохранено") : "";
             // Описание объявления
             if (!empty($_POST["update"])) {
                 if (!$item->id) {
                     $isAdd = true;
                 } else {
                     $isAdd = false;
                 }
                 $item->setAttributesFromArray($_POST[$addClass]);
                 //$item->is_resume = 0;
                 if (!$item->date) {
                     $item->date = time();
                 }
                 if (!$item->id) {
                     $item->user_id = Yii::app()->user->getId();
                 }
                 if ($item->save()) {
                     if ($isAdd) {
                         $action = "create";
                     } else {
                         $action = "edit";
                     }
                     SiteHelper::setLog($item->tableName(), $action, $item->id, Yii::app()->user->getId());
                     $this->redirect(SiteHelper::createUrl("/user/" . Yii::app()->controller->getId() . "/description/", array("id" => $item->id, "status" => "saved")));
                     die;
                     //if( !$isAdd )$message = "Описание успешно обновленно";
                     //        else $message = "Запись успешно добавлена";
                 }
                 //                    else $message = "Произошла ошибка обновления описания";
             }
             $action = Yii::app()->request->getParam("action");
             $gall_id = (int) Yii::app()->request->getParam("gall_id", 0);
             $comMessage = "";
             $gallMessage = "";
             if (!empty($gallError)) {
                 $message = $gallError;
             }
             // Удаление фотографии
             if (!empty($action) && $gall_id > 0) {
                 $comModel = CatGallery::fetch($gall_id);
                 if ($comModel->id > 0 && $comModel->item_id == $item->id) {
                     if ($action == "delGallery") {
                         $comModel->delete();
                         $gallMessage = Yii::t("user", "Картинка удалена");
                     }
                 }
             }
             $comm_id = (int) Yii::app()->request->getParam("comm_id", 0);
             if (!empty($action) && $comm_id > 0) {
                 $comModel = CatComments::fetch($comm_id);
                 if ($comModel->id > 0 && $comModel->item_id->id == $item->id) {
                     if ($action == "delComment") {
                         $comModel->delete();
                         $comMessage = Yii::t("user", "Комментарий удален");
                     }
                     if ($action == "validComment") {
                         $comModel->is_valid = 1;
                         $comModel->save();
                         $comMessage = Yii::t("user", "Комментарий успешно опубликован");
                     }
                 }
             }
             $addImage = new CatGalleryAdd();
             if ($error == "gallError") {
                 $addImage->addError("error upload", Yii::t("user", "Произошла ошибка добавления фото, попробуте заново или обратитеcь к тех. потдержке") . " ( Email : " . Yii::app()->params["supportEmail"] . " ) ");
             }
             if (!empty($_POST["sendGallery"])) {
                 if ($id > 0) {
                     $this->uploadImages((int) $id, get_class($item));
                 }
             }
             // Сохранение подписи для фотографий
             if (!empty($_POST["saveTitle"])) {
                 $this->gallerySaveTitle();
             }
             $listComments = CatComments::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => $item->tableName(), ":item_id" => $item->id))->setLimit(50)->setCache(0));
             $listGallery = CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => $item->tableName(), ":item_id" => $item->id))->setLimit(50)->setCache(0));
             $this->render("description", array("item" => $item, "firm" => null, "listGallery" => $listGallery, "message" => $message, "addImage" => $addImage, "comMessage" => $comMessage, "gallMessage" => $gallMessage, "listComments" => $listComments));
         }
     }
 }
 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;
         }
     }
     if (empty($id)) {
         $id = (int) Yii::app()->request->getParam("id", 0);
     }
     $error = Yii::app()->request->getParam("error", "");
     $tab = Yii::app()->request->getParam("tab", "");
     $tabArray = array("description", "pcomments", "tours");
     if (!in_array($tab, $tabArray)) {
         $tab = "";
     }
     // Ошибка при не правельно ID
     $error = Yii::t("page", "Произошла ошибка перехода на страницу, проверьте правильно написания адреса страницы");
     if (empty($id) && !empty($_GET["slug"])) {
         $ar = explode("-", $_GET["slug"]);
         $id = $ar[0];
     }
     if ($id > 0) {
         $item = CatalogFirmsInfo::fetch($id);
         if (empty($tab)) {
             $activeTab = "description";
         } else {
             $activeTab = $tab;
         }
         if ($item->id > 0) {
             LogHelper::save("firms", $item->id, "show");
             CCModelHelper::colCounter($item);
             $commentModel = new CatalogFirmsCommentsAdd();
             if (!empty($_POST["send_comment"])) {
                 $activeTab = "pcomments";
                 $commentModel->setAttributesFromArray($_POST["CatalogFirmsCommentsAdd"]);
                 $commentModel->firm_id = $id;
                 if (Yii::app()->user && Yii::app()->user->getId() > 0) {
                     $commentModel->user_id = Yii::app()->user->getId();
                 }
                 $commentModel->date = time();
                 if ($commentModel->save()) {
                     $item->onFirmNewComment(new CEvent($commentModel), array("subject" => $commentModel->name, "firm_name" => $item->name, "date" => date("d.m.Y H:i"), "user_name" => $commentModel->fio, "description" => $commentModel->message, "link" => SiteHelper::createUrl("/user/firms/description", array("id" => $item->id, "tab" => "pcomments"))));
                     $commentModel = new CatalogFirmsCommentsAdd();
                     $commentModel->formMessage = Yii::t("tours", "Сообщение отправлено, после модерации оно будет Опубликовано.");
                 }
             }
             Yii::app()->page->title = $item->name . " - " . Yii::t("page", "туристическое агенство") . " " . $item->country_id->name_2 . " " . $item->city_id->name;
             // Поля про поиско по турам
             $tourClass = new CatalogToursFirms();
             $arrSearchFieldsTours = $tourClass->getSearchAttributes();
             $this->render('description', array("item" => $item, "activeTab" => $activeTab, "commentModel" => $commentModel, "otherFirms" => CatalogFirms::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("image>'' AND id!=:id")->setParams(array(":id" => $item->id))->setOrderBy("col DESC")->setLimit(8)), "listGallery" => CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:items_id")->setParams(array(":catalog" => "catalog_firms", ":items_id" => $item->id))->setLimit(15)), "arrSearchFieldsTours" => $arrSearchFieldsTours));
         } else {
             throw new CHttpException("", "К сожалению описание данного тура не найденно в базе");
         }
     } else {
         throw new CHttpException("", "К сожалению описание данного тура не найденно в базе");
     }
 }
 public function run($args)
 {
     // Расчет ретинга фирмы
     /*
      * описание
      * Сайт, Контакты, Адрес, большой текст с описанем
      * если не описания то - бал
      * галлерея
      * + бал за каждую картинку
      * - бал если нет не одной каринки
      * туры
      * + бал за каждый тур ( если есть рейтинг тура то вмест бала сумируем его если нет то просто 10 )
      * если нет не одного тура то выставляет бал 0
      * акции
      * + бал за каждую акцию
      * Коментарии и отзывы
      * + бал за каждый комментарий
      */
     $count = 30;
     $lastFirm = CatCache::fetchBySlug("index_last_firm");
     if ($lastFirm->date != date("Y-m-d")) {
         $lastFirm->value = 0;
     }
     $list = CatalogFirms::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("id>:id")->setParams(array(":id" => $lastFirm->value))->setLimit($count)->setOrderBy("id"));
     foreach ($list as $item) {
         $id = $item->id;
         $rating = 0;
         // Проверяем описание
         if ($item->www) {
             $rating += 10;
         }
         if ($item->tel && $item->email) {
             $rating += 10;
         }
         if ($item->description) {
             $rating += 10;
             if (strlen($item->description) > 500) {
                 $rating += 20;
             }
         } else {
             $rating -= 10;
         }
         if ($item->image) {
             $rating += 10;
         } else {
             $rating -= 10;
         }
         // end ( Проверяем описание )
         // Галлрея
         $images = CatGallery::count(DBQueryParamsClass::CreateParams()->setConditions("catalog='catalog_firms' AND item_id=:id")->setParams(array(":id" => $id)));
         if ($images > 0) {
             $rating += $images * 5;
         } else {
             $rating -= 10;
         }
         // Туры
         $tours = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:id")->setParams(array(":id" => $id))->setLimit(-1));
         foreach ($tours as $tour) {
             if ($tour->rating > 0) {
                 $rating += $tour->rating;
             } else {
                 $rating += 10;
             }
         }
         if (sizeof($tours) == 0) {
             $rating = 0;
         }
         // Туры
         $tours = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:id")->setParams(array(":id" => $id))->setLimit(-1));
         foreach ($tours as $tour) {
             if ($tour->rating > 0) {
                 $rating += $tour->rating;
             } else {
                 $rating += 10;
             }
         }
         if (sizeof($tours) == 0) {
             $rating = 0;
         }
         // Акции
         $sales = CatalogFirmsItems::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:id")->setParams(array(":id" => $id)));
         if ($sales > 0) {
             $rating += $sales * 5;
         }
         // Коментарии
         $comments = CatalogFirmsComments::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:id")->setParams(array(":id" => $id)));
         if ($comments > 0) {
             $rating += $comments * 5;
         }
         $item->rating = $rating;
         if (!$item->save()) {
             print_r($item->getErrors());
         }
     }
     if ($item->id > 0) {
         $lastFirm->value = $item->id;
         $lastFirm->date = date("Y-m-d", mktime(date("h") + 1, 0, 0, date("m"), date("d"), date("Y")));
         //echo $lastFirm->date."*".mktime( date("h")+1,0,0,date("m"),date("d"), date("Y") );
         if (!$lastFirm->save()) {
             print_r($lastFirm->getErrors());
         }
     }
     //echo "*";
 }
Example #9
0
 static function objectCheck(CCModel $objectModel, array $param)
 {
     /*
        $itemParam["recomFields"] = array( "name", "description", "country_id", "image", "email", "www", "tel", "address" );
        $itemParam["recomSizeFields"] = array( "description"=>500 );
        $itemParam["image_count"] = 0;
     */
     $cout = "";
     $attributeLabels = $objectModel->attributeLabels();
     $attributePlaceholder = $objectModel->attributePlaceholder();
     // Проверяем опубликовано ли объявление
     if (!empty($param["check_visible"]) && $param["check_visible"] == true && $objectModel->active == 0) {
         $cout .= "<br/><h3 style='background-color: #6C0000;color: #fff;padding: 5px;text-align: center'>Вам нравится терять клиентов?</h3><p>Пользователи не видят Ваше объявление, так как вы его еще не опубликовали.<br/><b>Чего же Вы ждете?</b><br/>Переходите не странциу редактирование, проверьте еще раз все ли впорядке в описаниии Вашего объявления и нажимайте на кнопку [ Опубликовать на сайте? ].<br/></p><h4>Ваши клиенты ждут Вас!!!</h4>";
     }
     // Определяем рекоменадции по
     if (sizeof($param["recomFields"]) > 0) {
         $recommendation = "";
         foreach ($param["recomFields"] as $field) {
             if (!$objectModel->{$field}) {
                 if (!empty($attributeLabels[$field])) {
                     $recommendation .= "<li><b>" . $attributeLabels[$field] . "</b>" . (!empty($attributePlaceholder[$field]) ? ".<br/>" . $attributePlaceholder[$field] : "") . "</li>";
                 } else {
                     $recommendation .= "<li>" . $field . "</li>";
                 }
             }
         }
         if (!empty($recommendation)) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Привлеките больше внимания клентов </h3><p>Для привлечения максимального количества клентов мы советуем Вам заполнить следующие поля: <ul>" . $recommendation . "</ul> <br/> <b>Внимание!!!</b>Данные именно этих полей анализируются, для того чтобы определить позицию объявления в поиске. И соответсвенно чем качественнее Вы заполните указанные поля, тем лучшую позицию сможет занять Ваше объявление. </p>";
         }
     }
     //  Проверяем размероность полей
     if (sizeof($param["recomSizeFields"]) > 0) {
         $recommendationSize = "";
         foreach ($param["recomSizeFields"] as $field => $value) {
             $fieldValue = trim(strip_tags($objectModel->{$field}));
             if ($objectModel->{$field} && strlen($fieldValue) < $param["recomSizeFields"][$field]) {
                 $fieldName = !empty($attributeLabels[$field]) ? $attributeLabels[$field] : $field;
                 $recommendationSize .= "<li>Для поля \"<b>" . $fieldName . "</b>\" мы рекомендуем размер - " . $param["recomSizeFields"][$field] . " знаков, а Вы указали только " . strlen($fieldValue) . " знаков.</li>";
             }
         }
         if (!empty($recommendationSize)) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Заполняйте поля качественно</h3><p>Мы советуем Вам заполнять чественной и удобно читаемой информацией, именно поэтоу мы рекомендуем Вам внести следующие изминения:\n<ul>" . $recommendationSize . "</ul></p>";
         }
     }
     // Если указанны рекомендации по количеству картинок
     if ($param["image_count"] > 0) {
         $count = CatGallery::count(DBQueryParamsClass::CreateParams()->setConditions("item_id=:fid AND catalog=:catalog")->setParams(array(":fid" => $objectModel->id, ":catalog" => $objectModel->tableName()))->setCache(0));
         if ($count < $param["image_count"]) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Украшайте свое объявление красочными фотографиями</h3>";
             if ($count == 0) {
                 $cout .= "<p>Вы не загрузили не одной фотографии для Вашего объявления - так не пойдет.<br/>\nЕсли Вы действительно хотите привлечь внимание к своему объвлению то Вам необходимо добавить картинки к своему объявлению.<br/>\nМы рекомендуем Вам добавить как минимум:  " . $param["image_count"] . " фото</p>";
             }
             if ($count > 0) {
                 $cout .= "<p>Вы загрузили всего <b>" . $count . "</b> фото, а что больше нет?<br/>Чем больше фото вы загрузите тем лехче заинтересовать пользователя в Ваших услугах. Именно поэтому мы рекомендуем минимум " . $param["image_count"] . " фото, а максимум 10 фото.</p>";
             }
         }
     }
     // Если указанно рекомендуемое количетсво записей
     if (!empty($param["item_count"]) && $param["item_count"] > 0 && empty($cout)) {
         $objectClass = SiteHelper::getCamelCase($objectModel->tableName());
         $countItems = $objectClass::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $objectModel->firm_id->id)));
         if ($countItems < $param["item_count"]) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Не останавливайтесь на достигнутом</h3>Вы добавили всего <b>" . $countItems . "</b> запись(ей), мы же рекомендуем добавить как минимум <b>" . $param["item_count"] . "</b> запись(ей).<br/>Имейте ввиду чем больше бы добавите услуг компании тем больше получите потенциальных клиентов";
         }
     }
     return $cout;
 }
 public function run($args)
 {
     // Расчет ретинга фирмы
     /*
                     + Заполленность описания 40
                         если не заполнено - 30
            + Заполленность ПРОГРАММЫ 40
                         если не заполнено - 30
            + Заполленность ЦЕНЫ 80
                         если не заполнено - 30
            + Заполенность ЦЕНЫ И ВАЛЮТЫ 100
                         - если не заполнена цена - 100
                         не учитывать если не заполнено валюта
            + Заполенность ВКЛЮЧННО 40
                         если не заполнено - 30
            + Заполенность НЕ ВКЛЮЧННО 20
                     + Заполенность ВНИМАНИЕ 20
                     + Заполенность ДЛИТЕЛЬНОСТЬ 40
                         если не заполнено - 30
            + Галлерея + 10 за каждую, но учитывать только 5
                         Если нет не одной то -50
                         Если меньше 3 то -20
     */
     $count = 100;
     $lastFirm = CatCache::fetchBySlug("index_last_tours");
     if ($lastFirm->date != date("Y-m-d")) {
         $lastFirm->value = 0;
     }
     $list = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("id>:id")->setParams(array(":id" => $lastFirm->value))->setLimit($count));
     foreach ($list as $item) {
         $id = $item->id;
         $rating = 0;
         // Проверяем описание
         if ((int) $item->price > 0) {
             $rating += 100;
             if ($item->currency_id->id > 0) {
                 $rating += 50;
             }
         } else {
             $rating -= 50;
         }
         if ($item->description) {
             if (strlen(trim(strip_tags($item->description))) > 200) {
                 $rating += 100;
             }
         } 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(array(":id" => $id)));
         if ($images > 0) {
             if (sizeof($images) > 3) {
                 if (sizeof($images) > 5) {
                     $rating += 80;
                 } else {
                     $rating += sizeof($images) * 10;
                 }
             } else {
                 $rating -= 30;
             }
         }
         $item->rating = $rating;
         if (!$item->save()) {
             print_r($item->getErrors());
         }
         if ($item->id > 0) {
             $lastFirm->value = $item->id;
             $lastFirm->date = date("Y-m-d", mktime(date("h") + 1, 0, 0, date("m"), date("d"), date("Y")));
             //echo $lastFirm->date."*".mktime( date("h")+1,0,0,date("m"),date("d"), date("Y") );
             if (!$lastFirm->save()) {
                 print_r($lastFirm->getErrors());
             }
         }
     }
 }
Example #11
0
 public function actionSetPublish()
 {
     $id = (int) Yii::app()->request->getParam("id", 0);
     $catalog = Yii::app()->request->getParam("catalog");
     if ($id > 0 && !empty($catalog)) {
         $newCatalog = new $catalog();
         $modelClass = SiteHelper::getCamelCase($newCatalog->tableName());
         $model = $modelClass::fetch($id);
         $listImages = CatGallery::findByAttributes(array("catalog" => $newCatalog->tableName(), "item_id" => $id));
         $imagesMin = SiteHelper::getConfig("publish_min_images");
         $sizeofImages = sizeof($listImages);
         if ($model->image) {
             $sizeofImages++;
         }
         // Для CatalogFirmsBannersAdd не должно влиять ограичение перед публиацией по количесву картинок
         if ($sizeofImages >= $imagesMin || $catalog == "CatalogFirmsBannersAdd" || $catalog == "CatalogFirmsBanners") {
             $error = false;
             $commentModel = $catalog::fetch($id);
             if (($catalog == "CatalogFirmsBannersAdd" || $catalog == "CatalogFirmsBanners") && !$commentModel->file) {
                 $error = true;
             }
             if ($commentModel->user_id->id != Yii::app()->user->getId() && $commentModel->firm_id->user_id->id != Yii::app()->user->getId()) {
                 $error = true;
             }
             if (!$error) {
                 if ($commentModel->user_id && $commentModel->user_id->id > 0) {
                     $id = $commentModel->user_id->id;
                 } else {
                     $id = $commentModel->firm_id->user_id->id;
                 }
                 if ($commentModel->id > 0 && $id == Yii::app()->user->getId()) {
                     if ($commentModel->active == 0) {
                         $commentModel->active = 1;
                         $action = "publish";
                     } else {
                         $commentModel->active = 0;
                         $action = "nopublish";
                     }
                     SiteHelper::setLog($newCatalog->tableName(), $action, $commentModel->user_id->id, Yii::app()->user->getId());
                     if ($commentModel->save()) {
                         echo 1;
                     } else {
                         print_r($commentModel->getErrors());
                     }
                     return;
                 }
             }
         } else {
             echo 3;
             return;
         }
     }
     echo 0;
     return;
 }
Example #12
0
 public static function getImages(CCModel $itemObject, $limit = 10)
 {
     if ($itemObject->id > 0) {
         // Так как у нас картинки сохраненны только для русской версии, то если язык другой то проверяем базовую таблицы ( без EN )
         $tableName = $itemObject->tableName();
         if (Yii::app()->getLanguage() != "ru") {
             $arr = explode("_", $tableName);
             unset($arr[sizeof($arr) - 1]);
             $tableName = implode("_", $arr);
         }
         $queryParams = DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:id")->setParams(array(":catalog" => $tableName, ":id" => $itemObject->id))->setLimit($limit)->setCache(0);
         return CatGallery::fetchAll($queryParams);
     }
     return false;
 }
Example #13
0
</div>
        <div class="GGardens">
        <?php 
        $listCardens = CatalogGardens::findByAttributes(array("country" => $country->id));
        foreach ($listCardens as $garden) {
            ?>
                <div class="GGTitle"><?php 
            echo $garden->name;
            ?>
</div>
                    <div class="GPlaces">
                        <?php 
            $lisPlaces = CatalogGardensPlaces::findByAttributes(array("garden_id" => $garden->id));
            foreach ($lisPlaces as $place) {
                $countTree = CatalogGardensTree::count(DBQueryParamsClass::CreateParams()->setConditions("place_id=:place_id")->setParams(array(":place_id" => $place->id)));
                $countImages = CatGallery::count(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => "catalog_gardens_places", ":item_id" => $place->id)));
                ?>
                                <div clas="GPItems<?php 
                if ($id > 0 && $id == $place->id) {
                    ?>
 GPSel<?php 
                }
                ?>
"><a href="<?php 
                echo SiteHelper::createUrl("/gallery/index", array("id" => $place->id));
                ?>
" title="<?php 
                echo $country->name;
                ?>
, <?php 
                echo $garden->name;
Example #14
0
 public function actionDescription($gallError = "")
 {
     if (!Yii::app()->user->isGuest) {
         Yii::app()->page->title = Yii::t("page", "Описание");
         $id = (int) Yii::app()->request->getParam("id", 0);
         $status = Yii::app()->request->getParam("status", "");
         $error = Yii::app()->request->getParam("error", "");
         $addClass = $this->addModel;
         if (!empty($id)) {
             $item = $addClass::fetch($id);
         } else {
             $item = new $addClass();
             SiteHelper::setLog($item->tableName(), "open_add_form", $item->id, Yii::app()->user->getId());
         }
         if (!$item->id || ($item->user_id && $item->user_id->id == Yii::app()->user->getId() || $item->firm_id && $item->firm_id->user_id->id == Yii::app()->user->getId())) {
             if (property_exists($item, "firm_id") && $item->firm_id) {
                 $firm = $item->firm_id;
             }
             if (!property_exists($item, "firm_id") && $item->id) {
                 $firm = $item;
             }
             if (empty($firm) || $firm->id == 0) {
                 $fid = (int) Yii::app()->request->getParam("fid", 0);
                 $firm = CatalogFirms::fetch($fid);
             }
             $message = !empty($status) && $status == 'saved' ? Yii::t("user", "Сохранено") : "";
             // Описание объявления
             if (!empty($_POST["update"])) {
                 if (!$item->id) {
                     $isAdd = true;
                 } else {
                     $isAdd = false;
                 }
                 $item->setAttributesFromArray($_POST[$addClass]);
                 //$item->is_resume = 0;
                 if (!$item->date) {
                     $item->date = time();
                 }
                 if (property_exists($item, "edit_date")) {
                     $item->edit_date = time();
                 }
                 $item->user_id = Yii::app()->user->getId();
                 if ($item->save()) {
                     if ($isAdd) {
                         $action = "create";
                     } else {
                         $action = "edit";
                     }
                     SiteHelper::setLog($item->tableName(), $action, $item->id, Yii::app()->user->getId());
                     switch (Yii::app()->controller->getId()) {
                         case "firms":
                             LogHelper::saveCatLogEdit(1, 0);
                             break;
                         case "tours":
                             LogHelper::saveCatLogEdit(0, 1);
                             break;
                     }
                     $arrayParam = array("id" => $item->id, "status" => "saved");
                     if ($firm->id > 0) {
                         $arrayParam["fid"] = $firm->id;
                     }
                     switch ($item->tableName()) {
                         case "catalog_firms":
                             $item->onAddFirm(new CModelEvent($item), array());
                             break;
                         case "catalog_tours":
                             $item->onAddTour(new CModelEvent($item), array());
                             break;
                         case "catalog_firms_items":
                             $item->onAddFirmsItems(new CModelEvent($item), array());
                             break;
                         case "catalog_firms_service":
                             $item->onAddFirmsService(new CModelEvent($item), array());
                             break;
                         case "catalog_firms_banner":
                             $item->onAddFirmsBanners(new CModelEvent($item), array());
                             break;
                     }
                     // Добавляем в очередь на нотификацию
                     // В течении 24 часов после добавления или сохранения пользователю приходят уведомления
                     // О том что заполнил не полностью, не опубликовал, не добавил картинок и т.д.
                     AutoNotifier::addInNotificationsQueue($item->tableName(), $item->id);
                     $this->redirect(SiteHelper::createUrl("/user/" . Yii::app()->controller->getId() . "/description/", $arrayParam));
                     die;
                 }
             }
             $action = Yii::app()->request->getParam("action");
             $gall_id = (int) Yii::app()->request->getParam("gall_id", 0);
             $comMessage = "";
             $gallMessage = "";
             if (!empty($gallError)) {
                 $message = $gallError;
             }
             // Удаление фотографии
             if (!empty($action) && $gall_id > 0) {
                 $comModel = CatGallery::fetch($gall_id);
                 if ($comModel->id > 0 && $comModel->item_id == $item->id) {
                     if ($action == "delGallery") {
                         $comModel->delete();
                         $gallMessage = Yii::t("user", "Картинка удалена");
                     }
                 }
             }
             $comm_id = (int) Yii::app()->request->getParam("comm_id", 0);
             if (!empty($action) && $comm_id > 0) {
                 $comModel = CatComments::fetch($comm_id);
                 if ($comModel->id > 0 && $comModel->item_id->id == $item->id) {
                     if ($action == "delComment") {
                         $comModel->delete();
                         $comMessage = Yii::t("user", "Комментарий удален");
                     }
                     if ($action == "validComment") {
                         $comModel->is_valid = 1;
                         $comModel->save();
                         $comMessage = Yii::t("user", "Комментарий успешно опубликован");
                     }
                 }
             }
             $addImage = new CatGalleryAdd();
             if ($error == "gallError") {
                 $addImage->addError("error upload", Yii::t("user", "Произошла ошибка добавления фото, попробуте заново или обратитеcь к тех. потдержке") . " ( Email : " . Yii::app()->params["supportEmail"] . " ) ");
             }
             if (!empty($_POST["sendGallery"])) {
                 if ($id > 0) {
                     $this->uploadImages((int) $id, get_class($item));
                 }
             }
             // Сохранение подписи для фотографий
             if (!empty($_POST["saveTitle"])) {
                 $this->gallerySaveTitle();
             }
             $listComments = CatComments::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => $item->tableName(), ":item_id" => $item->id))->setLimit(50)->setCache(0));
             $listGallery = CatGallery::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("catalog=:catalog AND item_id=:item_id")->setParams(array(":catalog" => $item->tableName(), ":item_id" => $item->id))->setLimit(50)->setCache(0));
             if (!empty($message)) {
                 $item->formMessage = $message;
             }
             $this->render("description", array("item" => $item, "firm" => $firm, "listGallery" => $listGallery, "message" => $message, "addImage" => $addImage, "comMessage" => $comMessage, "gallMessage" => $gallMessage, "listComments" => $listComments));
         }
     }
 }