* @version 0.0.0 * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ class BaseMailer extends BaseFrameworkSystem { /** * Iterateable list of recipients */ private $recipientList = array(); /** * Template name */ private $templateName = ""; /** * Protected constructor * * @param $className Name of the class * @return void */ protected function __construct ($className) { // Call parent constructor parent::__construct($className); // Clean up a little $this->removeNumberFormaters(); $this->removeSystemArray(); } /** * Loads a text or HTML template depending on configuration into the template engine * * @param $templateName Name of the template we shall load * @return void */ public function loadTemplate ($templateName) { // Set template name $this->setTemplateName($templateName); // Get configuration entry $templatePrefix = $this->getConfigInstance()->readConfig('email_tpl_' . $templateName); // Load this email template $this->getTemplateInstance()->loadEmailTemplate($templatePrefix . '_' . $templateName); } /** * Adds a user class to the recipient list for current template * * @param $userInstance An instance of a user class * @return void */ public function addRecipientByUserInstance (ManageableUser $userInstance) { // Get template name $templateName = $this->getTemplateName(); // Is the list initialized? if (!isset($this->recipientList[$templateName]['recipients'])) { // Then initialize it here $this->recipientList[$templateName]['recipients'] = new FrameworkArrayObject("FakedRecipientList"); } // END - if // Add it as a recipient $this->recipientList[$templateName]['recipients']->append($userInstance); } /** * Protected setter for template name * * @param $templateName Name of email template * @return void */ protected final function setTemplateName ($templateName) { $this->templateName = (string) $templateName; } /** * Protected getter for template name * * @return $templateName Name of email template */ protected final function getTemplateName () { return $this->templateName; } /** * Setter for subject line * * @param $subjectLine Subject line to set * @return void */ public final function setSubjectLine ($subjectLine) { $this->recipientList[$this->getTemplateName()]['subject'] = (string) $subjectLine; } /** * Getter for subject line or null if not found * * @return $subjectLine Subject line to set */ public final function getSubjectLine () { // Default subject is null $subjectLine = null; // Get template name $templateName = $this->getTemplateName(); // Does the subject line exist? if ((!empty($templateName)) && (isset($this->recipientList[$templateName]['subject']))) { // Then use it $subjectLine = $this->recipientList[$templateName]['subject']; } // END - if // Return it return $subjectLine; } /** * Use subject line provided by the (XML) template otherwise a subject line must be set * * @return void */ public function useSubjectFromTemplate () { // Set the subject line $this->setSubjectLine("{?subject?}"); } } // [EOF] ?>