예제 #1
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/>";
 }
예제 #2
0
 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 "*";
 }
예제 #3
0
 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());
             }
         }
     }
 }
예제 #4
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;
 }
예제 #5
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;