Commit 07d45dadddf20a54c03d3fc3aef306a737f0fd0f
1 parent
98a320ef
-Sitemap dances
Showing
1 changed file
with
73 additions
and
23 deletions
Show diff stats
console/SiteMapController.php
@@ -47,6 +47,26 @@ | @@ -47,6 +47,26 @@ | ||
47 | ->innerJoinWith('enabledVariants.lang'); | 47 | ->innerJoinWith('enabledVariants.lang'); |
48 | } | 48 | } |
49 | 49 | ||
50 | + public function getProducts() | ||
51 | + { | ||
52 | + $products = Product::find() | ||
53 | + ->innerJoinWith('variant') | ||
54 | + ->innerJoinWith('brand.lang')->with('lang') | ||
55 | + ->where([ | ||
56 | + '!=', | ||
57 | + 'product_variant.price', | ||
58 | + 0 | ||
59 | + ]) | ||
60 | + ->andWhere([ | ||
61 | + '!=', | ||
62 | + 'product_variant.stock', | ||
63 | + 0 | ||
64 | + ]) | ||
65 | + ->all(); | ||
66 | + | ||
67 | + return $products; | ||
68 | + } | ||
69 | + | ||
50 | public function getSeoLinks() | 70 | public function getSeoLinks() |
51 | { | 71 | { |
52 | return Seo::find() | 72 | return Seo::find() |
@@ -221,10 +241,13 @@ | @@ -221,10 +241,13 @@ | ||
221 | } | 241 | } |
222 | } | 242 | } |
223 | 243 | ||
244 | + $this->stdout('Add static' . PHP_EOL, Console::FG_BLUE); | ||
224 | foreach ($this->getAddStatic() as $page) { | 245 | foreach ($this->getAddStatic() as $page) { |
225 | $this->createRow($page, 1, 'Daily'); | 246 | $this->createRow($page, 1, 'Daily'); |
226 | } | 247 | } |
227 | - | 248 | + |
249 | + $this->stdout('Add pages' . PHP_EOL, Console::FG_BLUE); | ||
250 | + | ||
228 | foreach ($this->getStaticPages() as $page) { | 251 | foreach ($this->getStaticPages() as $page) { |
229 | $url = $urlManager->createAbsoluteUrl( | 252 | $url = $urlManager->createAbsoluteUrl( |
230 | [ | 253 | [ |
@@ -234,7 +257,9 @@ | @@ -234,7 +257,9 @@ | ||
234 | ); | 257 | ); |
235 | $this->createRow($url, 0.5); | 258 | $this->createRow($url, 0.5); |
236 | } | 259 | } |
237 | - | 260 | + |
261 | + $this->stdout('Add categories' . PHP_EOL, Console::FG_BLUE); | ||
262 | + | ||
238 | foreach ($this->getCategories() as $category) { | 263 | foreach ($this->getCategories() as $category) { |
239 | $url = $urlManager->createAbsoluteUrl( | 264 | $url = $urlManager->createAbsoluteUrl( |
240 | [ | 265 | [ |
@@ -244,28 +269,49 @@ | @@ -244,28 +269,49 @@ | ||
244 | ); | 269 | ); |
245 | $this->createRow($url, 0.9, 'Daily'); | 270 | $this->createRow($url, 0.9, 'Daily'); |
246 | } | 271 | } |
247 | - foreach ($this->getVariants() | ||
248 | - ->each(1000) as $row) { | 272 | + |
273 | +// foreach ($this->getVariants() | ||
274 | +// ->each(1000) as $row) { | ||
275 | +// /** | ||
276 | +// * @var Product $row | ||
277 | +// */ | ||
278 | +// if(!empty($row->enabledVariants)) { | ||
279 | +// $variant = $row->enabledVariants[0]; | ||
280 | +// } | ||
281 | +// if(!empty($variant)) { | ||
282 | +// if (!preg_match("@^[a-zA-Z\d]+$@i", $variant->sku)) { | ||
283 | +// continue; | ||
284 | +// } | ||
285 | +// $url = $urlManager->createAbsoluteUrl( | ||
286 | +// [ | ||
287 | +// 'catalog/product', | ||
288 | +// 'product' => $row->lang->alias, | ||
289 | +// ] | ||
290 | +// ); | ||
291 | +// $this->createRow($url, 0.7, 'Daily'); | ||
292 | +// } | ||
293 | +// } | ||
294 | + /** | ||
295 | + * New products generation | ||
296 | + */ | ||
297 | + | ||
298 | + $this->stdout('Add products' . PHP_EOL, Console::FG_BLUE); | ||
299 | + | ||
300 | + foreach ($this->getProducts() as $product) { | ||
249 | /** | 301 | /** |
250 | - * @var Product $row | 302 | + * @var Product $product |
251 | */ | 303 | */ |
252 | - if(!empty($row->enabledVariants)) { | ||
253 | - $variant = $row->enabledVariants[0]; | ||
254 | - } | ||
255 | - if(!empty($variant)) { | ||
256 | - if (!preg_match("@^[a-zA-Z\d]+$@i", $variant->sku)) { | ||
257 | - continue; | ||
258 | - } | ||
259 | - $url = $urlManager->createAbsoluteUrl( | ||
260 | - [ | ||
261 | - 'catalog/product', | ||
262 | - 'product' => $row->lang->alias, | ||
263 | - ] | ||
264 | - ); | ||
265 | - $this->createRow($url, 0.7, 'Daily'); | ||
266 | - } | 304 | + $url = $urlManager->createAbsoluteUrl( |
305 | + [ | ||
306 | + 'catalog/product', | ||
307 | + 'product' => $product->lang->alias, | ||
308 | + ] | ||
309 | + ); | ||
310 | + $this->createRow($url, 0.7, 'Daily'); | ||
267 | } | 311 | } |
268 | - | 312 | + |
313 | + $this->stdout('Add brands' . PHP_EOL, Console::FG_BLUE); | ||
314 | + | ||
269 | foreach ($this->getBrands() as $brand) { | 315 | foreach ($this->getBrands() as $brand) { |
270 | 316 | ||
271 | $url = $urlManager->createAbsoluteUrl( | 317 | $url = $urlManager->createAbsoluteUrl( |
@@ -277,7 +323,9 @@ | @@ -277,7 +323,9 @@ | ||
277 | $this->createRow($url, 0.5); | 323 | $this->createRow($url, 0.5); |
278 | 324 | ||
279 | } | 325 | } |
280 | - | 326 | + |
327 | + $this->stdout('Add filters' . PHP_EOL, Console::FG_BLUE); | ||
328 | + | ||
281 | foreach ($this->getCategoriesWithFilters() as $category) { | 329 | foreach ($this->getCategoriesWithFilters() as $category) { |
282 | foreach ($category->taxGroups as $group) { | 330 | foreach ($category->taxGroups as $group) { |
283 | if (in_array( | 331 | if (in_array( |
@@ -306,7 +354,9 @@ | @@ -306,7 +354,9 @@ | ||
306 | 354 | ||
307 | } | 355 | } |
308 | } | 356 | } |
309 | - | 357 | + |
358 | + $this->stdout('Add seo links' . PHP_EOL, Console::FG_BLUE); | ||
359 | + | ||
310 | foreach ($this->getSeoLinks() as $link) { | 360 | foreach ($this->getSeoLinks() as $link) { |
311 | $url = Yii::$app->urlManager->baseUrl . $link->url; | 361 | $url = Yii::$app->urlManager->baseUrl . $link->url; |
312 | $this->createRow($url, 0.7); | 362 | $this->createRow($url, 0.7); |