From 2700dc456f9bff93a202cbbb19cdc39857194a82 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 30 Aug 2019 16:44:50 +0200 Subject: [PATCH] wip #2967 @2 --- app/Models/Producttype.php | 25 ++++++++++++++++++++++++- app/Templates/Catalog.php | 4 ++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/Models/Producttype.php b/app/Models/Producttype.php index b3917e0..15c3c83 100644 --- a/app/Models/Producttype.php +++ b/app/Models/Producttype.php @@ -3,9 +3,15 @@ namespace App\Models; use Cubist\Backpack\app\Magic\Models\CubistMagicPageModel; +use Illuminate\Support\Str; class ProductType extends CubistMagicPageModel { + /** + * @var array + */ + protected $_slugFields = ['slug', 'name']; + protected $table = 'catalog_product_types'; protected $_options = ['name' => 'product type', @@ -14,6 +20,24 @@ class ProductType extends CubistMagicPageModel 'plural' => 'types de produit' ]; + public function getSlugOrTitleAttribute() + { + foreach ($this->_slugFields as $item) { + $components = explode('+', $item); + + $slug = []; + foreach ($components as $component) { + if (isset($this->$component) && $this->$component != '') { + $slug[] = $this->$component; + } + } + if (count($slug) > 0) { + $res = Str::slug(implode('-', $slug)); + return $res; + } + } + } + public function setFields() { $tab = 'Type de produit'; @@ -60,7 +84,6 @@ class ProductType extends CubistMagicPageModel ]); - parent::setFields(); } } diff --git a/app/Templates/Catalog.php b/app/Templates/Catalog.php index 4cffafc..66b34ff 100644 --- a/app/Templates/Catalog.php +++ b/app/Templates/Catalog.php @@ -51,7 +51,7 @@ class Catalog extends TemplateAbstract $category->initFromEntity($productType); $category->setTitle($productType->name); $category->setHref($productType->getSlugOrTitleAttribute()); - $category->setId('product_type_' . $productType->id); + $category->setId('product_type/' . $productType->id); $category->setController(['controller' => 'ProductController', 'action' => 'productList', 'params' => ['id' => $productType->id]]); $count = 0; @@ -63,7 +63,7 @@ class Catalog extends TemplateAbstract continue; } $detail = new PageItem(); - $category->initFromEntity($product); + $detail->initFromEntity($product); $detail->setTitle($product->name); $detail->setHref($product->getSlugOrTitleAttribute()); $detail->setId('product/' . $product->id); -- 2.39.5