request->get('count', false); $categories = Category::find()->all(); $this->stdout('Start!' . "\n", Console::FG_RED); // set_time_limit(0); // header("Content-Type: text/xml"); // $contentOfPriceXML .= ''; $contentOfPriceXML .= ""; $contentOfPriceXML .= "" . date("Y-m-d h:m") . ""; $contentOfPriceXML .= "www.linija-svitla.ua"; $contentOfPriceXML .= ""; $contentOfPriceXML .= ""; $contentOfPriceXML .= ""; foreach ($categories as $category) { $contentOfPriceXML .= ""; $contentOfPriceXML .= "" . $category->category_id . ""; $contentOfPriceXML .= "" . $category->name . ""; $contentOfPriceXML .= ""; } $contentOfPriceXML .= ""; $contentOfPriceXML .= ""; foreach ($categories as $category) { $this->stdout("in Process category"."\n", Console::FG_BLUE); $products = $category->getProducts() ->with( [ // 'filters', 'filters.group' ] ) ->joinWith('variant') ->where([ 'product_variant.status' => 0 ]) ->andWhere('product_variant.stock<>0') ->andWhere('product_variant.price<>0') ->all(); // if ($is_count) { $contentOfPriceXML .= ( count($products) ); // continue; // } /** @var Product $product */ foreach ($products as $product) { /** * Fix for emty brands 14.03.2017 */ $this->stdout("in Process product"."\n", Console::FG_GREEN); if (empty($product->brand)) { continue; } $contentOfPriceXML .= ""; $contentOfPriceXML .= "" . htmlspecialchars($product->variant->product_variant_id) . ""; $contentOfPriceXML .= "" . htmlspecialchars($product->category->category_id) . ""; $contentOfPriceXML .= "" . $product->brand->name . ""; $contentOfPriceXML .= "" . htmlspecialchars($product->variant->sku) . ""; $contentOfPriceXML .= "" . htmlspecialchars($product->name) . " " . htmlspecialchars( $product->variant->name ) . " "; $contentOfPriceXML .= "" . htmlspecialchars($product->description) . ""; $contentOfPriceXML .= "http://www.linija-svitla.ua{$product->url}"; $contentOfPriceXML .= "http://www.linija-svitla.ua{$product->variant->imageUrl}"; $contentOfPriceXML .= "" . $product->variant->price . ""; $contentOfPriceXML .= "" . $product->variant->price_old . ""; $type = false; foreach ($product->filters as $filter) { if ($filter->group->name == "Тип точечного освещение:") { $type = true; $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Тип настенного освещения:") { $type = true; $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Тип потолочного освещения:") { $type = true; $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Тип уличного освещения:") { $type = true; $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Тип лампочки:") { $type = true; $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Назначение:") { $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Стиль:") { $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Количество лампочек:") { $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Тип источника света:") { $contentOfPriceXML .= "{$filter->name}"; } if ($filter->group->name == "Цоколь:") { $contentOfPriceXML .= "{$filter->name}"; } //$contentOfPriceXML .= "Припотолочная"; } if (!$type) { $contentOfPriceXML .= "{$product->category->name}"; } $contentOfPriceXML .= ""; $contentOfPriceXML .= "В наличии"; $contentOfPriceXML .= ""; $contentOfPriceXML .= ""; } } //var_dump($products);die(); $contentOfPriceXML .= ""; $contentOfPriceXML .= ""; $this->stdout('End!' . "\n", Console::FG_RED); $file = fopen(Yii::getAlias('@frontend/web/price.xml'), 'w+'); fwrite($file, $contentOfPriceXML); fclose($file); } }