HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ipsremont-demo/app/Http/Controllers/EmailsController.php
<?php

namespace App\Http\Controllers;

use App\Http\Requests\Email\IdRequest;
use App\Http\Requests\Email\IndexRequest;
use App\Http\Requests\Email\UpdateEmailTemplatesRequest;
use App\Models\EmailLetter;
use App\Services\Email\EmailsService;
use App\Services\Email\EmailTemplatesService;
use Illuminate\Http\Request;

class EmailsController extends Controller
{

    protected EmailTemplatesService $email_template_service;
    protected EmailsService $emails_service;

    public function __construct()
    {
        parent::__construct();

        $this->email_template_service = new EmailTemplatesService();
        $this->emails_service = new EmailsService();
    }

    public function list(IndexRequest $request)
    {
        $data = $this->emails_service->search($request);
        $columns = EmailLetter::columns();

        return view('emails.letters.list', compact('data', 'columns'));
    }

    public function show(IdRequest $request)
    {
        $letter = EmailsService::getById($request->id);

        return view('emails.letters.show', compact('letter'));
    }

    public function users()
    {
        $events = EmailsService::getUserEvents();
        $group = 'users';

        return view('emails.events', compact('events', 'group'));
    }

    public function orders()
    {
        $events = EmailsService::getOrderEvents();
        $group = 'orders';

        return view('emails.events', compact('events', 'group'));
    }

    public function repairs()
    {
        $events = EmailsService::getRepairEvents();
        $group = 'repairs';

        return view('emails.events', compact('events', 'group'));
    }

    public function address()
    {
        $events = EmailsService::getAddressEvents();
        $group = 'address';

        return view('emails.events', compact('events', 'group'));
    }

    public function acttc()
    {
        $events = EmailsService::getActtcEvents();
        $group = 'acttc';

        return view('emails.events', compact('events', 'group'));
    }

    public function shipment()
    {
        $events = EmailsService::getShipmentEvents();
        $group = 'shipment';

        return view('emails.events', compact('events', 'group'));
    }

    public function edit(Request $request)
    {
        $currentLang = $request->lang ?: 'ru';

        $user_events = EmailsService::getUserEvents();
        $order_events = EmailsService::getOrderEvents();
        $repair_events = EmailsService::getRepairEvents();
        $address_events = EmailsService::getAddressEvents();
        $acttc_events = EmailsService::getActtcEvents();
        $shipment_events = EmailsService::getShipmentEvents();

        if (array_key_exists($request->event, $user_events)) {
            $events = $user_events;
            $activeMenu = 'users';
        } elseif (array_key_exists($request->event, $order_events)) {
            $events = $order_events;
            $activeMenu = 'orders';
        } elseif (array_key_exists($request->event, $repair_events)) {
            $events = $repair_events;
            $activeMenu = 'repairs';
        } elseif (array_key_exists($request->event, $address_events)) {
            $events = $address_events;
            $activeMenu = 'address';
        } elseif (array_key_exists($request->event, $acttc_events)) {
            $events = $acttc_events;
            $activeMenu = 'acttc';
        } elseif (array_key_exists($request->event, $shipment_events)) {
            $events = $shipment_events;
            $activeMenu = 'shipment';
        }

        if ($events) {
            $admin = EmailTemplatesService::getTemplate($request->event, $currentLang, 'admin');
            $manager = EmailTemplatesService::getTemplate($request->event, $currentLang, 'manager');
            $service = EmailTemplatesService::getTemplate($request->event, $currentLang, 'service');

            $validate = new UpdateEmailTemplatesRequest();

            $event = $request->event;

            $label = 'emails.' . $request->event;

            return view('emails.edit', compact('admin', 'manager', 'service', 'validate', 'activeMenu', 'currentLang', 'event', 'label', 'events'))->with(['sections' => ['quill']]);
        }
    }

    public function update(UpdateEmailTemplatesRequest $request)
    {
        $this->email_template_service->update($request);

        return redirect($request->redirect)->with(["messageSuccess" => __('emails.messageUpdate')]);
    }

    public function updateOrder(UpdateEmailTemplatesRequest $request)
    {
        $this->email_template_service->update($request);

        return redirect($request->redirect)->with(["messageSuccess" => __('emails.messageUpdate')]);
    }

    public function columntitle(Request $request)
    {
        $currentLang = $request->lang ?: 'ru';

        $header = EmailTemplatesService::getTemplate('layout', $currentLang, 'header');
        $footer = EmailTemplatesService::getTemplate('layout', $currentLang, 'footer');

        return view('emails.columntitle', compact('header', 'footer', 'currentLang'))->with(['sections' => ['quill']]);
    }

    public function columntitleUpdate(UpdateEmailTemplatesRequest $request)
    {
        $this->email_template_service->updateColumntitle($request);

        return redirect($request->redirect)->with(["messageSuccess" => __('emails.messageUpdateColumntitle')]);
    }

}