/**
  * Sends E-Mails to participants, organizers etc.
  *
  * $art:
  * 1: booking confirmation
  * 2: cancel confirmation (user)
  * 3: cancel confirmation (admin)
  * 4: deleted
  * 5: published
  * 6: certificated
  * 7: certificate revoked
  * 8: max number reached
  * 9: republished event
  * 10: canceld
  * 11: updated
  * 12: confirmation
  * 13: confirmation to organizer with CSV file
  * 14: info to organizer
  * 15: invoice email
  *
  * @param   object  $event         - The event object
  * @param   int     $uid           - The user id?
  * @param   int     $art           - The Task
  * @param   bool    $cancel        - Should we cancel
  * @param   object  $booking       - The booking
  * @param   bool    $send_invoice  - Should the invoice send?
  *
  * @todo update, rewrite and optimize
  * @throws  Exception
  * @return  void
  */
 public static function sendBookingConfirmationMail($event, $uid, $art, $cancel = false, $booking = null, $send_invoice = true)
 {
     jimport('joomla.mail.helper');
     jimport('joomla.mail.mail');
     $mainframe = JFactory::getApplication();
     if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0 or MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0) {
         $database = JFactory::getDbo();
         // Load event (use events helper function)
         if ($booking == null) {
             if (!$cancel) {
                 $database->setQuery("SELECT * FROM #__matukio_bookings WHERE id = " . $uid);
             } else {
                 $database->setQuery("SELECT * FROM #__matukio_bookings WHERE semid = " . $event->id . " AND userid = " . $uid);
             }
             $booking = $database->loadObject();
         }
         if ($booking->userid == 0) {
             $user = JFactory::getUser(0);
             $user->name = $booking->name;
             $user->email = $booking->email;
         } else {
             $user = JFactory::getuser($booking->userid);
         }
         $publisher = JFactory::getuser($event->publisher);
         $body1 = "<p><span style=\"font-size:10pt;\">" . JTEXT::_('COM_MATUKIO_PLEASE_DONT_ANSWER_THIS_EMAIL') . "</span><p>";
         $body2 = $body1;
         $gebucht = self::calculateBookedPlaces($event);
         $gebucht = $gebucht->booked;
         // We just add a first line and then switch to default booking confirmation
         if ($art == 11) {
             $body1 = JTEXT::_('COM_MATUKIO_ORGANISER_UPDATED_YOUR_BOOKING');
             $art = 1;
         }
         switch ($art) {
             // Booking confirmation
             case 1:
             case 2:
             case 3:
                 break;
             case 4:
                 $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_DELETED_THE_FOLLOWING_EVENT');
                 $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_DELETED_EVENT');
                 break;
             case 5:
                 $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_PUBLISHED_EVENT_YOUR_BOOKING_IS_VALID');
                 $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_PUBLISHED_EVENT_THE_BOOKING_OF_PARTICIPANTS_IS_VALID');
                 break;
             case 6:
                 $body1 .= JTEXT::_('COM_MATUKIO_THE_ADMIN_CERTIFIED_YOU');
                 $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_HAS_CERTIFICATED_FOLLOWING_PARTICIPANT');
                 if (MatukioHelperSettings::getSettings('frontend_userprintcertificate', 0) > 0) {
                     $body1 .= " " . JTEXT::_('COM_MATUKIO_YOU_CAN_PRINT_YOUR_CERTIFICATE');
                 }
                 break;
             case 7:
                 $body1 .= JTEXT::_('COM_MATUKIO_CERTIFICAT_REVOKED');
                 $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_HAS_WITHDRAWN_CERTIFICATE_FOR_FOLLOWNG_PARITICIPANTS');
                 break;
             case 8:
                 if ($gebucht > $event->maxpupil) {
                     if ($event->stopbooking = 0) {
                         $body1 .= JTEXT::_('COM_MATUKIO_MAX_PARTICIPANT_NUMBER_REACHED');
                     } else {
                         $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_REGISTERED_YOU') . " " . JTEXT::_('COM_MATUKIO_YOU_ARE_BOOKED_ON_THE_WAITING_LIST');
                     }
                 } else {
                     $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_REGISTERED_YOU');
                 }
                 $body2 .= JTEXT::_('COM_MATUKIO_YOU_HAVE_REGISTRED_PARTICIPANT_FOR');
                 break;
             case 9:
                 $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_HAS_REPUBLISHED_EVENT');
                 $body2 .= JTEXT::_('COM_MATUKIO_THE_BOOKING_OF_THE_PARTICIPANT_IS_VALID_AGAIN');
                 break;
             case 10:
                 $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_CANCELLED');
                 $body2 .= JTEXT::_('COM_MATUKIO_BOOKING_NO_LONGER_VALID');
                 break;
             case 11:
                 $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_UPDATED_YOUR_BOOKING');
                 $body2 .= JTEXT::_('');
                 break;
             case 12:
                 $body1 .= JTEXT::_('COM_MATUKIO_EVENT_IS_TAKING_PLACE');
                 break;
             case 13:
                 $body1 .= JTEXT::_('COM_MATUKIO_ORGANIZER_EVENT_IS_TAKING_PLACE');
                 break;
             case 14:
                 $body1 .= JTEXT::_('COM_MATUKIO_ORGANIZER_EVENT_HAS_TAKEN_PLACE');
                 break;
             case 15:
                 // Invoice
                 break;
         }
         $abody = "\n<head>\n<style type=\"text/css\">\n<!--\nbody {\nfont-family: Verdana, Tahoma, Arial;\nfont-size:12pt;\n}\n-->\n</style></head><body>";
         $sender = $mainframe->getCfg('fromname');
         $from = $mainframe->getCfg('mailfrom');
         $htxt = "";
         if ($event->semnum != "") {
             $htxt = " " . $event->semnum;
         }
         $subject = JTEXT::_('COM_MATUKIO_EVENT') . $htxt . ": " . $event->title;
         $subject = JMailHelper::cleanSubject($subject);
         $replyname = $publisher->name;
         $replyto = $publisher->email;
         $email = $user->email;
         if ($art == 1 || $art == 2 || $art == 3 || $art == 15) {
             // New booking templates @since  2.2.0
             if (($art == 2 || $art == 3) && MatukioHelperSettings::_("booking_stornoconfirmation") == 0) {
                 // The user should get no storno confirmationen email
                 return;
             }
             $start = $body1;
             if (!empty($body1)) {
                 $start .= " \n";
             }
             if ($booking->status == MatukioHelperUtilsBooking::$WAITLIST && $art == 1) {
                 $start .= JTEXT::_('COM_MATUKIO_YOU_ARE_BOOKED_ON_THE_WAITING_LIST');
             } elseif ($booking->status == MatukioHelperUtilsBooking::$ACTIVE && $art == 1) {
                 $start .= JTEXT::_('COM_MATUKIO_YOUR_BOOKING_IS_ACTIVE_AND_RESERVED');
             } elseif ($booking->status == MatukioHelperUtilsBooking::$PENDING && $art == 1) {
                 $start .= JTEXT::_('COM_MATUKIO_YOUR_BOOKING_IS_PENDING_AND_NOT_RESERVED');
             }
             $tmpl_name = MatukioHelperTemplates::getEmailTemplateName($art);
             $tmpl = MatukioHelperTemplates::getEmailBody($tmpl_name, $event, $booking);
             // Use HTML or text E-Mail
             if (MatukioHelperSettings::getSettings('email_html', 1)) {
                 // Start html output
                 $body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
                 $body .= '<html xmlns="http://www.w3.org/1999/xhtml">' . "\n";
                 $body .= "<head>\n";
                 $body .= "</head>\n";
                 $body .= "<body>\n";
                 $body .= $start . "<br />" . $tmpl->value;
                 $body .= "</body>\n</html>";
             } else {
                 $body = $start . "\n" . $tmpl->value_text;
             }
             $subject = $tmpl->subject;
             $mailer = JFactory::getMailer();
             if ($art == 1 && MatukioHelperSettings::getSettings('sendmail_ticket', 1) && $booking->status == MatukioHelperUtilsBooking::$ACTIVE) {
                 $t_sub = JText::_("COM_MATUKIO_TICKET");
                 $ticket_pdf = MatukioHelperPDF::getTicket($booking, $event, $t_sub, "S");
                 $fn = "ticket-" . MatukioHelperUtilsBooking::getBookingId($booking->id) . ".pdf";
                 $mailer->AddStringAttachment($ticket_pdf, $fn, 'base64', 'application/pdf');
             }
             // Check if we really want to send this E-Mail
             if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0 and $art < 11) {
                 $success = $mailer->sendMail($from, $sender, $email, $subject, $body, MatukioHelperSettings::getSettings('email_html', 1), null, null, null, $replyto, $replyname);
             }
             if (MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0 and $art < 11) {
                 $mailer->ClearAllRecipients();
                 $success = $mailer->sendMail($from, $sender, $publisher->email, $subject, $body, MatukioHelperSettings::getSettings('email_html', 1), null, null, null, $replyto, $replyname);
             }
             // E-Mail to Admin / Operator etc.
             if (MatukioHelperSettings::getSettings('sendmail_operator', '') != "" and $art < 11) {
                 $mailer->ClearAllRecipients();
                 $success = $mailer->sendMail($from, $sender, explode(",", MatukioHelperSettings::getSettings('sendmail_operator', '')), $subject, $body, MatukioHelperSettings::getSettings('email_html', 1), null, null, null, $replyto, $replyname);
             }
             // We need to clear attachements here (Ticket etc.)
             $mailer->ClearAttachments();
             $mailer->ClearAllRecipients();
             if (($art == 1 || $art == 15) && MatukioHelperSettings::getSettings('sendmail_invoice', 1) && $booking->status == MatukioHelperUtilsBooking::$ACTIVE && $event->fees > 0 && $send_invoice) {
                 $invoice = MatukioHelperTemplates::getEmailBody("invoice_email", $event, $booking);
                 $inv_body = $invoice->value;
                 $inv_subject = $invoice->subject;
                 $inv_pdf = MatukioHelperPDF::getInvoice($booking, $event, $inv_subject, "S");
                 $fn = "invoice-" . MatukioHelperUtilsBooking::getBookingId($booking->id) . ".pdf";
                 $mailer->AddStringAttachment($inv_pdf, $fn, 'base64', 'application/pdf');
                 if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0) {
                     $success = $mailer->sendMail($from, $sender, $email, $inv_subject, $inv_body, 1, null, null, null, $replyto, $replyname);
                     $mailer->ClearAllRecipients();
                 }
                 // E-Mail Organizer
                 if (MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0) {
                     $success = $mailer->sendMail($from, $sender, $publisher->email, $inv_subject, $inv_body, 1, null, null, null, $replyto, $replyname);
                     $mailer->ClearAllRecipients();
                 }
                 // E-Mail to Admin / Operator etc.
                 if (MatukioHelperSettings::getSettings('sendmail_operator', '') != '') {
                     $success = $mailer->sendMail($from, $sender, explode(",", MatukioHelperSettings::getSettings('sendmail_operator', '')), $inv_subject, $inv_body, 1, null, null, null, $replyto, $replyname);
                     $mailer->ClearAllRecipients();
                 }
             }
         } elseif ($art == 13 || $art == 14) {
             // E-Mails only to organizers (not to bookings!)
             $body = $abody . $body1 . self::getEmailBody($event, $booking, $user);
             $mailer = JFactory::getMailer();
             if ($art == 13) {
                 // ADD CSV list
                 $fn = "bookings-" . $event->title . ".csv";
                 $csvcontent = MatukioHelperUtilsEvents::generateCSVFile(false, $event->id, null, $event);
                 $mailer->AddStringAttachment($csvcontent, $fn, 'base64', 'application/octet-stream');
             }
             if (MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0) {
                 $success = $mailer->sendMail($from, $sender, $publisher->email, $subject, $body, 1, null, null, null, $replyto, $replyname);
                 $mailer->ClearAllRecipients();
             }
             // E-Mail to Admin / Operator etc.
             if (MatukioHelperSettings::getSettings('sendmail_operator', '') != "") {
                 $success = $mailer->sendMail($from, $sender, explode(",", MatukioHelperSettings::getSettings('sendmail_operator', '')), $subject, $body, MatukioHelperSettings::getSettings('email_html', 1), null, null, null, $replyto, $replyname);
                 $mailer->ClearAllRecipients();
             }
         } else {
             // Old ones
             $body = $abody . $body1 . self::getEmailBody($event, $booking, $user);
             $mailer = JFactory::getMailer();
             if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0) {
                 $success = $mailer->sendMail($from, $sender, $email, $subject, $body, 1, null, null, null, $replyto, $replyname);
                 $mailer->ClearAllRecipients();
             }
             if (MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0) {
                 $success = $mailer->sendMail($from, $sender, $publisher->email, $subject, $body, 1, null, null, null, $replyto, $replyname);
                 $mailer->ClearAllRecipients();
             }
             // E-Mail to Admin / Operator etc.
             if (MatukioHelperSettings::getSettings('sendmail_operator', '') != "") {
                 $success = $mailer->sendMail($from, $sender, explode(",", MatukioHelperSettings::getSettings('sendmail_operator', '')), $subject, $body, MatukioHelperSettings::getSettings('email_html', 1), null, null, null, $replyto, $replyname);
                 $mailer->ClearAllRecipients();
             }
         }
     }
 }
