class Category extends Base
{
+ protected static $_products = [];
+
public function getName()
{
return 'Catégorie';
public function setMenuChildren($menu)
{
- $products = Product::whereVariant($menu->getVariant())->get();
+ $products = self::_getProducts($menu->getVariant());
$data = $menu->getPageData();
$cat = $data->get('category');
$filter = $menu->getPageData()->get('filter', '');
$menu->addChild($detail);
}
}
+
+ public static function _getProducts($variant)
+ {
+
+ if (!isset(self::$_products[$variant])) {
+ self::$_products[$variant] = Product::whereVariant($variant)->get();
+ }
+ return self::$_products[$variant];
+ }
}
+++ /dev/null
-<?php
-
-namespace App\Templates;
-
-use App\Models\News as NewsModel;
-use Cubist\Backpack\app\Magic\Menu\PageItem;
-use Cubist\Backpack\app\Template\InternalRedirection;
-
-class Events extends InternalRedirection
-{
-
- public function getName()
- {
- return 'Evénements';
- }
-
- public function setMenuChildren($menu)
- {
- $news = NewsModel::whereVariant()->get();
-
- $i = 0;
-
- foreach ($news as $newsItem) {
- // Don't include offline items
- if ($newsItem->getPageData()->get('status') != 1) {
- continue;
- }
- if ($newsItem->getPageData()->get('type') !== 'event') {
- continue;
- }
-
- $item = new PageItem();
- $item->initFromEntity($newsItem);
- $item->setLocale($menu->getLocale());
- $item->setVariant($menu->getVariant());
- $item->setTitle($newsItem->title);
- $item->setHref($newsItem->slug);
- $item->setId('news/' . $newsItem->id);
- $item->setController(['controller' => 'NewsController', 'action' => 'view', 'params' => ['id' => $newsItem->id]]);
-
- // Only show 10 latest news in the menus
- $item->hideInAllMenus();
- if ($i <= 9) {
- $item->showInAllMenus();
- } else {
- $item->hideInAllMenus();
- }
- $i++;
-
- $menu->addChild($item);
-
-
- }
- }
-}
if ($newsItem->getPageData()->get('status') != 1) {
continue;
}
- // exclude events
-
- if ($newsItem->getPageData()->get('type') == 'event') {
- continue;
- }
$item = new PageItem();
$item->initFromEntity($newsItem);
$item->setHref($newsItem->slug);
$item->setId('news/' . $newsItem->id);
$item->setController(['controller' => 'NewsController', 'action' => 'view', 'params' => ['id' => $newsItem->id]]);
-
- // Only show 10 latest news in the menus
-
$item->hideInAllMenus();
- if ($i <= 9) {
- $item->showInAllMenus();
- } else {
- $item->hideInAllMenus();
- }
- $i++;
$menu->addChild($item);
}