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/sportivo.komma.pro/app/Komma/Search/SearchRepository.php
<?php


namespace Komma\Search;
use Illuminate\Support\Facades\DB;

class SearchRepository {

    protected $staticPage = [
        'vrij sporten',
        'groepslessen',
        'sportdoelen',
        'faciliteiten',
        'lesrooster',
        'tarieven',
        'partners',
        'referenties',
        'contact',
        'lid worden',
        'aanmelden proefles',
        'over ons',
        'blog'
    ];

    protected $staticPageInformation = [
        'vrij sporten' =>               ['name'=>'Vrij sporten',        'intro'=>'Wie in alle rust en vrijheid wil sporten, krijgt bij Sportivo de ruimte. Vrij sporten kan dagelijks, met uitzondering van feestdagen.', 'route'=>'sporten/vrij-sporten'],
        'groepslessen' =>               ['name'=>'Groepslessen',        'intro'=>'Body Attack, Body Balance, fysiofitness, Club Power, Club Cycle (Spinning), Fiësta (Zumba), Shape, Fit & Vitaal, DISQ, Streetdance kids & teens.', 'route'=>'sporten/groepslessen'],
        'sportdoelen' =>                ['name'=>'Sportdoelen',         'intro'=>'Ieder mens heeft eigen sportdoelen. Of je nou spierkracht wilt winnen of kilo’s verliezen, Sportivo heeft altijd een passend programma beschikbaar. Ontdek welk programma bij jou past.', 'route'=>'sporten/sportdoelen'],
        'faciliteiten' =>               ['name'=>'Faciliteiten',        'intro'=>'Gekoelde sportruimtes, moderne apparatuur, een gezellige bar en mega-enthousiaste coaches: dat is Sportivo in een notendop. Daarnaast beschikken we ook over een infrarood sauna.Ontdek onze faciliteiten.', 'route'=>'faciliteiten'],
        'lesrooster' =>                 ['name'=>'Lesrooster',          'intro'=>'Sportivo biedt verschillende groepslessen aan. Van dansen op muziek tot fitness in groepsverband, van conditietraining tot buikspiersessie, en van spinning tot streetdance voor kids.', 'route'=>'lesrooster'],
        'tarieven' =>                   ['name'=>'Tarieven',            'intro'=>'Bij Sportivo bepaal je altijd zelf hoeveel persoonlijke begeleiding je wilt. Kies het pakket dat bij je past. Onze coaches staan hoe dan ook klaar om te helpen jouw doelen te realiseren.', 'route'=>'tarieven'],
        'partners' =>                   ['name'=>'Partners',            'intro'=>'Sportivo voorziet in een breed aanbod sportieve activiteiten. Fysiotherapie, personal training, breakdance en dansen vragen echter een specifieke expertise. Daarvoor werkt Sportivo samen met gekwalificeerde partners, stuk voor stuk enthousiaste experts op hun eigen vakgebied.', 'route'=>'partners'],
        'referenties' =>                ['name'=>'Referenties',         'intro'=>'Van Body Attack tot individueel fitness, van Club Cycle (Spinning) tot Streetdance. Lees onze referenties en ontdek waarom sporters voor Sportivo kiezen.', 'route'=>'referenties'],
        'contact' =>                    ['name'=>'Contact',             'intro'=>'Fitness, personal training en groepslessen, voor iedereen en op elk niveau. Sportivo is een erkende sportschool waar passie en plezier centraal staan.', 'route'=>'contact'],
        'lid worden' =>                 ['name'=>'Lid worden',          'intro'=>'Wat je doel ook is: bij Sportivo kunnen we je helpen. De deur staat open voor iedereen op elk niveau.Vul het aanvraagformulier in voor een abonnement dat bij jou past.', 'route'=>'contact/aanmelden'],
        'aanmelden proefles' =>         ['name'=>'Aanmelden proefles',  'intro'=>'Wat je doel ook is: bij Sportivo kunnen we je helpen. De deur staat open voor iedereen op elk niveau.Vul het aanvraagformulier in en probeer een proefles.', 'route'=>'contact/aanmelden-proefles'],
        'over ons' =>                   ['name'=>'Over ons',            'intro'=>'Pure passie, dat is het fundament waarop Sportivo is gebouwd en gegroeid. De liefde voor sport en bewegen zit diepgeworteld in onze trainers. Stuk voor stuk zijn het mensen die van hun hobby hun werk hebben gemaakt.', 'route'=>'over-ons'],
        'blog' =>                       ['name'=>'Blog',                'intro'=>'Sportivo Cranendonck: lekker bewegen en gezond sporten. Op zoek naar tips om sneller, sterker en strakker te worden? Bezoek Sportivo en volg ons blog.', 'route'=>'blog'],
    ];

    /**
     * Look through the name of all defined DB items for the $value
     *
     * @param $value
     * @return array
     */
    public function search($value){
        $blog =  DB::table('blog_translations')
            ->select('blog_translations.name', 'blog_translations.intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'blog_translations.id')
            ->where('blog_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Blog\Models\BlogTranslation')
            ->get();

        $grouplesson =  DB::table('group_lesson_translations')
            ->select('group_lesson_translations.name', 'group_lesson_translations.intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'group_lesson_translations.id')
            ->where('group_lesson_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\GroupLessons\Models\GroupLessonTranslation')
            ->get();

        $facilities =  DB::table('facility_translations')
            ->select('facility_translations.name', 'facility_translations.description as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'facility_translations.id')
            ->where('facility_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Facilities\Models\FacilityTranslation')
            ->get();

        $partners =  DB::table('partner_translations')
            ->select('partner_translations.name', 'partner_translations.description as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'partner_translations.id')
            ->where('partner_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Partners\Models\PartnerTranslation')
            ->get();

        $prices =  DB::table('price_translations')
            ->select('price_translations.name', 'price_translations.description as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'price_translations.id')
            ->where('price_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Prices\Models\PriceTranslation')
            ->get();

        $page =  DB::table('page_translations')
            ->select('page_translations.name', 'page_translations.description as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'page_translations.id')
            ->where('page_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation')
            ->get();

        $colleagues =  DB::table('colleague_translations')
            ->select('colleague_translations.name', 'colleague_translations.specialty as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'colleague_translations.id')
            ->where('colleague_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\Colleagues\Models\ColleagueTranslation')
            ->get();

        $tempColleagues = [];
        foreach($colleagues as $c){
            $tempColleagues[] = (object)['name'=>$c->name, 'intro'=>$c->intro, 'route'=>'over-ons/medewerkers'];
        }
        $colleagues = $tempColleagues;

        $purposes =  DB::table('sport_purpose_translations')
            ->select('sport_purpose_translations.name', 'sport_purpose_translations.description as intro', 'routes.route')
            ->leftJoin('routes', 'routable_id', '=', 'sport_purpose_translations.id')
            ->where('sport_purpose_translations.name', 'LIKE', '%'.$value.'%')
            ->where('routable_type', '=', 'Komma\Kms\SportPurposes\Models\SportPurposeTranslation')
            ->get();


        $static = preg_grep('/'.strtolower($value).'/', $this->staticPage);
        $staticArray = [];
        foreach($static as $key){
            $staticArray[] = (object)$this->staticPageInformation[$key];
        }

        return array_merge($blog, $grouplesson, $facilities, $partners, $prices, $colleagues, $purposes, $page, $staticArray);
    }

}