×
This forum has been locked. Please submit new Feature Requests on GitHub:
github.com/Jensen-Technologies/component-creator-issues/issues
adding send email function to backend
Marcin
New Member
Posts: 1
It would be nice to have send email function added to edit, create new - buttons on backed.
Please Log in or Create an account to join the conversation.
Ruud van Lent
New Member
Posts: 4
Hi,
just added this to the front-end form. When a new item is created and saved (via the controllers save function), the following function is called that will send an email to all users that have in their profile 'Receive system emails' set to yes.
hope this helps.
regards,
Ruud
/**
* Send mail to administrators
*
* @param integer $id The id of the row to check out.
*
* @return void
*/
public function sendSystemMail($id)
{
// Get the id.
$id = (!empty($id)) ? $id : (int) $this->getState('newsitem.id');
$app = JFactory::getApplication('com_ochgotnews');
$params = $app->getParams();
if ($params->get('ochgotnews_mailonnew', true))
{
$user = JFactory::getUser();
// Build the email subject and message
$sitename = JFactory::getApplication()->get('sitename');
$siteURL = JUri::root() . 'administrator/index.php?option=com_ochgotnews&task=newsitem.edit&id=' . $id;
$subject = JText::sprintf('COM_OCHGOTNEWS_MAIL_SUBJECT', $sitename);
$msg = JText::sprintf('COM_OCHGOTNEWS_MAIL_MESSAGE', $siteURL);
// Get the user that are configured to receive system emails
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query
->select(array('name', 'email'))
->from($db->quoteName('#__users'))
->where($db->quotename('sendEmail') . ' = ' . $db->quote('1'));
$db->setQuery($query);
$recipients = $db->loadObjectList();
foreach ($recipients as $recipient)
{
// Compile mailer function:
$mailer = JFactory::getMailer()
->setSubject($subject)
->setBody($msg)
->setSender(
$user->email,
$user->name
)
->addRecipient(
$recipient->email,
$recipient->name
);
$mailer->Send();
}
}
}
Please Log in or Create an account to join the conversation.
Time to create page: 0.137 seconds