HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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();
    }
}