HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/ai.naniguide.com/app/Http/Controllers/SearchController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SearchController extends Controller
{
    public function general(Request $request)
    {
        $items = [
            [
                'names' => [trans('messages.api')],
                'url' => action('AccountController@api'),
                'keywords' => [
                    trans('messages.api'),
                ],
            ],
            [
                'names' => [trans('messages.account'), trans('messages.profile')],
                'url' => action('AccountController@profile'),
                'keywords' => [
                    trans('messages.theme_mode'),
                    trans('messages.account.menu_layout'),
                    trans('messages.account.personality'),
                    trans('messages.profile_photo'),
                    trans('messages.basic_information'),
                    trans('messages.email'),
                    trans('messages.password'),
                    trans('messages.change_password'),
                    trans('messages.color_scheme'),
                ],
            ],
            [
                'names' => [trans('messages.account'), trans('messages.billing')],
                'url' => action('AccountController@billing'),
                'keywords' => [
                    trans('messages.payment_method'),
                ],
            ],
            [
                'names' => [trans('messages.account'), trans('messages.subscription')],
                'url' => route('refactor.account.subscription'),
                'keywords' => [
                    trans('messages.subscription.resume'),
                    trans('messages.subscription.cancel_now'),
                    trans('messages.subscription.change_plan'),
                    trans('messages.invoices'),
                    trans('messages.transactions'),
                    trans('messages.subscription.logs'),
                    trans('messages.payment_method'),
                ],
            ],
            [
                'names' => [trans('messages.dashboard')],
                'url' => action('HomeController@index'),
                'keywords' => [
                    trans('messages.home'),
                ],
            ],
            [
                'names' => [trans('messages.lists')],
                'url' => action('LegacyMailListController@index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.campaigns')],
                'url' => route('refactor.campaigns.index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.campaigns'), trans('messages.create')],
                'url' => route('refactor.campaigns.select_type'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.automations')],
                'url' => route('refactor.automations.index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.templates')],
                'url' => action('CustomerEmailTemplateController@index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.templates'), trans('messages.create')],
                'url' => action('CustomerEmailTemplateController@add'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.templates'), trans('messages.upload')],
                'url' => action('CustomerEmailTemplateController@add'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.templates'), trans('messages.gallery')],
                'url' => action('CustomerEmailTemplateController@index', [
                    'view' => 'grid',
                    'from' => 'gallery',
                ]),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.content'), trans('messages.products')],
                'url' => action('ProductController@index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.content'), trans('messages.stores_connections')],
                'url' => action('SourceController@index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.content'), trans('messages.stores_connections'), trans('messages.source.add_new')],
                'url' => action('SourceController@create'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.account'), trans('messages.activities')],
                'url' => action('AccountController@logs'),
                'keywords' => [
                    trans('messages.log'),
                ],
            ],
            [
                'names' => [trans('messages.sending'), trans('messages.sending_domains')],
                'url' => route('refactor.sending.domains'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.sending'), trans('messages.sending_domains'), trans('messages.add')],
                'url' => route('refactor.sending.domain_create'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.sending'), trans('messages.tracking_domains')],
                'url' => action('TrackingDomainController@index'),
                'keywords' => [],
            ],
            [
                'names' => [trans('messages.sending'), trans('messages.tracking_domains'), trans('messages.add')],
                'url' => action('TrackingDomainController@create'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.forms')],
                'url' => action('FormController@create'),
                'keywords' => [

                ],
            ],
            [
                'names' => [trans('messages.forms'), trans('messages.create')],
                'url' => action('FormController@create'),
                'keywords' => [
                    trans('messages.new'),
                    trans('messages.add'),
                ],
            ],
            [
                'names' => [trans('messages.sending'), trans('messages.blacklist')],
                'url' => action('BlacklistController@index'),
                'keywords' => [],
            ],
        ];

        // search
        $results = filterSearchArray($items, $request->keyword);

        return view('refactor.pages.search.general', [
            'keyword' => $request->keyword,
            'results' => $results,
        ]);
    }

    public function campaigns(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $campaigns = $customer->local()->campaigns()
            ->search($request->keyword)
            ->filter($request)
            ->orderBy('campaigns.name', 'asc')
            ->paginate($count);

        return view('refactor.pages.search.campaigns', [
            'keyword' => $request->keyword,
            'campaigns' => $campaigns,
        ]);
    }

    public function lists(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $lists = $customer->local()->mailLists()
            ->search($request->keyword)
            ->orderBy('mail_lists.name', 'asc')
            ->paginate($count);

        return view('refactor.pages.search.lists', [
            'keyword' => $request->keyword,
            'lists' => $lists,
        ]);
    }

    public function automations(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $automations = $customer->local()->automation2s()
            ->search($request->keyword)
            ->orderBy('automation2s.name', 'asc')
            ->paginate($count);

        return view('refactor.pages.search.automations', [
            'keyword' => $request->keyword,
            'automations' => $automations,
        ]);
    }

    public function templates(Request $request)
    {
        $count = 5;

        return view('refactor.pages.search.templates', [
            'keyword' => $request->keyword,
            'templates' => $request->user()
                ->customer->customerEmailTemplates()
                ->paginate($count)->map(function ($item, $key) {
                    return $item->template;
                }),
        ]);
    }

    public function subscribers(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $subscribers = $customer->local()->subscribers()
            ->search($request->keyword)
            ->paginate($count);

        return view('refactor.pages.search.subscribers', [
            'keyword' => $request->keyword,
            'subscribers' => $subscribers,
        ]);
    }

    public function forms(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $forms = $customer->local()->forms()
            ->search($request->keyword)
            ->paginate($count);

        return view('search.forms', [
            'keyword' => $request->keyword,
            'forms' => $forms,
        ]);
    }

    public function websites(Request $request)
    {
        $customer = $request->user()->customer;
        $count = 5;

        $websites = $customer->local()->websites()
            ->search($request->keyword)
            ->paginate($count);

        return view('search.websites', [
            'keyword' => $request->keyword,
            'websites' => $websites,
        ]);
    }
}