Пример #2
0
<?php

/**
 * @package    Matukio
 * @author     Yves Hoppe <*****@*****.**>
 * @date       29.01.14
 *
 * @copyright  Copyright (C) 2008 - 2014 compojoom.com . All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */
defined('_JEXEC') or die('Restricted access');
CompojoomHtmlBehavior::bootstrap31(false, false, false, false);
$database = JFactory::getDBO();
if (!empty($this->uid)) {
    $database->setQuery("SELECT * FROM #__matukio_bookings WHERE id='" . $this->uid . "'");
} elseif (!empty($this->uuid)) {
    $database->setQuery("SELECT * FROM #__matukio_bookings WHERE uuid='" . $this->uuid . "'");
}
$booking = $database->loadObject();
$kurs = MatukioHelperUtilsEvents::getEventRecurring($booking->semid);
$tmpl_code = MatukioHelperTemplates::getTemplate("invoice")->value;
// Parse language strings
$tmpl_code = MatukioHelperTemplates::replaceLanguageStrings($tmpl_code);
$replaces = MatukioHelperTemplates::getReplaces($kurs, $booking);
foreach ($replaces as $key => $replace) {
    $tmpl_code = str_replace($key, $replace, $tmpl_code);
}
$subject = "INVOICE";
MatukioHelperPDF::generateInvoice($booking, $tmpl_code, $subject);
exit;
Пример #3
0
<?php

