change for description by level of data

This commit is contained in:
Ludovic CANDELLIER
2022-06-16 22:59:26 +02:00
parent 4801ff4338
commit 35310b049e
4 changed files with 43 additions and 18 deletions

View File

@@ -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)