[WIP] begin of new display for article, shelves
This commit is contained in:
@@ -20,16 +20,19 @@ class CategoryController extends Controller
|
||||
return $dataTable->render('Shop.Categories.list');
|
||||
}
|
||||
|
||||
public function show($category_id, $by_rows = false)
|
||||
public function show(Request $request, $category_id)
|
||||
{
|
||||
$data = self::init();
|
||||
$data['display_by_rows'] = $by_rows;
|
||||
$data['category'] = Categories::getFull($category_id);
|
||||
$data['breadcrumb'] = Categories::getAncestorsByCategory($category_id);
|
||||
$data['tags_selected'] = request()->input('tags') ?? [];
|
||||
$data['display_by_rows'] = $request->input('display_by_rows') ?? false;
|
||||
$data['product_type'] = $request->input('product_type') ?? 'botanic';
|
||||
$data['tags_selected'] = $request->input('tags') ?? [];
|
||||
|
||||
$data['articles'] = Articles::getArticlesToSell([
|
||||
'category_id' => $category_id,
|
||||
'tags' => $data['tags_selected'],
|
||||
'product_type' => $data['product_type'],
|
||||
]);
|
||||
// dump($data['articles']);
|
||||
// exit;
|
||||
|
||||
@@ -17,7 +17,7 @@ class HomeController extends Controller
|
||||
$data = self::init();
|
||||
$data['display_by_rows'] = $input['by_rows'] ?? false;
|
||||
$data['shelves'] = Articles::getArticlesByHomepage();
|
||||
$data['text'] = Homepages::getLast();
|
||||
$data['text'] = Homepages::getHomepage();
|
||||
// dump($data['shelves']);
|
||||
// exit;
|
||||
$data['tags'] = TagGroups::getWithTagsAndCountOffers();
|
||||
|
||||
@@ -16,6 +16,9 @@ use Staudenmeir\EloquentHasManyDeep\HasRelationships;
|
||||
use App\Traits\Model\HasComments;
|
||||
use App\Traits\Model\Imageable;
|
||||
|
||||
use App\Models\Botanic\Variety;
|
||||
use App\Models\Botanic\Specie;
|
||||
|
||||
class Article extends Model implements HasMedia
|
||||
{
|
||||
use Categorizable, EloquentJoin, HasComments, HasRelationships, Imageable, Powerjoins, Taggable, SoftDeletes, UserStamps;
|
||||
@@ -99,6 +102,11 @@ class Article extends Model implements HasMedia
|
||||
return $query->where($this->table . '.article_nature_id', $id);
|
||||
}
|
||||
|
||||
public function scopeByArticleNatures($query, $ids)
|
||||
{
|
||||
return $query->whereIn($this->table . '.article_nature_id', $ids);
|
||||
}
|
||||
|
||||
public function scopeByCategories($query, $categories_id)
|
||||
{
|
||||
return $categories_id ? $query->whereHas('categories', function ($query) use ($categories_id) {
|
||||
@@ -121,6 +129,16 @@ class Article extends Model implements HasMedia
|
||||
}) : $query;
|
||||
}
|
||||
|
||||
public function scopeBotanic($query)
|
||||
{
|
||||
return $query->whereIn($this->table . '.product_type', [Variety::class, Specie::class]);
|
||||
}
|
||||
|
||||
public function scopeMerchandise($query)
|
||||
{
|
||||
return $query->byProduct(Merchandise::class);
|
||||
}
|
||||
|
||||
public function scopeByProduct($query, $model)
|
||||
{
|
||||
return $query->where($this->table . '.product_type', $model);
|
||||
|
||||
@@ -219,12 +219,16 @@ class Articles
|
||||
$search = $options['search'] ?? false;
|
||||
$tags = $options['tags'] ?? false;
|
||||
$article_nature_id = $options['article_nature_id'] ?? false;
|
||||
$article_nature_ids = $options['article_nature_ids'] ?? false;
|
||||
$product_type = $options['product_type'] ?? false;
|
||||
|
||||
$model = ($options['homepage'] ?? false) ? Article::homepage()->visible() : Article::visible();
|
||||
$model = $category_id ? $model->byCategoryParent($category_id) : $model;
|
||||
$model = $tags ? $model->byTagsSelected($tags) : $model;
|
||||
$model = $search ? $model->search($search) : $model;
|
||||
$model = $article_nature_id ? $model->byArticleNature($article_nature_id) : $model;
|
||||
$model = $article_nature_ids ? $model->byArticleNatures($article_nature_ids) : $model;
|
||||
$model = ($product_type == 'botanic') ? $model->botanic() : $model->merchandise();
|
||||
return $model;
|
||||
}
|
||||
|
||||
@@ -453,19 +457,19 @@ class Articles
|
||||
switch ($article->product_type) {
|
||||
case 'App\Models\Botanic\Variety':
|
||||
$variety = $article->product;
|
||||
$image = $variety->image;
|
||||
$image = $variety->image ?? false;
|
||||
if (!$image) {
|
||||
$specie = $variety->specie;
|
||||
$image = $specie->image;
|
||||
$image = $specie->image ?? false;
|
||||
}
|
||||
break;
|
||||
case 'App\Models\Botanic\Specie':
|
||||
$specie = $article->product;
|
||||
$image = $specie->image;
|
||||
$image = $specie->image ?? false;
|
||||
break;
|
||||
case 'App\Models\Shop\Merchandise':
|
||||
$merchandise = $article->product;
|
||||
$image = $merchandise->image;
|
||||
$image = $merchandise->image ?? false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,11 @@ class Homepages
|
||||
return $model ? $model->text : '';
|
||||
}
|
||||
|
||||
public static function getHomepage()
|
||||
{
|
||||
return self::get(1)->text;
|
||||
}
|
||||
|
||||
public static function get($id)
|
||||
{
|
||||
return Homepage::find($id);
|
||||
|
||||
Reference in New Issue
Block a user