/**
 * @package    Matukio
 * @author     Yves Hoppe <*****@*****.**>
 * @date       29.01.14
 *
 * @copyright  Copyright (C) 2008 - 2014 compojoom.com . All rights reserved.
 * @license    GNU General Public License version 2 or later; see LICENSE
 */
defined('_JEXEC') or die('Restricted access');
$database = JFactory::getDBO();
if (!empty($this->uuid)) {
    $database->setQuery("SELECT * FROM #__matukio_bookings WHERE uuid='" . $this->uuid . "'");
}
$booking = $database->loadObject();
$kurs = MatukioHelperUtilsEvents::getEventRecurring($booking->semid);
$tmpl_code = MatukioHelperTemplates::getTemplate("ticket")->value;
// Parse language strings
$tmpl_code = MatukioHelperTemplates::replaceLanguageStrings($tmpl_code);
$replaces = MatukioHelperTemplates::getReplaces($kurs, $booking);
foreach ($replaces as $key => $replace) {
    $tmpl_code = str_replace($key, $replace, $tmpl_code);
}
$subject = "TICKET";
MatukioHelperPDF::generateTicket($booking, $tmpl_code, $subject);
exit;
Пример #4
0
 /**
  * Gets the invoice
  *
  * @param   string  $booking      - The booking
  * @param   string  $kurs         - The event
  * @param   string  $subject      - The subject
  * @param   string  $destination  - The destination
  *
  * @return string
  */
 public static function getTicket($booking, $kurs, $subject = "Ticket", $destination = "D")
 {
     $tmpl_code = MatukioHelperTemplates::getTemplate("ticket")->value;
     // Parse language strings
     $tmpl_code = MatukioHelperTemplates::replaceLanguageStrings($tmpl_code);
     $replaces = MatukioHelperTemplates::getReplaces($kurs, $booking);
     foreach ($replaces as $key => $replace) {
         $tmpl_code = str_replace($key, $replace, $tmpl_code);
     }
     return MatukioHelperPDF::generateTicket($booking, $tmpl_code, $subject, $destination);
 }