<?php // Категории $listCategory = CatalogToursCategory::sql("SELECT id, owner FROM `catalog_tours_category` WHERE owner>0 AND id IN( SELECT category_id FROM catalog_tours WHERE firm_id=" . $item->id . " AND del=0 AND active=1 )"); $reCategory = array(); $reCategory2 = array(); // Раскладываем по OWNER-у foreach ($listCategory as $category) { $reCategory[$category["owner"]][] = $category["id"]; } // Подменяем ID на обект и подсчитываем количество foreach ($reCategory as $category => $value) { $ownerCategoryModel = CatalogToursCategory::fetch($category); $array = array(); foreach ($value as $cid) { if ($cid > 0) { $obj = CatalogToursCategory::fetch($cid); $array[] = $obj; } } $reCategory2[$ownerCategoryModel->name] = $array; } // Странны $listCountry = CatalogCountry::sql("SELECT id FROM `catalog_country` WHERE id IN( SELECT country_id FROM catalog_tours WHERE firm_id=" . $item->id . " AND del=0 AND active=1 )"); $reCountry2 = array(); // Подменяем ID на обект и подсчитываем количество foreach ($listCountry as $id => $keys) { if ($keys["id"] > 0) { $obj = CatalogCountry::fetch($keys["id"]); if ($obj->id > 0) { $reCountry2[] = $obj; }
public function actionShow($idIn = 0, $locatIn = "", $return = FALSE) { $id = (int) Yii::app()->request->getParam("id", 0); if ($id == 0 && $idIn > 0) { $id = $idIn; } $locat = Yii::app()->request->getParam("location", ""); if (empty($locat) && !empty($locatIn)) { $locat = $locatIn; } /* График: По странам ( сортировка по цене ) 31 По категориям ( сортировка по цене ) 30 По странам ( сортировка по просмотрам) По категориям ( сортировка по просмотрам ) Определям кандидата по очереди сначала города потом категории Выбираем по сортировке первую страну Проверяем по очередньсти Формируем письмо Заголовок ( зависит от того по стране или категории + от сортировки ) указываем группу подписциков указываем группу рассылоку И полетели */ $cout = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Cache-Control" content="public"/> <meta http-equiv="Cache-Control" content="max-age=86400, must-revalidate"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>'; $logTable = SubscribeTable::fetch($id); if ($logTable->id > 0) { if ($locat == "uzb" && $logTable->country_id->id == 1) { return ""; } $countryId = 0; $categoryId = 0; if ($logTable->country_id->id > 0) { $countryId = $logTable->country_id->id; $countryModel = CatalogCountry::fetch($countryId); } if ($logTable->category_id->id > 0) { $categoryId = $logTable->category_id->id; $categoryModel = CatalogToursCategory::fetch($categoryId); } if ($countryId > 0 || $categoryId > 0) { $info = []; if ($countryId > 0) { $toursMinPrice = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("country_id=:cid AND price>0 AND active=1")->setParams([":cid" => $countryModel->id])->setOrderBy("price")->setLimit(1)->setCache(0)); $tours = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("country_id=:cid AND id !=:id AND active=1")->setParams([":cid" => $countryModel->id, ":id" => $toursMinPrice[0]->id])->setLimit(7)->setOrderBy("rating DESC, price")); $tours[] = $toursMinPrice[0]; $info = CatalogInfo::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("country_id=:cid")->setParams([":cid" => $countryModel->id])->setLimit(4)->setOrderBy("id DESC")); $subject = $countryModel->title . ", от " . $tours[sizeof($tours) - 1]->price . ($tours[sizeof($tours) - 1]->currency_id->id ? $tours[sizeof($tours) - 1]->currency_id->title : "\$"); } else { $params = [":cid" => $categoryModel->id]; $condition = "category_id=:cid"; if ($locat == "uzb") { echo $locat . "==uzb<br/>"; $params = array_merge($params, [":country" => 1]); $condition .= " AND country_id!=:country"; } else { $params = array_merge($params, [":country" => 1]); $condition .= " AND country_id=:country"; } echo $condition . "*"; $toursMinPrice = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions($condition)->setParams($params)->setOrderBy("price")->setLimit(1)->setCache(0)); $tours = CatalogTours::fetchAll(DBQueryParamsClass::CreateParams()->setConditions($condition . " AND id !=:id")->setParams(array_merge($params, [":id" => $toursMinPrice[0]->id]))->setLimit(7)->setOrderBy("rating DESC, price")); $tours[] = $toursMinPrice[0]; //$info = CatalogInfo::fetchAll(DBQueryParamsClass::CreateParams()->setConditions("country_id=:cid")->setParams([":cid" => $categoryModel->id])->setLimit(4)->setOrderBy("id DESC")); if ($tours[sizeof($tours) - 1]->price > 0) { $subject = "Тур - " . $categoryModel->name . ", от " . $tours[sizeof($tours) - 1]->price . ($tours[sizeof($tours) - 1]->currency_id->id ? $tours[sizeof($tours) - 1]->currency_id->title : "\$"); } else { $subject = "Тур - " . $categoryModel->name; } } $message = "Предлагаем Вашему вниманию интересную подборку с нашего портала <a href=\"http://www.world-travel.uz\">World-Travel.uz</a>.<br/><br/><h1>" . $subject . "</h1><br/><table>"; $n = 0; $reserveNum = 0; $reserveList = []; foreach ($tours as $tour) { if ($tour->id == 0) { continue; } $image = ImageHelper::getImages($tour, 1); // Если картинки для тура нету, то берем её из резерва catalog_image_reserve if (sizeof($image) == 0) { if (sizeof($reserveList) == 0) { $reserveList = CatalogImageReserve::findByAttributes(["country_id" => $tour->country_id->id]); } if (sizeof($reserveList) > 0) { $new = new CatGallery(); if (!empty($reserveList[$reserveNum])) { $new->image = $reserveList[$reserveNum]->image; } else { if ($tour->country_id->banner) { $new->image = $tour->country_id->banner; } else { $new->image = $tour->country_id->image; } } $image[] = $new; $reserveNum++; } } if ($n == 0 || $n == 2 || $n == 4 || $n == 6) { $message .= "<tr>"; } $message .= "<td style=\"width:50%;text-align:center;vertical-align: top;background-color: #EEE9DD;padding: 10px;border: 1px solid #fff;\">\n <table width=\"100%\">\n <tr>\n <td style=\"background:#E4DDCD;font-size:13px;text-align: right;padding-right: 5px;vertical-align: middle;\"><b>" . $tour->name . "</b></td>"; if ($tour->price > 0) { $message .= "<td style=\"background:#E4DDCD;vertical-align: top;line-height: 14px;text-align: center;\"><span style=\"font-size:10px;\">от</span><br/><b style=\"color:#ff4f00;font-size:24px;\"> " . $tour->price . ($tour->currency_id->id ? $tour->currency_id->title : "\$") . "</b><br/></td>"; } $message .= "</tr>\n </table>"; if (sizeof($image) > 0) { $message .= "<div style=\"max-height: 134px;overflow: hidden;\"><img src=\"" . (SiteHelper::createUrl("/") . ImageHelper::getImage($image[0]->image, 2)) . "\" style=\"max-width:200px\"/></div>"; } //if( $tour->included )$message .= "<td>Включенно: ".$tour->included."</td></tr>"; if ($tour->duration) { $message .= $tour->duration . "<br/>"; } if ($tour->category_id->id > 0) { $message .= "Тур - " . $tour->category_id->name2 . "<br/>"; } $message .= "<div><a style=\"margin-top: 11px;background:#ff4f00;color:#fff;font-weight: bold;display: inline-block;padding: 5px 10px;border-radius: 4px;\" href=\"" . SiteHelper::createUrl("/tours/description") . "/" . $tour->slug . ".html\">Заказать</a></div></td>"; // if ($n == 1 || $n == 3 || $n == 5 || $n == 7) { $message .= "</tr>"; } $n++; } $message .= '</table></div><br/>'; if (sizeof($info) > 0) { $message .= '<div style="background: #e4ddcd;padding: 0px 10px 10px 10px;overflow: hidden;"><table>'; foreach ($info as $item) { $message .= "<tr><td colspan=\"2\"><h3 style=\"margin:10px 0px 5px 0px;\">" . $item->name . "</h3></td></tr>\n <tr>\n <td colspan=\"2\" style=\"border-bottom:1px solid #F4F1EA;padding-bottom:10px;\">\n <table width=\"100%\">\n <tr>\n <td><img src=\"" . SiteHelper::createUrl("/") . ImageHelper::getImage($item->image, 2) . "\" style=\"padding-right: 10px;\" alt=\"" . $item->name . "\" /></td>\n <td style=\"text-align: justify;vertical-align:top\">" . SiteHelper::getSubTextOnWorld($item->description, 350) . "<br/><div align=\"right\"><a href=\"" . SiteHelper::createUrl("/touristInfo/description") . $item->slug . ".html\">читайте подробнее >>></a></div></td>\n </tr>\n </table>\n </td>\n </tr>"; // } $message .= "</table></div>"; } $cout .= $message . "</body></html>"; //if( SubscribesUzHelper::sendEmails( array( 7, 35, 41 ), $subject, $message, 3 ) )echo "Ура отправил"; // else echo "Что-то пошло не так"; } } if ($return) { return $cout; } else { echo $cout; } }