/** * Save email template. */ function execute() { $press =& Request::getPress(); $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO'); $emailTemplate =& $emailTemplateDao->getLocaleEmailTemplate($this->emailKey, $press->getId()); if (!$emailTemplate) { $emailTemplate = new LocaleEmailTemplate(); $emailTemplate->setCustomTemplate(true); $emailTemplate->setCanDisable(false); $emailTemplate->setEnabled(true); $emailTemplate->setEmailKey($this->getData('emailKey')); } else { $emailTemplate->setEmailId($this->getData('emailId')); if ($emailTemplate->getCanDisable()) { $emailTemplate->setEnabled($this->getData('enabled')); } } $emailTemplate->setAssocType(ASSOC_TYPE_PRESS); $emailTemplate->setAssocId($press->getPressId()); $supportedLocales = $press->getSupportedLocaleNames(); if (!empty($supportedLocales)) { foreach ($press->getSupportedLocaleNames() as $localeKey => $localeName) { $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } } else { $localeKey = Locale::getLocale(); $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } if ($emailTemplate->getEmailId() != null) { $emailTemplateDao->updateLocaleEmailTemplate($emailTemplate); } else { $emailTemplateDao->insertLocaleEmailTemplate($emailTemplate); } }
/** * Save email template. */ function execute() { $conferenceId = $this->conference->getId(); $emailTemplateDao =& DAORegistry::getDAO('EmailTemplateDAO'); $emailTemplate =& $emailTemplateDao->getLocaleEmailTemplate($this->emailKey, $conferenceId); if (!$emailTemplate) { $emailTemplate = new LocaleEmailTemplate(); $emailTemplate->setCustomTemplate(true); $emailTemplate->setCanDisable(false); $emailTemplate->setEnabled(true); $emailTemplate->setEmailKey($this->getData('emailKey')); } else { $emailTemplate->setEmailId($this->getData('emailId')); if ($emailTemplate->getCanDisable()) { $emailTemplate->setEnabled($this->getData('enabled')); } $foo = $emailTemplate->getEmailId(); } $emailTemplate->setConferenceId($conferenceId); $emailTemplate->setEventId($eventId); $supportedLocales = $this->conference->getSupportedLocaleNames(); if (!empty($supportedLocales)) { foreach ($conference->getSupportedLocaleNames() as $localeKey => $localeName) { $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } } else { $localeKey = Locale::getLocale(); $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } if ($emailTemplate->getEmailId() != null) { $emailTemplateDao->updateLocaleEmailTemplate($emailTemplate); } else { $emailTemplateDao->insertLocaleEmailTemplate($emailTemplate); } }
/** * Internal function to return an email template object from a row. * @param $row array * @return LocaleEmailTemplate */ function &_returnLocaleEmailTemplateFromRow(&$row) { $emailTemplate = new LocaleEmailTemplate(); $emailTemplate->setEmailId($row['email_id']); $emailTemplate->setAssocType($row['assoc_type']); $emailTemplate->setAssocId($row['assoc_id']); $emailTemplate->setEmailKey($row['email_key']); $emailTemplate->setEnabled($row['enabled'] == null ? 1 : $row['enabled']); $emailTemplate->setCanDisable($row['can_disable']); $emailTemplate->setFromRoleId($row['from_role_id']); $emailTemplate->setToRoleId($row['to_role_id']); $emailTemplate->setCustomTemplate(false); if (!HookRegistry::call('EmailTemplateDAO::_returnLocaleEmailTemplateFromRow', array(&$emailTemplate, &$row))) { $result =& $this->retrieve('SELECT dd.locale, dd.description, COALESCE(ed.subject, dd.subject) AS subject, COALESCE(ed.body, dd.body) AS body FROM email_templates_default_data dd LEFT JOIN email_templates_data ed ON (dd.email_key = ed.email_key AND dd.locale = ed.locale AND ed.assoc_type = ? AND ed.assoc_id = ?) WHERE dd.email_key = ?', array($row['assoc_type'], $row['assoc_id'], $row['email_key'])); while (!$result->EOF) { $dataRow =& $result->GetRowAssoc(false); $emailTemplate->addLocale($dataRow['locale']); $emailTemplate->setSubject($dataRow['locale'], $dataRow['subject']); $emailTemplate->setBody($dataRow['locale'], $dataRow['body']); $emailTemplate->setDescription($dataRow['locale'], $dataRow['description']); $result->MoveNext(); } $result->Close(); unset($result); // Retrieve custom email contents as well; this is done in PHP to avoid // using a SQL outer join or union. $result =& $this->retrieve('SELECT ed.locale, ed.subject, ed.body FROM email_templates_data ed LEFT JOIN email_templates_default_data dd ON (ed.email_key = dd.email_key AND dd.locale = ed.locale) WHERE ed.assoc_type = ? AND ed.assoc_id = ? AND ed.email_key = ? AND dd.email_key IS NULL', array($row['assoc_type'], $row['assoc_id'], $row['email_key'])); while (!$result->EOF) { $dataRow =& $result->GetRowAssoc(false); $emailTemplate->addLocale($dataRow['locale']); $emailTemplate->setSubject($dataRow['locale'], $dataRow['subject']); $emailTemplate->setBody($dataRow['locale'], $dataRow['body']); $result->MoveNext(); $emailTemplate->setCustomTemplate(true); } $result->Close(); unset($result); } return $emailTemplate; }
/** * Save email template. */ function execute() { $context = $this->getContext(); $emailTemplateDao = DAORegistry::getDAO('EmailTemplateDAO'); $emailTemplate = $emailTemplateDao->getLocaleEmailTemplate($this->getEmailKey(), $context->getId()); if (!$emailTemplate) { $emailTemplate = new LocaleEmailTemplate(); $emailTemplate->setCustomTemplate(true); $emailTemplate->setCanDisable(false); $emailTemplate->setEnabled(true); $emailTemplate->setEmailKey($this->getEmailKey()); } $emailTemplate->setAssocType($context->getAssocType()); $emailTemplate->setAssocId($context->getId()); $supportedLocales = $context->getSupportedLocaleNames(); if (!empty($supportedLocales)) { foreach ($context->getSupportedLocaleNames() as $localeKey => $localeName) { $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } } else { $localeKey = AppLocale::getLocale(); $emailTemplate->setSubject($localeKey, $this->_data['subject'][$localeKey]); $emailTemplate->setBody($localeKey, $this->_data['body'][$localeKey]); } if ($emailTemplate->getEmailId() != null) { $emailTemplateDao->updateLocaleEmailTemplate($emailTemplate); } else { $emailTemplateDao->insertLocaleEmailTemplate($emailTemplate); } }