diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-04-11 15:09:27 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-11 15:09:27 -0500 |
commit | 6bd1c50dc32ccc208723ef08af72b8bfe99b58bb (patch) | |
tree | 33d39d58978b08068fe1654bebb6a4e599881eb9 /lib/private/Mail | |
parent | 8175ac6ecd58f08417fc5129af6a490fd3a4bc3b (diff) | |
parent | f3a78ee39d3146dcc4b11ceb84759b0a602f9266 (diff) | |
download | nextcloud-server-6bd1c50dc32ccc208723ef08af72b8bfe99b58bb.tar.gz nextcloud-server-6bd1c50dc32ccc208723ef08af72b8bfe99b58bb.zip |
Merge pull request #4304 from nextcloud/add-email-template-to-ocp
Add IEMailTemplate to public OCP API
Diffstat (limited to 'lib/private/Mail')
-rw-r--r-- | lib/private/Mail/EMailTemplate.php | 1 | ||||
-rw-r--r-- | lib/private/Mail/IEMailTemplate.php | 112 | ||||
-rw-r--r-- | lib/private/Mail/Mailer.php | 24 |
3 files changed, 23 insertions, 114 deletions
diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index c84af6331dc..402916cf74a 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -28,6 +28,7 @@ namespace OC\Mail; use OCP\Defaults; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\Mail\IEMailTemplate; /** * Class EMailTemplate diff --git a/lib/private/Mail/IEMailTemplate.php b/lib/private/Mail/IEMailTemplate.php deleted file mode 100644 index baa29735988..00000000000 --- a/lib/private/Mail/IEMailTemplate.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php -/** - * @copyright 2017, Morris Jobke <hey@morrisjobke.de> - * - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -namespace OC\Mail; - -use OCP\Defaults; - -/** - * Interface IEMailTemplate - * - * Interface to a class that allows to build HTML emails - * - * Example: - * - * <?php - * - * $emailTemplate = new EMailTemplate($this->defaults, $this->urlGenerator, $this->l10n); - * - * $emailTemplate->addHeader(); - * $emailTemplate->addHeading('Welcome aboard'); - * $emailTemplate->addBodyText('You have now an Nextcloud account, you can add, protect, and share your data.'); - * - * $emailTemplate->addBodyButtonGroup( - * 'Set your password', 'https://example.org/resetPassword/q1234567890qwertz', - * 'Install Client', 'https://nextcloud.com/install/#install-clients' - * ); - * - * $emailTemplate->addFooter('Optional footer text'); - * - * $htmlContent = $emailTemplate->renderHTML(); - * $plainContent = $emailTemplate->renderText(); - */ -interface IEMailTemplate { - /** - * @param Defaults $themingDefaults - * @param \OCP\IURLGenerator $urlGenerator - * @param \OCP\IL10N $l10n - */ - public function __construct(Defaults $themingDefaults, - \OCP\IURLGenerator $urlGenerator, - \OCP\IL10N $l10n); - - /** - * Adds a header to the email - */ - public function addHeader(); - - /** - * Adds a heading to the email - * - * @param string $title - */ - public function addHeading($title); - - /** - * Adds a paragraph to the body of the email - * - * @param string $text - */ - public function addBodyText($text); - - /** - * Adds a button group of two buttons to the body of the email - * - * @param string $textLeft Text of left button - * @param string $urlLeft URL of left button - * @param string $textRight Text of right button - * @param string $urlRight URL of right button - */ - public function addBodyButtonGroup($textLeft, $urlLeft, $textRight, $urlRight); - - /** - * Adds a logo and a text to the footer. <br> in the text will be replaced by new lines in the plain text email - * - * @param string $text - */ - public function addFooter($text = ''); - - /** - * Returns the rendered HTML email as string - * - * @return string - */ - public function renderHTML(); - - /** - * Returns the rendered plain text email as string - * - * @return string - */ - public function renderText(); -} diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 8a6b6fce899..852806b2e43 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -24,6 +24,8 @@ namespace OC\Mail; use OCP\Defaults; use OCP\IConfig; +use OCP\IL10N; +use OCP\IURLGenerator; use OCP\Mail\IMailer; use OCP\ILogger; @@ -54,18 +56,28 @@ class Mailer implements IMailer { private $logger; /** @var Defaults */ private $defaults; + /** @var IURLGenerator */ + private $urlGenerator; + /** @var IL10N */ + private $l10n; /** * @param IConfig $config * @param ILogger $logger * @param Defaults $defaults + * @param IURLGenerator $urlGenerator + * @param IL10N $l10n */ - function __construct(IConfig $config, + public function __construct(IConfig $config, ILogger $logger, - Defaults $defaults) { + Defaults $defaults, + IURLGenerator $urlGenerator, + IL10N $l10n) { $this->config = $config; $this->logger = $logger; $this->defaults = $defaults; + $this->urlGenerator = $urlGenerator; + $this->l10n = $l10n; } /** @@ -77,6 +89,14 @@ class Mailer implements IMailer { return new Message(new \Swift_Message()); } + public function createEMailTemplate() { + return new EMailTemplate( + $this->defaults, + $this->urlGenerator, + $this->l10n + ); + } + /** * Send the specified message. Also sets the from address to the value defined in config.php * if no-one has been passed. |