summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Schiessle <schiessle@owncloud.com>2013-09-25 11:51:28 +0200
committerBjoern Schiessle <schiessle@owncloud.com>2013-09-25 11:51:28 +0200
commit883d1c0df32a942d3bb07f242e8ffcd871418f60 (patch)
tree9ddfaec99ea2886d997bdcb90842a7ae9b0029fd
parentca47fc5f18178c88f8a4eff3de35f02b580bc6b1 (diff)
downloadnextcloud-server-883d1c0df32a942d3bb07f242e8ffcd871418f60.tar.gz
nextcloud-server-883d1c0df32a942d3bb07f242e8ffcd871418f60.zip
use template for txt and html mails to send notification mails
-rw-r--r--core/ajax/share.php41
-rw-r--r--core/templates/altmail.php6
-rw-r--r--core/templates/mail.php8
-rw-r--r--lib/defaults.php88
-rw-r--r--lib/public/defaults.php41
5 files changed, 133 insertions, 51 deletions
diff --git a/core/ajax/share.php b/core/ajax/share.php
index 8f5432a0fcb..293e140d1d5 100644
--- a/core/ajax/share.php
+++ b/core/ajax/share.php
@@ -91,8 +91,8 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$itemType = $_POST['itemType'];
$itemSource = $_POST['itemSource'];
$recipient = $_POST['recipient'];
+ $ownerDisplayName = \OCP\User::getDisplayName();
$from = \OCP\Util::getDefaultEmailAddress('sharing-noreply');
- $subject = $defaults->getShareNotificationSubject($itemType);
$noMail = array();
$recipientList = array();
@@ -115,6 +115,7 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$displayName = \OCP\User::getDisplayName($recipient);
$items = \OCP\Share::getItemSharedWithUser($itemType, $itemSource, $recipient);
$filename = trim($items[0]['file_target'], '/');
+ $subject = $defaults->getShareNotificationSubject($ownerDisplayName, $filename);
$expiration = null;
if (isset($items[0]['expiration'])) {
$expiration = $items[0]['expiration'];
@@ -128,29 +129,31 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
$foldername = "/Shared";
}
- $url = \OCP\Util::linkToAbsolute('files', 'index.php', array("dir" => $foldername));
- $text = $defaults->getShareNotificationText(
- \OCP\User::getDisplayName(),
- $filename,
- $itemType,
- $url,
- $expiration
- );
+ $link = \OCP\Util::linkToAbsolute('files', 'index.php', array("dir" => $foldername));
+
+ $content = new OC_Template("core", "mail", "");
+ $content->assign('link', $link);
+ $content->assign('user_displayname', $ownerDisplayName);
+ $content->assign('filename', $filename);
+ $content->assign('expiration', $expiration);
+ $text = $content->fetchPage();
+
+ $content = new OC_Template("core", "altmail", "");
+ $content->assign('link', $link);
+ $content->assign('user_displayname', $ownerDisplayName);
+ $content->assign('filename', $filename);
+ $content->assign('expiration', $expiration);
+ $alttext = $content->fetchPage();
+ $default_from = OCP\Util::getDefaultEmailAddress('sharing-noreply');
+ $from = OCP\Config::getUserValue(\OCP\User::getUser(), 'settings', 'email', $default_from);
+
+ // send it out now
try {
- OCP\Util::sendMail(
- $email,
- $displayName,
- $subject,
- $text,
- $from,
- \OCP\User::getDisplayName()
- );
+ OCP\Util::sendMail($email, $displayName, $subject, $text, $from, $ownerDisplayName, 1, $alttext);
} catch (Exception $exception) {
$noMail[] = \OCP\User::getDisplayName($recipient);
}
- } else {
- $noMail[] = \OCP\User::getDisplayName($recipient);
}
}
diff --git a/core/templates/altmail.php b/core/templates/altmail.php
index 2551473c6f0..f7159a021a8 100644
--- a/core/templates/altmail.php
+++ b/core/templates/altmail.php
@@ -1,7 +1,7 @@
<?php
-print_unescaped($l->t("Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\nCheers!", array($_['user_displayname'], $_['filename'], $_['link'])));
+$expiration = isset($_['expiration']) ? $_['expiration'] : null;
+print_unescaped($theme->getShareNotificationTextAlt($_['user_displayname'], $_['filename'], $_['link'], $expiration));
?>
--
-<?php p($theme->getName() . ' - ' . $theme->getSlogan()); ?>
-<?php print_unescaped("\n".$theme->getBaseUrl());
+<?php print_unescaped($theme->getMailFooterAlt());
diff --git a/core/templates/mail.php b/core/templates/mail.php
index de72b136b13..5570e4caabe 100644
--- a/core/templates/mail.php
+++ b/core/templates/mail.php
@@ -12,7 +12,8 @@
<td bgcolor="#f8f8f8" width="20px">&nbsp;</td>
<td bgcolor="#f8f8f8" style="font-weight:normal; font-size:0.8em; line-height:1.2em; font-family:verdana,'arial',sans;">
<?php
-print_unescaped($l->t('Hey there,<br><br>just letting you know that %s shared »%s« with you.<br><a href="%s">View it!</a><br><br>Cheers!', array($_['user_displayname'], $_['filename'], $_['link'])));
+$expiration = isset($_['expiration']) ? $_['expiration'] : null;
+print_unescaped($theme->getShareNotificationTextHtml($_['user_displayname'], $_['filename'], $_['link'], $expiration));
?>
</td>
</tr>
@@ -20,9 +21,8 @@ print_unescaped($l->t('Hey there,<br><br>just letting you know that %s shared »
<tr>
<td bgcolor="#f8f8f8" width="20px">&nbsp;</td>
<td bgcolor="#f8f8f8" style="font-weight:normal; font-size:0.8em; line-height:1.2em; font-family:verdana,'arial',sans;">--<br>
-<?php p($theme->getName()); ?> -
-<?php p($theme->getSlogan()); ?>
-<br><a href="<?php print_unescaped($theme->getBaseUrl()); ?>"><?php print_unescaped($theme->getBaseUrl());?></a></td>
+<?php print_unescaped($theme->getMailFooterHtml()); ?>
+</td>
</tr>
<tr>
<td bgcolor="#f8f8f8" colspan="2">&nbsp;</td>
diff --git a/lib/defaults.php b/lib/defaults.php
index efb6c2c7b32..eb531d1e052 100644
--- a/lib/defaults.php
+++ b/lib/defaults.php
@@ -49,38 +49,92 @@ class OC_Defaults {
}
/**
- *
- * @param string $itemType typically "file" or "folder"
+ * @brief subject for share notification mail
+ * @param string $user user who shared the item
+ * @pram string $itemName name of the item
*/
- public function getShareNotificationSubject($itemType) {
+ public function getShareNotificationSubject($user, $itemName) {
if ($this->themeExist('getShareNotificationSubject')) {
- return $this->theme->getShareNotificationSubject($itemType);
+ return $this->theme->getShareNotificationSubject($user, $itemName);
} else {
- return $this->l->t("A %s was shared with you", array($itemType));
+ return $this->l->t("%s shared »%s« with you", array($user, $itemName));
}
}
/**
+ * @brief mail body for share notification mail (text only)
* @param string $sender owner of the file/folder
* @param string $itemName name of the file/folder
- * @param string $itemType typically "file" or "folder"
* @param string $link link directly to the file/folder in your ownCloud
* @param string $expiration expiration date
*/
- public function getShareNotificationText($sender, $itemName, $itemType, $link, $expiration=null) {
- if ($this->themeExist('getShareNotificationText')) {
- return $this->theme->getShareNotificationText($sender, $itemName, $itemType, $link, $expiration);
+ public function getShareNotificationTextHtml($sender, $itemName, $link, $expiration=null) {
+ if ($this->themeExist('getShareNotificationTextHtml')) {
+ return $this->theme->getShareNotificationTextHtml($sender, $itemName, $link, $expiration);
} else {
+
+ $message = $this->l->t('Hey there,<br><br>just letting you know that %s shared »%s« with you.'.
+ '<br><a href="%s">View it!</a>', array($sender, $itemName, $link));
+
+ if ($expiration) {
+ $message .= '<br><br>';
+ $message .= $this->l->t("The share will expire at %s.", array($expiration));
+ }
+
+ $message .= '<br><br>';
+ $message .= $this->l->t('Cheers!');
+
+ return $message;
+ }
+ }
+
+ /**
+ * @brief mail body for share notification mail (text only)
+ * @param string $sender owner of the file/folder
+ * @param string $itemName name of the file/folder
+ * @param string $link link directly to the file/folder in your ownCloud
+ * @param string $expiration expiration date
+ */
+ public function getShareNotificationTextAlt($sender, $itemName, $link, $expiration=null) {
+ if ($this->themeExist('getShareNotificationTextAlt')) {
+ return $this->theme->getShareNotificationTextAlt($sender, $itemName, $link, $expiration);
+ } else {
+
+ $message = $this->l->t("Hey there,\n\njust letting you know that %s shared %s with you.\n".
+ "View it: %s", array($sender, $itemName, $link));
+
if ($expiration) {
- return $this->l->t("%s shared a %s called %s with you. " .
- "The share will expire at %s. ".
- "You can find the %s here: %s",
- array($sender, $itemType, $itemName, $expiration, $itemType, $link));
- } else {
- return $this->l->t("%s shared a %s called %s with you. ".
- "You can find the %s here: %s",
- array($sender, $itemType, $itemName, $itemType, $link));
+ $message .= "\n\n";
+ $message .= $this->l->t("The share will expire at %s.", array($expiration));
}
+
+ $message .= "\n\n";
+ $message .= $this->l->t('Cheers!');
+
+ return $message;
+ }
+ }
+
+ public function getMailFooterHtml() {
+ if ($this->themeExist('getMailFooterHtml')) {
+ return $this->theme->getMailFooterHtml();
+ } else {
+ $footer = $this->getName() . ' - ' . $this->getSlogan() .
+ '<br>' .
+ '<a href="'. $this->getBaseUrl() .'">'.$this->getBaseUrl().'</a>';
+
+ return $footer;
+ }
+ }
+
+ public function getMailFooterAlt() {
+ if ($this->themeExist('getMailFooterAlt')) {
+ return $this->theme->getMailFooterAlt();
+ } else {
+ $footer = $this->getName() . ' - ' . $this->getSlogan() .
+ "\n" . $this->getBaseUrl();
+
+ return $footer;
}
}
diff --git a/lib/public/defaults.php b/lib/public/defaults.php
index 573831e8eae..10bd07bab54 100644
--- a/lib/public/defaults.php
+++ b/lib/public/defaults.php
@@ -35,23 +35,48 @@ class Defaults {
}
/**
- * @brief subject for notification mails if a new file was shared
- * @param string $itemType typically "file" or "folder"
+ * @brief subject for share notification mail
+ * @param string $user user who shared the item
+ * @pram string $itemName name of the item
*/
- public function getShareNotificationSubject($itemType = "file") {
- return $this->defaults->getShareNotificationSubject($itemType);
+ public function getShareNotificationSubject($user, $itemName) {
+ return $this->defaults->getShareNotificationSubject($user, $itemName);
}
/**
- * @brief mail body for notification mails if a new file was shared
+ * @brief mail body for share notification mail (text only)
* @param string $sender owner of the file/folder
* @param string $itemName name of the file/folder
- * @param string $itemType typically "file" or "folder"
* @param string $link link directly to the file/folder in your ownCloud
* @param string $expiration expiration date
*/
- public function getShareNotificationText($sender, $itemName, $itemType, $link, $expiration) {
- return $this->defaults->getShareNotificationText($sender, $itemName, $itemType, $link, $expiration);
+ public function getShareNotificationTextAlt($sender, $itemName, $link, $expiration) {
+ return $this->defaults->getShareNotificationTextAlt($sender, $itemName, $link, $expiration);
+ }
+
+ /**
+ * @brief mail body for share notification mail (HTML mail)
+ * @param string $sender owner of the file/folder
+ * @param string $itemName name of the file/folder
+ * @param string $link link directly to the file/folder in your ownCloud
+ * @param string $expiration expiration date
+ */
+ public function getShareNotificationTextHtml($sender, $itemName, $link, $expiration) {
+ return $this->defaults->getShareNotificationTextHtml($sender, $itemName, $link, $expiration);
+ }
+
+ /**
+ * @brief return footer for mails (HTML mail)
+ */
+ public function getMailFooterHtml() {
+ return $this->defaults->getMailFooterHtml();
+ }
+
+ /**
+ * @brief return footer for mails (text only)
+ */
+ public function getMailFooterAlt() {
+ return $this->defaults->getMailFooterAlt();
}
/**