<div id="firmTours"> <?php if ($this->beginCache("firmDescriptionTours-" . $item->id . "_" . Yii::app()->getLanguage(), array('duration' => SiteHelper::getConfig("firmDescriptionTours")))) { ?> <div class="row"> <?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) {
public function actionGeneration() { $countryList = CatalogCountry::sql("SELECT c.*, sum(l.count) FROM catalog_country c, cat_log_tours_country l WHERE c.id = l.country_id GROUP BY l.country_id ORDER BY sum(l.count) DESC LIMIT 16"); $categoryList = CatalogToursCategory::sql("SELECT c.*, sum(l.count) FROM catalog_tours_category c, cat_log_tours_category l WHERE c.id = l.category_id GROUP BY l.category_id ORDER BY sum(l.count) DESC LIMIT 16"); /* + Сначала выстакиваем популярыне странц + Затем вытаскиваем поплярные категории + Чередуем рассылки Взависимости от странцы выбираем пользователей - если узбекистан то всем если остальные страны то толкько по Узбекистана и Узбекистан агенства */ $indexDay = 0; $countDay = 0; $countryCount = 0; $categoryCount = 0; for ($i = 0; $i < sizeof($countryList) + sizeof($categoryList); $i++) { $county_Id = 0; $category_id = 0; $subject = ""; if ($i % 2 > 0) { $category_id = $categoryList[$categoryCount]["id"]; $subject = $categoryList[$categoryCount]["name"]; $categoryCount++; } else { $county_Id = $countryList[$countryCount]["id"]; $subject = !empty($countryList[$countryCount]["title"]) ? $countryList[$countryCount]["title"] : $countryList[$countryCount]["name"]; $countryCount++; } // Определяем дату if ($indexDay == 0) { if ($indexDay > 4) { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 6 - date("w"), date("Y")); $countDay += 6 - date("w"); } else { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 4 - date("w"), date("Y")); $countDay += 4 - date("w"); } $date = date("Y-m-d", $makeTime); $indexDay = date("w", $makeTime); } else { if ($indexDay == 1) { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 3, date("Y")); $indexDay = 4; $countDay += 3; } else { $makeTime = mktime(0, 0, 0, date("m"), date("d") + $countDay + 4, date("Y")); $indexDay = 1; $countDay += 4; } $date = date("Y-m-d", $makeTime); } $new = new SubscribeTable(); $new->date2 = $date; $new->country_id = $county_Id; $new->category_id = $category_id; $new->name = $subject; if (!$new->save()) { print_r($new->getErrors()); print_r($new); } } $list = SubscribeTable::fetchAll(DBQueryParamsClass::CreateParams()->setOrderBy("date2, id")->setLimit(-1)->setCache(0)); $this->render("index", ["list" => $list]); }