File: D:/HostingSpaces/SBogers10/topswtw.komma.pro/app/KommaApp/Shop/Menus/MenuRepository.php
<?php
namespace KommaApp\Shop\Menus;
class MenuRepository {
public function getMenuItemsByIds(array $pageIds, $languageId)
{
return \DB::table('pages')
->join('page_translations', 'pages.id', '=', 'page_translations.page_id')
->join('routes', 'page_translations.id', '=', 'routes.routable_id')
->where('page_translations.language_id', '=', $languageId)
->where( 'routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation')
->whereIn('pages.id', $pageIds)
->select('pages.id','pages.lft','routes.route','page_translations.name')
->get();
}
public function getMenuItemsBySlugs(array $slugs, $languageId)
{
return \DB::table('pages')
->join('page_translations', 'pages.id', '=', 'page_translations.page_id')
->join('routes', 'page_translations.id', '=', 'routes.routable_id')
->where('page_translations.language_id', '=', $languageId)
->where( 'routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation')
->whereIn('pages.code_name', $slugs)
->where('pages.shop_id', \Shop::getId())
->select(
'pages.id',
'pages.lft',
'pages.code_name as codeName',
'routes.route',
'page_translations.name',
'page_translations.slug')
->get();
}
public function getMenuItemsFirstChild($parent, $languageId)
{
$firstChildLft = ($parent->lft + 1);
return \DB::table('pages')
->join('page_translations', 'pages.id', '=', 'page_translations.page_id')
->join('routes', 'page_translations.id', '=', 'routes.routable_id')
->where('page_translations.language_id', '=', $languageId)
->where( 'routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation')
->where('pages.lft', $firstChildLft )
->where('pages.shop_id', \Shop::getId())
->select(
'pages.id',
'pages.lft',
'pages.code_name as codeName',
'routes.route',
'page_translations.name',
'page_translations.slug')
->first();
}
public function getMenuItemsFromPageById($pageId)
{
return \DB::table('pages')
->join('page_translations', 'pages.id', '=', 'page_translations.page_id')
->join('routes', 'page_translations.id', '=', 'routes.routable_id')
->join('languages', 'page_translations.language_id', '=', 'languages.id')
->select('pages.id','routes.route','page_translations.name','page_translations.language_id','languages.iso_2')
->where('pages.id', $pageId)
->where('routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation')
->groupBy('page_translations.slug')
->groupBy('languages.iso_2')
->get();
}
public function getMenuItemsFromCategoryById($categoryId)
{
return \DB::table('categories')
->join('category_translations', 'categories.id', '=', 'category_translations.category_id')
->join('routes', 'category_translations.id', '=', 'routes.routable_id')
->join('languages', 'category_translations.language_id', '=', 'languages.id')
->select('categories.id','routes.route','category_translations.name','category_translations.language_id','languages.iso_2')
->where('categories.id', $categoryId)
->where('routes.routable_type', '=', 'Komma\Kms\Categories\Models\CategoryTranslation')
->groupBy('category_translations.slug')
->groupBy('languages.iso_2')
->get();
}
public function getMenuItemsFromProductById($productsShopId)
{
return \DB::table('products')
->join('products_shops', 'products.id', '=', 'products_shops.product_id')
->join('product_translations', 'product_translations.products_shop_id', '=', 'products_shops.id')
->join('routes', 'product_translations.id', '=', 'routes.routable_id')
->join('languages', 'product_translations.language_id', '=', 'languages.id')
->select('products.id','routes.route','product_translations.name','product_translations.language_id','languages.iso_2')
->where('products_shops.id', $productsShopId)
->where('routes.routable_type', '=', 'Komma\Kms\Products\Models\ShopProductTranslation')
->groupBy('product_translations.slug')
->groupBy('languages.iso_2')
->get();
}
}