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; } } $error = Yii::t("page", "Произошла ошибка перехода на страницу, проверьте правильно написания адреса страницы"); if ($id > 0) { $item = CatalogFirmsItems::fetch($id); if ($item->id > 0) { CCModelHelper::colCounter($item); // Картинки тура $images = ImageHelper::getImages($item); Yii::app()->page->title = $item->name . ", акция тур. фирмы " . $item->firm_id->name; $this->render('description', array("item" => $item, "images" => $images, "otherTours" => CatalogFirmsItems::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("active=1 AND id!=:id AND firm_id!=:firm_id")->setParams(array(":id" => $item->id, ":firm_id" => $item->firm_id->id))->setOrderBy("col DESC")->setLimit(8)), "firmsTours" => CatalogFirmsItems::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("active=1 AND id!=:id AND firm_id=:firm_id")->setParams(array(":id" => $item->id, ":firm_id" => $item->firm_id->id))->setOrderBy("col DESC")->setLimit(8)), "tourCount" => CatalogFirmsItems::count(DBQueryParamsClass::CreateParams()->setConditions("active=1 AND firm_id!=:firm_id")->setParams(array(":firm_id" => $item->firm_id->id))), "firmCount" => CatalogFirmsItems::count(DBQueryParamsClass::CreateParams()->setConditions("active=1 AND firm_id=:firm_id")->setParams(array(":firm_id" => $item->firm_id->id))))); } else { throw new CHttpException("", $error); } } else { throw new CHttpException("", $error); } }
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 "*"; }
static function onAddFirm($eventArray) { if (empty($eventArray["event"])) { return; } $firm = $eventArray["event"]->sender; $params = $eventArray["params"]; if ($firm->id > 0) { /* Типы рекомендаций: - по заполнению - - заполненные поля - - по объему заполненности полей - - Обязательно по цене` - - наличие картинок - добавьте также туры для других стран ( а вы знали что самым популярным местом для туризма в Малайзию ) */ $itemParam = array(); $itemParam["recomFields"] = array("name", "description"); $itemParam["recomSizeFields"] = array("description" => 500); $itemParam["image_count"] = 0; if (!empty($params["status"]) && $params["status"] == "reminder") { $itemParam["check_visible"] = true; } $reccomen = self::objectCheck($firm, $itemParam); $reccomenAdd = ""; // Если нет рекомендации то написать что они могут добавить тур акцию и т.д. if (empty($reccomen) || strlen($reccomen) < 200) { $countTours = CatalogTours::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $firm->id))); $countFirmItems = CatalogFirmsItems::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $firm->id))); $countFirmService = CatalogFirmsService::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $firm->id))); $countFirmBanners = CatalogFirmsBanners::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $firm->id))); $reccomenAdd = "<br/><h2 style='text-align: center'>Вы можете добавить услуги Вашей компании</h2>"; $reccomenAdd .= "<ul>"; if ($countTours == 0) { $reccomenAdd .= "<li>Добавляем ТУРЫ фирмы</li>"; } if ($countFirmItems == 0) { $reccomenAdd .= "<li>Добавляем \"АКЦИИ\" и \"СКИДКИ\" компании</li>"; } if ($countFirmService == 0) { $reccomenAdd .= "<li>Добавляем \"ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ\" компании</li>"; } if ($countFirmBanners == 0) { $reccomenAdd .= "<li>Добавляем \"БЕСПЛАТНЫЙ БАННЕР\" компании</li>"; } $reccomenAdd .= "\n </ul>\n <br/>\n <a href=\"" . SiteHelper::createUrl("/site/addFirm") . "\">Инструкция: \"Как правильно добавить фирму на сайт\".</a>"; } if (empty($params["status"])) { $subject = !empty($reccomen) ? "Ваша фирма - " . $firm->name . " успешно сохранена, но ..." : "Поздравляем Ваша фирма - " . $firm->name . " успешно сохранена"; $message = "<h2 style=\"margin: 5px 0px 15px 0px;text-align: center\">Ваша фирма - <b>" . $firm->name . "</b> успешно сохранена</h2>"; $message .= !empty($reccomen) ? "Ваша фирма - <b>" . $firm->name . "</b> успешно сохранена, но мы советуем Вам сделать ее описание лучше. " : "Поздравляем Ваша фирма - <b>" . $firm->name . "</b> успешно сохранена"; } else { if ($params["status"] == "reminder") { $subject = "Объявление Вашей фирмы - " . $firm->name . " можно сделать лучше"; $message = "<h2 style=\"margin: 5px 0px 15px 0px;text-align: center\">Напоминаем, что объявление Вашей фирмы - " . $firm->name . " можно сделать лучше</h2>"; } } $message .= "<br/>Для редактирования описания фирмы, необходимо перейти в раздел <a href=\"" . SiteHelper::createUrl("/user/firms") . "\">Мои фирмы</a>."; if (!empty($reccomen)) { $message .= "<br/><br/>Мы проверили введенные Вам данные и подготовили для Вас рекомендации по улучшению Вашей фирмы." . $reccomen; } if (!empty($reccomenAdd)) { $message .= "<br/>" . $reccomenAdd; } // Если это напоминание и нет рекомендаци то ничего не отправляем if (empty($params["status"]) || !empty($reccomen) || !empty($reccomenAdd)) { $res = SubscribesUzHelper::sendEmail($firm->user_id->name, $firm->user_id->email, $subject, "<div style=\"background: #e4ddcd;padding: 0px 10px 10px 10px;overflow: hidden;\">" . $message . "<br/></div>", 2, 1); } } }