本文整理汇总了PHP中Gdn_Email::setEmailTemplate方法的典型用法代码示例。如果您正苦于以下问题:PHP Gdn_Email::setEmailTemplate方法的具体用法?PHP Gdn_Email::setEmailTemplate怎么用?PHP Gdn_Email::setEmailTemplate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gdn_Email
的用法示例。
在下文中一共展示了Gdn_Email::setEmailTemplate方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: passwordRequest
/**
* Send forgot password email.
*
* @param string $Email
* @return bool
*/
public function passwordRequest($Email)
{
if (!$Email) {
return false;
}
$Users = $this->getWhere(['Email' => $Email])->resultObject();
if (count($Users) == 0) {
// Check for the username.
$Users = $this->getWhere(['Name' => $Email])->resultObject();
}
$this->EventArguments['Users'] =& $Users;
$this->EventArguments['Email'] = $Email;
$this->fireEvent('BeforePasswordRequest');
if (count($Users) == 0) {
$this->Validation->addValidationResult('Name', "Couldn't find an account associated with that email/username.");
return false;
}
$NoEmail = true;
foreach ($Users as $User) {
if (!$User->Email) {
continue;
}
$Email = new Gdn_Email();
// Instantiate in loop to clear previous settings
$PasswordResetKey = betterRandomString(20, 'Aa0');
$PasswordResetExpires = strtotime('+1 hour');
$this->saveAttribute($User->UserID, 'PasswordResetKey', $PasswordResetKey);
$this->saveAttribute($User->UserID, 'PasswordResetExpires', $PasswordResetExpires);
$AppTitle = c('Garden.Title');
$Email->subject('[' . $AppTitle . '] ' . t('Reset Your Password'));
$Email->to($User->Email);
$emailTemplate = $Email->getEmailTemplate()->setTitle(t('Reset Your Password'))->setMessage(sprintf(t('We\'ve received a request to change your password.'), $AppTitle))->setButton(externalUrl('/entry/passwordreset/' . $User->UserID . '/' . $PasswordResetKey), t('Change My Password'));
$Email->setEmailTemplate($emailTemplate);
try {
$Email->send();
} catch (Exception $e) {
if (debug()) {
throw $e;
}
}
$NoEmail = false;
}
if ($NoEmail) {
$this->Validation->addValidationResult('Name', 'There is no email address associated with that account.');
return false;
}
return true;
}
示例2: gettingStarted
/**
* Prompts new admins how to get started using new install.
*
* @since 2.0.0
* @access public
*/
public function gettingStarted()
{
$this->permission('Garden.Settings.Manage');
$this->setData('Title', t('Getting Started'));
$this->addSideMenu('dashboard/settings/gettingstarted');
$this->TextEnterEmails = t('TextEnterEmails', 'Type email addresses separated by commas here');
if ($this->Form->authenticatedPostBack()) {
// Do invitations to new members.
$Message = $this->Form->getFormValue('InvitationMessage');
$Message = trim($Message);
$Recipients = $this->Form->getFormValue('Recipients');
if ($Recipients == $this->TextEnterEmails) {
$Recipients = '';
}
$Recipients = explode(',', $Recipients);
$CountRecipients = 0;
foreach ($Recipients as $Recipient) {
if (trim($Recipient) != '') {
$CountRecipients++;
if (!validateEmail($Recipient)) {
$this->Form->addError(sprintf(t('%s is not a valid email address'), $Recipient));
}
}
}
if ($CountRecipients == 0) {
$this->Form->addError(t('You must provide at least one recipient'));
}
if ($this->Form->errorCount() == 0) {
$Email = new Gdn_Email();
$Email->subject(t('Check out my new community!'));
$emailTemplate = $Email->getEmailTemplate();
$emailTemplate->setMessage($Message, true)->setButton(externalUrl('/'), t('Check it out'));
$Email->setEmailTemplate($emailTemplate);
foreach ($Recipients as $Recipient) {
if (trim($Recipient) != '') {
$Email->to($Recipient);
try {
$Email->send();
} catch (Exception $ex) {
$this->Form->addError($ex);
}
}
}
}
if ($this->Form->errorCount() == 0) {
$this->informMessage(t('Your invitations were sent successfully.'));
}
}
$this->render();
}
示例3: getTestEmail
/**
* Sets up a new Gdn_Email object with a test email.
*
* @param string $image The img src of the previewed image
* @param string $textColor The hex color code of the text.
* @param string $backGroundColor The hex color code of the background color.
* @param string $containerBackgroundColor The hex color code of the container background color.
* @param string $buttonTextColor The hex color code of the link color.
* @param string $buttonBackgroundColor The hex color code of the button background.
* @return Gdn_Email The email object with the test colors set.
*/
public function getTestEmail($image = '', $textColor = '', $backGroundColor = '', $containerBackgroundColor = '', $buttonTextColor = '', $buttonBackgroundColor = '')
{
$emailer = new Gdn_Email();
$email = $emailer->getEmailTemplate();
if ($image) {
$email->setImage($image);
}
if ($textColor) {
$email->setTextColor($textColor);
}
if ($backGroundColor) {
$email->setBackgroundColor($backGroundColor);
}
if ($backGroundColor) {
$email->setContainerBackgroundColor($containerBackgroundColor);
}
if ($buttonTextColor) {
$email->setDefaultButtonTextColor($buttonTextColor);
}
if ($buttonBackgroundColor) {
$email->setDefaultButtonBackgroundColor($buttonBackgroundColor);
}
$message = t('Test Email Message');
$email->setMessage($message)->setTitle(t('Test Email'))->setButton(externalUrl('/'), t('Check it out'));
$emailer->setEmailTemplate($email);
return $emailer;
}
示例4: send
/**
*
*
* @param $InvitationID
* @throws Exception
*/
public function send($InvitationID)
{
$Invitation = $this->GetByInvitationID($InvitationID);
$Session = Gdn::session();
if ($Invitation === false) {
throw new Exception(t('ErrorRecordNotFound'));
} elseif ($Session->UserID != $Invitation->SenderUserID) {
throw new Exception(t('InviteErrorPermission', t('ErrorPermission')));
} else {
// Some information for the email
$RegistrationUrl = ExternalUrl("entry/registerinvitation/{$Invitation->Code}");
$AppTitle = Gdn::config('Garden.Title');
$Email = new Gdn_Email();
$Email->subject(sprintf(t('[%s] Invitation'), $AppTitle));
$Email->to($Invitation->Email);
$emailTemplate = $Email->getEmailTemplate();
$message = t('Hello!') . ' ' . sprintf(t('%s has invited you to join %s.'), $Invitation->SenderName, $AppTitle);
$emailTemplate->setButton($RegistrationUrl, t('Join this Community Now'))->setMessage($message)->setTitle(sprintf(t('Join %s'), $AppTitle));
$Email->setEmailTemplate($emailTemplate);
try {
$Email->send();
} catch (Exception $e) {
if (debug()) {
throw $e;
}
}
}
}
示例5: queueNotification
/**
* Queue a notification for sending.
*
* @since 2.0.17
* @access public
* @param int $ActivityID
* @param string $Story
* @param string $Position
* @param bool $Force
*/
public function queueNotification($ActivityID, $Story = '', $Position = 'last', $Force = false)
{
$Activity = $this->getID($ActivityID);
if (!is_object($Activity)) {
return;
}
$Story = Gdn_Format::text($Story == '' ? $Activity->Story : $Story, false);
// If this is a comment on another activity, fudge the activity a bit so that everything appears properly.
if (is_null($Activity->RegardingUserID) && $Activity->CommentActivityID > 0) {
$CommentActivity = $this->getID($Activity->CommentActivityID);
$Activity->RegardingUserID = $CommentActivity->RegardingUserID;
$Activity->Route = '/activity/item/' . $Activity->CommentActivityID;
}
$User = Gdn::userModel()->getID($Activity->RegardingUserID, DATASET_TYPE_OBJECT);
//$this->SQL->select('UserID, Name, Email, Preferences')->from('User')->where('UserID', $Activity->RegardingUserID)->get()->firstRow();
if ($User) {
if ($Force) {
$Preference = $Force;
} else {
// $Preferences = Gdn_Format::Unserialize($User->Preferences);
$ConfigPreference = c('Preferences.Email.' . $Activity->ActivityType, '0');
if ($ConfigPreference !== false) {
$Preference = val('Email.' . $Activity->ActivityType, $User->Preferences, $ConfigPreference);
} else {
$Preference = false;
}
}
if ($Preference) {
$ActivityHeadline = Gdn_Format::text(Gdn_Format::activityHeadline($Activity, $Activity->ActivityUserID, $Activity->RegardingUserID), false);
$Email = new Gdn_Email();
$Email->subject(sprintf(t('[%1$s] %2$s'), Gdn::config('Garden.Title'), $ActivityHeadline));
$Email->to($User);
$url = externalUrl(val('Route', $Activity) == '' ? '/' : val('Route', $Activity));
$emailTemplate = $Email->getEmailTemplate()->setButton($url, t('Check it out'))->setTitle(Gdn_Format::plainText(val('Headline', $Activity)));
if ($message = val('Story', $Activity)) {
$emailTemplate->setMessage($message, true);
}
$Email->setEmailTemplate($emailTemplate);
if (!array_key_exists($User->UserID, $this->_NotificationQueue)) {
$this->_NotificationQueue[$User->UserID] = array();
}
$Notification = array('ActivityID' => $ActivityID, 'User' => $User, 'Email' => $Email, 'Route' => $Activity->Route, 'Story' => $Story, 'Headline' => $ActivityHeadline, 'Activity' => $Activity);
if ($Position == 'first') {
$this->_NotificationQueue[$User->UserID] = array_merge(array($Notification), $this->_NotificationQueue[$User->UserID]);
} else {
$this->_NotificationQueue[$User->UserID][] = $Notification;
}
}
}
}