PHP 7.4.33
Preview: SessionCreatedMail.php Size: 5.42 KB
/var/www/multi-event-cfp.bitkit.dk/httpdocs/app/Mail/SessionCreatedMail.php
<?php

namespace App\Mail;

use App\Models\Log;
use App\Models\Session;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use App\Lib\EmailSetupHelper;

class SessionCreatedMail extends Mailable
{
    use Queueable, SerializesModels;

    protected $session;
    protected $user;
    protected $type;
    protected $slot;
    protected $emailContent;
    protected $emailSetup;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(Session $session, $user, $type,$slot,$emailContent)
    {
        $this->session = $session;
        $this->user = $user;
        $this->type = $type;
        $this->slot = $slot;
        $this->emailContent = $emailContent;
        $this->emailSetup =  new EmailSetupHelper();
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        $logo = config('app.url') . '/' . $this->session->event->theme['logo']['value'];
        $eventHeader = $this->session->event->event_name;

        
        $eventUrl = $this->session->event->eventUrl('admin');
        $sessionUrl = $eventUrl . "session/preview";

        $body = $this->type == 'added to session' ? $this->getSessionMailContents() : $this->getSlotMailContents();
        $subject = $body['subject'];
        
        return $this->from(config('app.admin_mail', 'Admin'), $eventHeader)
            ->subject($subject)
            ->view('emails.admin.session_update')
            ->with([
                "body" => html_entity_decode($body['body']),
                "eventHeader" => $eventHeader,
                "logo" => $logo
            ]);
    }

    public function getSessionMailContents()
    {
        $sessionStartDate = !empty($this->session->start_date) ? $this->session->start_date->format('Y-m-d') : '';
        $sessionEndDate = !empty($this->session->end_date) ? $this->session->end_date->format('Y-m-d') : '';
        $sessionStartTime = !empty($this->session->start_date) ? $this->session->start_date->format('H:i:s') : '';
        $sessionEndTime = !empty($this->session->end_date) ? $this->session->end_date->format('H:i:s') : '';
        
        $variables =[
            'username' => $this->user['name'],
            'session_title' => $this->session->title,
            'session_type' => $this->session->type, 
            'session_room' => $this->session->room,  
            'session_start_date' => $sessionStartDate,
            'session_end_date' => $sessionEndDate,
            'session_start_time' => $sessionStartTime,
            'session_end_time' => $sessionEndTime,
            'event_name' => $this->session->event->event_name
        ];
        $subject = $this->emailSetup->formatEmailBody($this->emailContent->subject,$variables);
        $body = $this->emailSetup->formatEmailBody($this->emailContent->body,$variables);
        return [ 
            'body' => $body,
            'subject' => $subject
        ];
        // $body = "
        // <p>
        // Hi {$this->user['name']},<br/><br/>
        // You have been added to session, details are below
        // <ul>
        // <li>Session title : {$this->session->title}</li>
        // <li>Type    :   {$this->session->type}</li>
        // <li>Room    :   {$this->session->room}</li>
        // <li>Start date :    {$sessionStartDate}</li>
        // <li>Start time :    {$sessionStartTime}</li>
        // <li>End date :    {$sessionEndDate}</li>
        // <li>End time :    {$sessionEndTime}</li>
        // </ul>
        // Check the session details.<br><br>
        // <br>
        // Thank you,<br>
        // {$eventHeader} Team<br>
        // </p>";
    }

    public function getSlotMailContents()
    {

        $slotTitle = !empty($this->slot) ? $this->slot['title'] : '';
        $slotStartDate = !empty($this->slot) ?  date('Y-m-d',strtotime($this->slot['start_date'])) : '';
        $slotStartTime = !empty($this->slot) ?  date('H:i:s',strtotime($this->slot['start_date'])) : '';
        $slotDuration = !empty($this->slot) ? $this->slot['duration'] : '';
        $slotType= !empty($this->slot) ? $this->slot['type'] : '';

        $variables =[
            'username' => $this->user['name'],
            'session_title' => $this->session->title,
            'slot_title' => $slotTitle,
            'slot_type' => $slotType,
            'slot_start_date' => $slotStartDate,
            'slot_start_time' => $slotStartTime,
            'duration' => $slotDuration,
            'event_name' => $this->session->event->event_name
        ];
        $subject = $this->emailSetup->formatEmailBody($this->emailContent->subject,$variables);
        $body = $this->emailSetup->formatEmailBody($this->emailContent->body,$variables);
        return [ 
            'body' => $body,
            'subject' => $subject
        ];

        // $body = "
        // <p>
        // Hi {$this->user['name']},<br/><br/>
        // You have been added to slot, details are below
        // <ul>
        // <li>Slot title : {$slotTitle}</li>
        // <li>Type    : {$slotType}</li>
        // <li>Session title: {$this->session->title}</li>
        // <li>Start date : {$slotStartDate}</li>
        // <li>Start time : {$slotStartTime} </li>
        // <li>Duration   : {$slotDuration}</li>
        // </ul>

        // Check the details.<br><br>
        // <br>
        // Thank you,<br>
        // {$eventHeader} Team<br>
        // </p>
        // ";
    }
}

Directory Contents

Dirs: 0 × Files: 34
Name Size Perms Modified Actions
3.36 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.72 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
4.57 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.92 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
5.26 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.02 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
4.96 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.93 KB lrw-rw-r-- 2025-03-03 05:40:15
Edit Download
3.13 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.92 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.62 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.12 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.18 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
558 B lrw-rw-r-- 2025-10-28 05:25:19
Edit Download
3.32 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.35 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.17 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.59 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
4.22 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.10 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
5.12 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.23 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.63 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.58 KB lrw-rw-r-- 2024-07-09 04:25:22
Edit Download
879 B lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.06 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
507 B lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.54 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.67 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
5.42 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
3.46 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
4.31 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
1.32 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
2.97 KB lrw-r--r-- 2024-02-09 12:37:30
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).