diff --git a/app/Http/Controllers/Shop/ArticleController.php b/app/Http/Controllers/Shop/ArticleController.php index b7ee3e8b..3acefcb8 100644 --- a/app/Http/Controllers/Shop/ArticleController.php +++ b/app/Http/Controllers/Shop/ArticleController.php @@ -14,6 +14,8 @@ class ArticleController extends Controller { $data = self::init(); $data['article'] = Articles::getArticleToSell($id); + dump($data); + exit; return view('Shop.Articles.show', $data); } } diff --git a/app/Repositories/Botanic/Species.php b/app/Repositories/Botanic/Species.php index 747780a7..150ae039 100644 --- a/app/Repositories/Botanic/Species.php +++ b/app/Repositories/Botanic/Species.php @@ -27,12 +27,13 @@ class Species public static function getDescription($id) { - return self::get($id)->description; + return self::get($id)->description ?? ''; } public static function getTags($id) { - return self::get($id)->tags->toArray(); + $model = self::get($id) ?? false; + return $model ? $model->tags->toArray() : false; } public static function getFull($id) @@ -51,7 +52,7 @@ class Species public static function get($id) { - return Specie::with('tags.tag_group')->findOrFail($id); + return Specie::with('tags.tag_group')->find($id); } public static function storeFull($data) diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index afe7eb69..78d42fdf 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -46,9 +46,24 @@ class Articles return self::getSiblings($id)->pluck('id')->toArray(); } + public static function getSiblingsDescriptions($id) + { + $siblings = self::getSiblings($id); + foreach ($siblings as $sibling) { + if ($sibling->description && ($sibling->article_nature->name ?? false)) { + $data[strtolower($sibling->article_nature->name)] = $sibling->description; + } + } + return $data ?? false; + } + public static function getSiblings($id) { - return Article::with('siblings')->find($id)->siblings; + return Article::with([ + 'siblings' => function ($query) use ($id) { + $query->where('id', '!=', $id); + }, + ])->find($id)->siblings; } public static function getOffersById($id) @@ -80,7 +95,7 @@ class Articles { $article = self::get($id); $data = $article->toArray(); - $parents = self::getInheritedByProduct($article->product_id, $article->product_type); + // $parents = self::getInheritedByProduct($article->product_id, $article->product_type); $data['description'] = self::getFullDescriptionByArticle($article); $images = self::getFullImagesByArticle($article); $data['image'] = self::getPreviewSrc($images[0] ?? false); @@ -97,23 +112,27 @@ class Articles { switch ($article->product_type) { case 'App\Models\Botanic\Variety': - $variety = $article->product; - $specie = $variety->specie; - $description = $specie->description . $variety->description; + $data['variety'] = $article->product->description; + if ($article->product->specie->description ?? false) { + $data['specie'] = $article->product->specie->description; + } break; case 'App\Models\Botanic\Specie': - $specie = $article->product; - $description = $specie->description; + $data['specie'] = $article->product->description; break; case 'App\Models\Shop\Merchandise': - $merchandise = $article->product; - $description = $merchandise->description; + $data['merchandise'] = $article->product->description; break; default: - $description = ''; } - $description .= $article->description; - return $description; + if ($article->description) { + $data[strtolower($article->article_nature->name ?? '')] = $article->description; + } + $siblings = self::getSiblingsDescriptions($article->id); + if ($siblings) { + array_push($data, $siblings); + } + return $data; } public static function getArticle($id) @@ -289,7 +308,7 @@ class Articles ]; break; } - return $data; + return $data ?? []; } public static function getInheritedByProduct($product_id, $product_type) @@ -409,7 +428,7 @@ class Articles public static function get($id) { - return Article::find($id); + return Article::findOrFail($id); } public static function getFullImagesByArticleId($id) diff --git a/resources/views/Shop/Articles/show.blade.php b/resources/views/Shop/Articles/show.blade.php index 7c4c47fb..9d0c36c8 100644 --- a/resources/views/Shop/Articles/show.blade.php +++ b/resources/views/Shop/Articles/show.blade.php @@ -13,7 +13,10 @@
@include('components.multi-images', ['images' => $article['images']])
- {!! $article['description'] !!} + {!! $article['description']['semences'] ?? null !!} + {!! $article['description']['plants'] ?? null !!} + {!! $article['description']['variety'] ?? null !!} + {!! $article['description']['merchandise'] ?? null !!}
@include('Shop.Articles.partials.ArticleAddBasket')