Advertisement
Guest User

Untitled

a guest
Feb 1st, 2014
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.31 KB | None | 0 0
  1. /**
  2. * Sends E-Mails to participants, organizers etc.
  3. *
  4. * $art:
  5. * 1: booking confirmation
  6. * 2: cancel confirmation (user)
  7. * 3: cancel confirmation (admin)
  8. * 4: deleted
  9. * 5: published
  10. * 6: certificated
  11. * 7: certificate revoked
  12. * 8: max number reached
  13. * 9: republished event
  14. * 10: canceld
  15. *
  16. * @param int $cid - The event id
  17. * @param int $uid - The user id?
  18. * @param int $art - The Task
  19. * @param bool $cancel - Should we cancel
  20. *
  21. * @todo update, rewrite and optimize
  22. * @return void
  23. */
  24. public static function sendBookingConfirmationMail($cid, $uid, $art, $cancel = false)
  25. {
  26. jimport('joomla.mail.helper');
  27. jimport('joomla.mail.mail');
  28. $mainframe = JFactory::getApplication();
  29.  
  30. if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0
  31. OR MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0)
  32. {
  33. $database = JFactory::getDBO();
  34. $database->setQuery("SELECT * FROM #__matukio WHERE id = '" . $cid . "'");
  35.  
  36. $event = $database->loadObject();
  37.  
  38. if (!$cancel)
  39. {
  40. $database->setQuery("SELECT * FROM #__matukio_bookings WHERE id = " . $uid);
  41. }
  42. else
  43. {
  44. $database->setQuery("SELECT * FROM #__matukio_bookings WHERE semid = " . $cid . " AND userid = " . $uid);
  45. }
  46.  
  47. $booking = $database->loadObject();
  48.  
  49. if ($booking->userid == 0)
  50. {
  51. $user = JFactory::getUser(0);
  52. $user->name = $booking->name;
  53. $user->email = $booking->email;
  54. }
  55. else
  56. {
  57. $user = JFactory::getuser($booking->userid);
  58. }
  59.  
  60. $publisher = JFactory::getuser($event->publisher);
  61.  
  62. $body1 = "<p><span style=\"font-size:10pt;\">" . JTEXT::_('COM_MATUKIO_PLEASE_DONT_ANSWER_THIS_EMAIL') . "</span><p>";
  63. $body2 = $body1;
  64. $gebucht = self::calculateBookedPlaces($event);
  65. $gebucht = $gebucht->booked;
  66.  
  67. switch ($art)
  68. {
  69. // Booking confirmation
  70. case 1:
  71. if ($gebucht > $event->maxpupil)
  72. {
  73. if ($event->stopbooking = 0)
  74. {
  75. $body1 .= JTEXT::_('COM_MATUKIO_MAX_PARTICIPANT_NUMBER_REACHED');
  76. }
  77. else
  78. {
  79. $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_BOOKED_EVENT_FOR_YOU') . " " . JTEXT::_('COM_MATUKIO_YOU_ARE_BOOKED_ON_THE_WAITING_LIST');
  80. }
  81. }
  82. else
  83. {
  84. $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_BOOKED_EVENT_FOR_YOU');
  85. }
  86.  
  87. $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_MADE_FOLLOWING_RESERVATION');
  88. break;
  89.  
  90. // Cancel
  91. case 2:
  92. $body1 .= JTEXT::_('COM_MATUKIO_YOU_HAVE_CANCELLED');
  93. $body2 .= JTEXT::_('COM_MATUKIO_BOOKING_FOR_EVENT_CANCELLED');
  94. break;
  95. case 3:
  96. $body1 .= JTEXT::_('COM_MATUKIO_BOOKING_CANCELED');
  97. $body2 .= JTEXT::_('COM_MATUKIO_THE_ADMIN_CANCELED_THE_BOOKING_OF_FOLLOWING');
  98. break;
  99. case 4:
  100. $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_DELETED_THE_FOLLOWING_EVENT');
  101. $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_DELETED_EVENT');
  102. break;
  103. case 5:
  104. $body1 .= JTEXT::_('COM_MATUKIO_ADMIN_PUBLISHED_EVENT_YOUR_BOOKING_IS_VALID');
  105. $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_PUBLISHED_EVENT_THE_BOOKING_OF_PARTICIPANTS_IS_VALID');
  106. break;
  107. case 6:
  108. $body1 .= JTEXT::_('COM_MATUKIO_THE_ADMIN_CERTIFIED_YOU');
  109. $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_HAS_CERTIFICATED_FOLLOWING_PARTICIPANT');
  110.  
  111. if (MatukioHelperSettings::getSettings('frontend_userprintcertificate', 0) > 0)
  112. {
  113. $body1 .= " " . JTEXT::_('COM_MATUKIO_YOU_CAN_PRINT_YOUR_CERTIFICATE');
  114. }
  115. break;
  116. case 7:
  117. $body1 .= JTEXT::_('COM_MATUKIO_CERTIFICAT_REVOKED');
  118. $body2 .= JTEXT::_('COM_MATUKIO_ADMIN_HAS_WITHDRAWN_CERTIFICATE_FOR_FOLLOWNG_PARITICIPANTS');
  119. break;
  120. case 8:
  121. if ($gebucht > $event->maxpupil)
  122. {
  123. if ($event->stopbooking = 0)
  124. {
  125. $body1 .= JTEXT::_('COM_MATUKIO_MAX_PARTICIPANT_NUMBER_REACHED');
  126. }
  127. else
  128. {
  129. $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_REGISTERED_YOU') . " " . JTEXT::_('COM_MATUKIO_YOU_ARE_BOOKED_ON_THE_WAITING_LIST');
  130. }
  131. }
  132. else
  133. {
  134. $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_REGISTERED_YOU');
  135. }
  136.  
  137. $body2 .= JTEXT::_('COM_MATUKIO_YOU_HAVE_REGISTRED_PARTICIPANT_FOR');
  138. break;
  139. case 9:
  140. $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_HAS_REPUBLISHED_EVENT');
  141. $body2 .= JTEXT::_('COM_MATUKIO_THE_BOOKING_OF_THE_PARTICIPANT_IS_VALID_AGAIN');
  142. break;
  143. case 10:
  144. $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_CANCELLED');
  145. $body2 .= JTEXT::_('COM_MATUKIO_BOOKING_NO_LONGER_VALID');
  146. break;
  147. case 11:
  148. $body1 .= JTEXT::_('COM_MATUKIO_ORGANISER_UPDATED_YOUR_BOOKING');
  149. $body2 .= JTEXT::_('');
  150. break;
  151. }
  152.  
  153. $abody = "\n<head>\n<style type=\"text/css\">\n<!--\nbody {\nfont-family: Verdana, Tahoma, Arial;\nfont-size:12pt;\n}\n-->\n</style></head><body>";
  154. $sender = $mainframe->getCfg('fromname');
  155. $from = $mainframe->getCfg('mailfrom');
  156. $htxt = "";
  157.  
  158. if ($event->semnum != "")
  159. {
  160. $htxt = " " . $event->semnum;
  161. }
  162.  
  163. $subject = JTEXT::_('COM_MATUKIO_EVENT') . $htxt . ": " . $event->title;
  164. $subject = JMailHelper::cleanSubject($subject);
  165.  
  166. if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0 OR $art < 11)
  167. {
  168. $replyname = $publisher->name;
  169. $replyto = $publisher->email;
  170. $email = $user->email;
  171.  
  172. if ($art == 1 || $art == 2 || $art == 3)
  173. {
  174. // New booking templates @since 2.2.0
  175.  
  176. if (($art == 2 || $art == 3) && MatukioHelperSettings::_("booking_stornoconfirmation") == 0)
  177. {
  178. // The user should get no storno confirmationen email
  179. return;
  180. }
  181.  
  182. $start = "";
  183.  
  184. if ($gebucht > $event->maxpupil)
  185. {
  186. if ($event->stopbooking = 0)
  187. {
  188. $start .= JTEXT::_('COM_MATUKIO_MAX_PARTICIPANT_NUMBER_REACHED') . "<br /><br />";
  189. }
  190. else
  191. {
  192. $start .= JTEXT::_('COM_MATUKIO_YOU_ARE_BOOKED_ON_THE_WAITING_LIST') . "\n";
  193. }
  194. }
  195.  
  196. $tmpl_name = MatukioHelperTemplates::getEmailTemplateName($art);
  197. $tmpl = MatukioHelperTemplates::getEmailBody($tmpl_name, $event, $booking);
  198.  
  199. // Use HTML or text E-Mail
  200. if (MatukioHelperSettings::getSettings('email_html', 1))
  201. {
  202. $body = $start . $tmpl->value;
  203. }
  204. else
  205. {
  206. $body = $start . $tmpl->value_text;
  207. }
  208.  
  209. $subject = $tmpl->subject;
  210. $mailer = JFactory::getMailer();
  211.  
  212. // Check if we realy want to send this E-Mail
  213. if (MatukioHelperSettings::getSettings('sendmail_teilnehmer', 1) > 0)
  214. {
  215. $success = $mailer->sendMail(
  216. $from, $sender, $email, $subject, $body, MatukioHelperSettings::getSettings('email_html', 1),
  217. null, null, null, $replyto, $replyname
  218. );
  219.  
  220. if ($art == 1 && MatukioHelperSettings::getSettings('sendmail_invoice', 1))
  221. {
  222. $inv_body = $start;
  223.  
  224. $invoice = MatukioHelperTemplates::getEmailBody("invoice_email", $event, $booking);
  225. $inv_body = $start . $invoice->value;
  226.  
  227. $inv_subject = $invoice->subject;
  228.  
  229. $inv_pdf = MatukioHelperPDF::getInvoice($booking, $event, $inv_subject, "S");
  230.  
  231. $fn = "invoice-" . MatukioHelperUtilsBooking::getBookingId($booking->id) . ".pdf";
  232. $mailer->AddStringAttachment($inv_pdf, $fn, 'base64', 'application/pdf');
  233.  
  234. $success = $mailer->sendMail(
  235. $from, $sender, $email, $inv_subject, $inv_body, 1,
  236. null, null, null, $replyto, $replyname
  237. );
  238.  
  239. echo $success;
  240. }
  241. }
  242.  
  243. // E-Mail to Admin / Operator etc.
  244. if (MatukioHelperSettings::getSettings('sendmail_operator', '') != '')
  245. {
  246. $mailer = JFactory::getMailer();
  247.  
  248. $success = $mailer->sendMail(
  249. $from, $sender, MatukioHelperSettings::getSettings('sendmail_operator', ''), $subject,
  250. $body, MatukioHelperSettings::getSettings('email_html', 1),
  251. null, null, null, $replyto, $replyname
  252. );
  253.  
  254. if ($art == 1 && MatukioHelperSettings::getSettings('sendmail_invoice', 1))
  255. {
  256. $inv_body = $start;
  257.  
  258. $invoice = MatukioHelperTemplates::getEmailBody("invoice_email", $event, $booking);
  259. $inv_body = $start . $invoice->value;
  260.  
  261. $inv_subject = $invoice->subject;
  262.  
  263. $inv_pdf = MatukioHelperPDF::getInvoice($booking, $event, $inv_subject, "S");
  264.  
  265. $fn = "invoice-" . MatukioHelperUtilsBooking::getBookingId($booking->id) . ".pdf";
  266. $mailer->AddStringAttachment($inv_pdf, $fn, 'base64', 'application/pdf');
  267.  
  268. $success = $mailer->sendMail(
  269. $from, $sender, MatukioHelperSettings::getSettings('sendmail_operator', ''), $inv_subject, $inv_body, 1,
  270. null, null, null, $replyto, $replyname
  271. );
  272.  
  273. echo $success;
  274. }
  275. }
  276. }
  277. else
  278. {
  279. // Old ones
  280. $body = $abody . $body1 . self::getEmailBody($event, $booking, $user);
  281. $mailer = JFactory::getMailer();
  282. $success = $mailer->sendMail(
  283. $from, $sender, $email, $subject, $body, 1,
  284. null, null, null, $replyto, $replyname
  285. );
  286.  
  287. // E-Mail to Admin / Operator etc.
  288. if (MatukioHelperSettings::getSettings('sendmail_operator', '') != "")
  289. {
  290. $mailer = JFactory::getMailer();
  291.  
  292. $success = $mailer->sendMail(
  293. $from, $sender, MatukioHelperSettings::getSettings('sendmail_operator', ''), $subject,
  294. $body, MatukioHelperSettings::getSettings('email_html', 1),
  295. null, null, null, $replyto, $replyname
  296. );
  297. }
  298. }
  299. }
  300.  
  301. if (MatukioHelperSettings::getSettings('sendmail_owner', 1) > 0 AND $art < 11)
  302. {
  303. $replyname = $user->name;
  304. $replyto = $user->email;
  305. $email = $publisher->email;
  306.  
  307. if ($art == 1 || $art == 2 || $art == 3)
  308. {
  309. // New booking templates
  310.  
  311. $tmpl_name = MatukioHelperTemplates::getEmailTemplateName($art);
  312. $tmpl = MatukioHelperTemplates::getEmailBody($tmpl_name, $event, $booking);
  313.  
  314. if (MatukioHelperSettings::getSettings('email_html', 1))
  315. {
  316. $body = $tmpl->value;
  317. }
  318. else
  319. {
  320. $body = $tmpl->value_text;
  321. }
  322.  
  323. $subject = $tmpl->subject;
  324. $mailer = JFactory::getMailer();
  325.  
  326. $success = $mailer->sendMail(
  327. $from, $sender, $email, $subject, $body, MatukioHelperSettings::getSettings('email_html', 1),
  328. null, null, null, $replyto, $replyname
  329. );
  330.  
  331. if ($art == 1 && MatukioHelperSettings::getSettings('sendmail_invoice', 1))
  332. {
  333. $inv_body = $start;
  334.  
  335. $invoice = MatukioHelperTemplates::getEmailBody("invoice_email", $event, $booking);
  336. $inv_body = $start . $invoice->value;
  337.  
  338. $inv_subject = $invoice->subject;
  339.  
  340. $inv_pdf = MatukioHelperPDF::getInvoice($booking, $event, $inv_subject, "S");
  341.  
  342. $fn = "invoice-" . MatukioHelperUtilsBooking::getBookingId($booking->id) . ".pdf";
  343. $mailer->AddStringAttachment($inv_pdf, $fn, 'base64', 'application/pdf');
  344.  
  345. $success = $mailer->sendMail(
  346. $from, $sender, MatukioHelperSettings::getSettings('sendmail_operator', ''), $inv_subject, $inv_body, 1,
  347. null, null, null, $replyto, $replyname
  348. );
  349.  
  350. echo $success;
  351. }
  352. }
  353. else
  354. {
  355. // Old ones
  356. $body = $abody . $body2 . self::getEmailBody($event, $booking, $user);
  357. $mailer = JFactory::getMailer();
  358. $success = $mailer->sendMail($from, $sender, $email, $subject, $body, 1, null, null, null, $replyto, $replyname);
  359. }
  360. }
  361. }
  362. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement