Robert Vogel has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/206774

Change subject: BS Notifications: Fixes/Improvements/Standardizations
......................................................................

BS Notifications: Fixes/Improvements/Standardizations

* Added formatter and decorator classes to use own intro and footer
* Used own formatting also for mw mails
* Added realname param
* bs-newuser is (really) only for admins
* bs-newuser works also on MW AddNewAccount
* bs-newuser user setting is hidden for non-admins
* Used GENDER destinction for messages
* Added real name params to every mail
* Fixed some messages in de, de-formal and en
* Fixed qqq
* Fixed some Notices
* Added de-fromal message for echo default footer
* Deaktivated mention, page-linked and reverted notifications-did not work
* Deaktivated batch mails - currently wont work in BS
=> This will kind a do for next release. TODO: crlt+a, entf, re-write

Change-Id: Id5037ba1999174c4837153c42896ee41d3604354
---
M Notifications/Notifications.class.php
M Notifications/Notifications.setup.php
M Notifications/i18n/de-formal.json
M Notifications/i18n/de.json
M Notifications/i18n/en.json
M Notifications/i18n/qqq.json
A Notifications/includes/BsEchoEmailSingle.class.php
A Notifications/includes/BsEchoTextEmailDecorator.class.php
A Notifications/includes/BsEchoTextEmailFormatter.class.php
M Notifications/includes/BsNotificationsFormatter.class.php
M ShoutBox/ShoutBox.class.php
M ShoutBox/i18n/de-formal.json
M ShoutBox/i18n/de.json
M ShoutBox/i18n/en.json
M ShoutBox/i18n/qqq.json
15 files changed, 405 insertions(+), 90 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions 
refs/changes/74/206774/1

diff --git a/Notifications/Notifications.class.php 
b/Notifications/Notifications.class.php
index 4cefc91..54d2137 100644
--- a/Notifications/Notifications.class.php
+++ b/Notifications/Notifications.class.php
@@ -22,6 +22,7 @@
  * For further information visit http://www.blue-spice.org
  *
  * @author     Stefan Widmann <widm...@hallowelt.biz>
+ * @author     Patric Wirth <wi...@hallowelt.biz>
  * @version    2.23.1
  * @package    BlueSpice_Extensions
  * @subpackage Notifications
@@ -62,7 +63,10 @@
                $this->mInfo = array(
                        EXTINFO::NAME        => 'Notifications',
                        EXTINFO::DESCRIPTION => 'bs-notifications-desc',
-                       EXTINFO::AUTHOR      => array( 
'[https://www.mediawiki.org/wiki/User:Swidmann Stefan Widmann]' ),
+                       EXTINFO::AUTHOR      => array(
+                               '[https://www.mediawiki.org/wiki/User:Swidmann 
Stefan Widmann]',
+                               'Patric Wirth',
+                       ),
                        EXTINFO::VERSION     => 'default',
                        EXTINFO::STATUS      => 'default',
                        EXTINFO::PACKAGE     => 'default',
@@ -83,6 +87,7 @@
                $this->setHook( 'ArticleDeleteComplete' );
                $this->setHook( 'TitleMoveComplete' );
                $this->setHook( 'BSUserManagerAfterAddUser' );
+               $this->setHook( 'AddNewAccount' );
                $this->setHook( 'BSShoutBoxAfterInsertShout' );
                $this->setHook( 'BeforeCreateEchoEvent' );
                $this->setHook( 'EchoGetDefaultNotifiedUsers' );
@@ -90,6 +95,7 @@
                $this->setHook( 'UserSaveOptions' );
                $this->setHook( 'BeforePageDisplay' );
                $this->setHook( 'SkinTemplateOutputPageBeforeExec' );
+               $this->setHook( 'EchoAbortEmailNotification' );
 
                // Variables
                BsConfig::registerVar( 'MW::Notifications::Active', true, 
BsConfig::LEVEL_PUBLIC|BsConfig::TYPE_BOOL, 'bs-notifications-pref-active', 
'toggle' );
@@ -204,6 +210,10 @@
                // category definition via self::$aNotificationCategories
                //  HINT: 
http://www.mediawiki.org/wiki/Echo_(Notifications)/Developer_guide#Notification_category_parameters
                foreach( self::$aNotificationCategories as $sCategory => 
$aCategoryDefinition ) {
+                       //Hide admin-only notifications
+                       if( $sCategory == 'bs-newuser-cat' && 
!$this->getUser()->isAllowed('wikiadmin') ) {
+                               continue;
+                       }
                        $notificationCategories[$sCategory] = 
$aCategoryDefinition;
                }
 
@@ -214,13 +224,14 @@
                        'title-message' => 'bs-echo-page-edit',
                        'title-params' => array( 'title' ),
                        'flyout-message' => 
'bs-notifications-email-edit-subject',
-                       'flyout-params' => array( 'titlelink', 'agentlink' ),
+                       // params are wrong, but email subject is in use here...
+                       'flyout-params' => array( 'titlelink', 'agentlink', 
'agentlink' ),
                        'email-subject-message' => 
'bs-notifications-email-edit-subject',
-                       'email-subject-params' => array( 'title', 'agent' ),
+                       'email-subject-params' => array( 'title', 'agent', 
'realname' ),
                        'email-body-message' => 'bs-notifications-email-edit',
-                       'email-body-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink' ),
+                       'email-body-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink', 'realname' ),
                        'email-body-batch-message' => 
'bs-notifications-email-edit',
-                       'email-body-batch-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink' ),
+                       'email-body-batch-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink', 'realname' ),
                        'icon' => 'bs-edit',
                );
 
@@ -231,13 +242,14 @@
                        'title-message' => 'bs-echo-page-create',
                        'title-params' => array( 'title' ),
                        'flyout-message' => 
'bs-notifications-email-new-subject',
-                       'flyout-params' => array( 'titlelink', 'agentlink' ),
+                       // params are wrong, but email subject is in use here...
+                       'flyout-params' => array( 'titlelink', 'agentlink', 
'agentlink'  ),
                        'email-subject-message' => 
'bs-notifications-email-new-subject',
-                       'email-subject-params' => array( 'title', 'agent' ),
+                       'email-subject-params' => array( 'title', 'agent', 
'realname'  ),
                        'email-body-message' => 'bs-notifications-email-new',
-                       'email-body-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink' ),
+                       'email-body-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink', 'realname' ),
                        'email-body-batch-message' => 
'bs-notifications-email-new',
-                       'email-body-batch-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink' ),
+                       'email-body-batch-params' => array( 'title', 'agent', 
'summary', 'titlelink', 'difflink', 'realname'  ),
                        'icon' => 'bs-create',
                );
 
@@ -248,13 +260,14 @@
                        'title-message' => 'bs-echo-page-delete',
                        'title-params' => array( 'title' ),
                        'flyout-message' => 
'bs-notifications-email-delete-subject',
-                       'flyout-params' => array( 'titlelink', 'agentlink' ),
+                       // params are wrong, but email subject is in use here...
+                       'flyout-params' => array( 'titlelink', 'agentlink', 
'agentlink' ),
                        'email-subject-message' => 
'bs-notifications-email-delete-subject',
-                       'email-subject-params' => array( 'title', 'agent' ),
+                       'email-subject-params' => array( 'title', 'agent', 
'realname' ),
                        'email-body-message' => 'bs-notifications-email-delete',
-                       'email-body-params' => array( 'titlelink', 'agent', 
'deletereason' ),
+                       'email-body-params' => array( 'titlelink', 'agent', 
'deletereason', 'title','realname' ),
                        'email-body-batch-message' => 
'bs-notifications-email-delete',
-                       'email-body-batch-params' => array( 'titlelink', 
'agent', 'deletereason' ),
+                       'email-body-batch-params' => array( 'titlelink', 
'agent', 'deletereason', 'title', 'realname' ),
                        'icon' => 'bs-delete',
                );
 
@@ -265,32 +278,37 @@
                        'title-message' => 'bs-echo-page-move',
                        'title-params' => array( 'title' ),
                        'flyout-message' => 
'bs-notifications-email-move-subject',
-                       'flyout-params' => array( 'title', 'agentlink', 
'newtitlelink' ),
+                       // params are wrong, but email subject is in use here...
+                       'flyout-params' => array( 'title', 'agentlink', 
'newtitlelink', 'agentlink' ),
                        'email-subject-message' => 
'bs-notifications-email-move-subject',
-                       'email-subject-params' => array( 'title', 'agent', 
'newtitle' ),
+                       'email-subject-params' => array( 'title', 'agent', 
'newtitle', 'realname' ),
                        'email-body-message' => 'bs-notifications-email-move',
-                       'email-body-params' => array( 'title', 'agent', 
'newtitle', 'newtitlelink' ),
+                       'email-body-params' => array( 'title', 'agent', 
'newtitle', 'newtitlelink', 'realname' ),
                        'email-body-batch-message' => 
'bs-notifications-email-move',
-                       'email-body-batch-params' => array( 'title', 'agent', 
'newtitle', 'newtitlelink' ),
+                       'email-body-batch-params' => array( 'title', 'agent', 
'newtitle', 'newtitlelink', 'realname' ),
                        'icon' => 'bs-move',
                );
 
-               $notifications['bs-newuser'] = array(
-                       'category' => 'bs-newuser-cat',
-                       'group' => 'neutral',
-                       'formatter-class' => 'BsNotificationsFormatter',
-                       'title-message' => 'bs-echo-page-newuser',
-                       'title-params' => array( 'userlink' ),
-                       'flyout-message' => 
'bs-notifications-email-addaccount-subject',
-                       'flyout-params' => array( 'userlink' ),
-                       'email-subject-message' => 
'bs-notifications-email-addaccount-subject',
-                       'email-subject-params' => array( 'username' ),
-                       'email-body-message' => 
'bs-notifications-email-addaccount',
-                       'email-body-params' => array( 'userlink', 'username' ),
-                       'email-body-batch-message' => 
'bs-notifications-email-addaccount',
-                       'email-body-batch-params' => array( 
'userlink','username' ),
-                       'icon' => 'bs-newuser',
-               );
+               //Hide admin-only notifications
+               if( $this->getUser()->isAllowed('wikiadmin') ) {
+                       $notifications['bs-newuser'] = array(
+                               'category' => 'bs-newuser-cat',
+                               'group' => 'neutral',
+                               'formatter-class' => 'BsNotificationsFormatter',
+                               'title-message' => 'bs-echo-page-newuser',
+                               'title-params' => array( 'userlink' ),
+                               'flyout-message' => 
'bs-notifications-email-addaccount-subject',
+                               // params are wrong, but email subject is in 
use here...
+                               'flyout-params' => array( 'userlink', 
'userlink' ),
+                               'email-subject-message' => 
'bs-notifications-email-addaccount-subject',
+                               'email-subject-params' => array( 'username', 
'realname' ),
+                               'email-body-message' => 
'bs-notifications-email-addaccount',
+                               'email-body-params' => array( 'userlink', 
'username', 'realname' ),
+                               'email-body-batch-message' => 
'bs-notifications-email-addaccount',
+                               'email-body-batch-params' => array( 'userlink', 
'username', 'realname' ),
+                               'icon' => 'bs-newuser',
+                       );
+               }
 
                $notifications['bs-shoutbox'] = array(
                        'category' => 'bs-shoutbox-cat',
@@ -299,15 +317,43 @@
                        'title-message' => 'bs-echo-page-shoutbox',
                        'title-params' => array( 'title' ),
                        'flyout-message' => 
'bs-notifications-email-shout-subject',
-                       'flyout-params' => array( 'titlelink', 'agentlink' ),
+                       // params are wrong, but email subject is in use here...
+                       'flyout-params' => array( 'titlelink', 'agentlink', 
'agentlink' ),
                        'email-subject-message' => 
'bs-notifications-email-shout-subject',
-                       'email-subject-params' => array( 'title', 'agent' ),
+                       'email-subject-params' => array( 'title', 'agent', 
'realname' ),
                        'email-body-message' => 'bs-notifications-email-shout',
-                       'email-body-params' => array( 'title', 'agent', 
'shoutmsg', 'titlelink' ),
+                       'email-body-params' => array( 'title', 'agent', 
'shoutmsg', 'titlelink', 'realname' ),
                        'email-body-batch-message' => 
'bs-notifications-email-shout',
-                       'email-body-batch-params' => array( 'title', 'agent', 
'shoutmsg', 'titlelink' ),
+                       'email-body-batch-params' => array( 'title', 'agent', 
'shoutmsg', 'titlelink', 'realname' ),
                        'icon' => 'bs-shoutbox',
                );
+
+               //Echo default Notifications for using BsNotificationsFormatter
+               $aMWNotifications = array(
+                       'welcome',
+                       'edit-user-talk',
+                       'reverted',
+                       'page-linked',
+                       'mention',
+                       'user-rights',
+               );
+               //Deactivate Notifications, cause they did not work
+               $aDeactivateNotifications = array(
+                       'page-linked' => 'article-linked',
+                       'reverted' => 'reverted',
+                       'mention' => 'mention',
+               );
+               foreach($aMWNotifications as $sKey) {
+                       if( isset($aDeactivateNotifications[$sKey]) ) {
+                               unset( $aMWNotifications[$sKey] );
+                               unset( 
$notificationCategories[$aDeactivateNotifications[$sKey]] );
+                               continue;
+                       }
+                       if( !isset($notifications[$sKey]) ) {
+                               continue;
+                       }
+                       $notifications[$sKey]['formatter-class'] = 
'BsNotificationsFormatter';
+               }
                return true;
        }
 
@@ -338,7 +384,8 @@
                        'title' => Title::newFromID( $iArticleId ),
                        'agent' => $wgUser,
                        'extra' => array(
-                               'shoutmsg' => $sMessage
+                               'shoutmsg' => $sMessage,
+                               'realname' => BsCore::getUserDisplayName( 
$wgUser ),
                        )
                ) );
 
@@ -375,6 +422,8 @@
                                'extra' => array(
                                        'summary'       =>      $summary,
                                        'titlelink' => true,
+                                       'realname' => 
BsCore::getUserDisplayName( $user ),
+                                       'difflink' => '',
                                ),
                        ) );
                        return true;
@@ -389,6 +438,7 @@
                                        'titlelink'     =>      true,
                                        'difflink'      =>      is_object( 
$revision ) ? array( 'diffparams' => array( 'diff' => $revision->getId(), 
'oldid' => $revision->getPrevious()->getId() ) ): array( 'diffparams' => 
array() ),
                                        'agentlink' => true,
+                                       'realname' => 
BsCore::getUserDisplayName( $user ),
                                ),
                ) );
 
@@ -412,7 +462,9 @@
                        'title' => $article->getTitle(),
                        'agent' => $user,
                        'extra' => array(
-                               'deletereason' => $reason
+                               'deletereason' => $reason,
+                               'title' => $article->getTitle()->getText(),
+                               'realname' => BsCore::getUserDisplayName( $user 
),
                        ),
                ) );
 
@@ -438,6 +490,7 @@
                        'agent' => $user,
                        'extra' => array(
                                'newtitle' => $newtitle,
+                               'realname' => BsCore::getUserDisplayName( $user 
),
                        )
                ) );
 
@@ -458,11 +511,39 @@
                        // TODO SW: implement own notifications formatter
                        'extra' => array(
                                'user'  => $oUser->getName(),
-                               'username'      => 
isset($aUserDetails['realname']) ? $aUserDetails['realname'] : 
$aUserDetails['username'],
+                               'username'      => $aUserDetails['username'],
                                'userlink'      => true,
+                               'realname' => empty( $aUserDetails['realname'] )
+                                       ? $aUserDetails['username']
+                                       : $aUserDetails['realname'],
                        )
                ) );
 
+
+               wfProfileOut( 'BS::'.__METHOD__ );
+               return true;
+       }
+
+       /**
+        * Sends a notification after adding an user.
+        * @param User $oUser
+        * @param Boolean $bByEmail
+        * @return bool allow other hooked methods to be executed. Always true.
+        */
+       public function onAddNewAccount( $oUser, $bByEmail ) {
+               wfProfileIn( 'BS::'.__METHOD__ );
+
+               if( $oUser->isAllowed( 'bot' ) ) return true;
+               EchoEvent::create( array(
+                       'type' => 'bs-newuser',
+                       // TODO SW: implement own notifications formatter
+                       'extra' => array(
+                               'user' => $oUser->getName(),
+                               'username' => $oUser->getName(),
+                               'userlink' => true,
+                               'realname' => BsCore::getUserDisplayName( 
$oUser ),
+                       )
+               ) );
 
                wfProfileOut( 'BS::'.__METHOD__ );
                return true;
@@ -502,4 +583,36 @@
                return true;
        }
 
+       /**
+        * Override notification method due to missing hook, pendant to 
onEchoAbortEmailNotification
+        * @param User $user
+        * @param EchoEvent $event
+        * @return boolean
+        */
+       public static function notifyWithNotification( $user, $event ) {
+               //New user notification is only for admins
+               if( $event->getType() == 'bs-newuser' ) {
+                       if( !$user->isAllowed( 'wikiadmin' ) ) {
+                               return false;
+                       }
+               }
+               EchoNotifier::notifyWithNotification( $user, $event );
+       }
+
+       /**
+        * Hook for email notification
+        * @param User $user
+        * @param EchoEvent $event
+        * @return boolean
+        */
+       public function onEchoAbortEmailNotification( $user, $event ) {
+               //New user notification is only for admins
+               if( $event->getType() == 'bs-newuser' ) {
+                       if( !$user->isAllowed( 'wikiadmin' ) ) {
+                               return false;
+                       }
+               }
+               return true;
+       }
+
 }
diff --git a/Notifications/Notifications.setup.php 
b/Notifications/Notifications.setup.php
index a664fa0..7acd74b 100644
--- a/Notifications/Notifications.setup.php
+++ b/Notifications/Notifications.setup.php
@@ -2,13 +2,20 @@
 
 BsExtensionManager::registerExtension('Notifications', 
BsRUNLEVEL::FULL|BsRUNLEVEL::REMOTE);
 
+//Do not enable Batch mails - Wont work for BS so far
+$wgEchoEnableEmailBatch = false;
+
 // MessageFiles
 $wgMessagesDirs['Notifications'] = __DIR__ . '/i18n';
 $wgExtensionMessagesFiles['Notifications'] = __DIR__ . 
'/Notifications.i18n.php';
 
 // Autoloader
 $GLOBALS['wgAutoloadClasses']['Notifications'] = __DIR__ . 
'/Notifications.class.php';
+
 $wgAutoloadClasses['BsNotificationsFormatter'] = 
__DIR__.'/includes/BsNotificationsFormatter.class.php';
+$wgAutoloadClasses['BsEchoTextEmailFormatter'] = 
__DIR__.'/includes/BsEchoTextEmailFormatter.class.php';
+$wgAutoloadClasses['BsEchoEmailSingle'] = 
__DIR__.'/includes/BsEchoEmailSingle.class.php';
+$wgAutoloadClasses['BsEchoTextEmailDecorator'] = 
__DIR__.'/includes/BsEchoTextEmailDecorator.class.php';
 
 $wgResourceModuleTemplate = array(
        'localBasePath' => 
"$IP/extensions/BlueSpiceExtensions/Notifications/resources",
@@ -40,4 +47,7 @@
 $wgDefaultUserOptions['echo-subscriptions-web-article-linked'] = true;
 $wgDefaultUserOptions['echo-subscriptions-web-mention'] = true;
 
+//Overwrite, cause there is no hook
+$wgEchoNotifiers['web'] = array( 'Notifications', 'notifyWithNotification' );
+
 unset( $wgResourceModuleTemplate );
\ No newline at end of file
diff --git a/Notifications/i18n/de-formal.json 
b/Notifications/i18n/de-formal.json
index 8c5c2a9..f3bde5e 100644
--- a/Notifications/i18n/de-formal.json
+++ b/Notifications/i18n/de-formal.json
@@ -4,8 +4,11 @@
                        "Swidmann"
                ]
        },
-       "bs-notifications-email-new": "Die Seite \"$1\" wurde von $2 neu 
{{GENDER:$2|angelegt}}.\n\nKommentar:\n$3\n\nSie können den Artikel über diesen 
Link aufrufen:\n$4",
-       "bs-notifications-email-edit": "Die Seite \"$1\" wurde von $2 
{{GENDER:$2|geändert}}.\n\nKommentar:\n$3\n\nSie können den Artikel über diese 
URL aufrufen:\n$4.\n\nUm nur die Änderungen zu sehen, folgen Sie diesem 
Link:\n$5",
-       "bs-notifications-email-move": "Die Seite \"$1\" wurde von $2 nach $3 
{{GENDER:$2|verschoben}}.\n\nSie können den Artikel über diese URL 
aufrufen:\n$4",
-       "bs-notifications-email-shout": "$2 hat auf der Seite \"$1\" eine 
Nachricht {{GENDER:$2|hinterlassen}}.\n\nNachricht:\n$3\n\nSie können den 
Artikel über diese URL aufrufen:\n$4"
+       "bs-notifications-email-new": "Die Seite \"$1\" wurde von $6 neu 
{{GENDER:$2|angelegt}}.\n\nKommentar:\n$3\n\nSie können den Artikel über diesen 
Link aufrufen:\n$4",
+       "bs-notifications-email-edit": "Die Seite \"$1\" wurde von $6 
{{GENDER:$2|geändert}}.\n\nKommentar:\n$3\n\nSie können den Artikel über diese 
URL aufrufen:\n$4.\n\nUm nur die Änderungen zu sehen, folgen Sie diesem 
Link:\n$5",
+       "bs-notifications-email-move": "Die Seite \"$1\" wurde von $5 nach $3 
{{GENDER:$2|verschoben}}.\n\nSie können den Artikel über diese URL 
aufrufen:\n$4",
+       "bs-notifications-email-delete": "Die Seite \"$4\" wurde von $5 
{{GENDER:$2|gelöscht}}.\n\nAls Grund wurde angegeben:\n$3\n\nSie können die 
Seite über diese URL aufrufen:\n$1",
+       "bs-notifications-email-addaccount": "{{GENDER:$2|Der Benutzer|Die 
Benutzerin|Das Benutzerkonto}} $3 wurde neu {{GENDER:$2|angelegt}}.\n\nSie 
können {{GENDER:$2|seine|ihre|die}} Benutzerseite über diese URL aufrufen:\n$1",
+       "bs-notifications-email-shout": "$5 hat auf der Seite \"$1\" eine 
Nachricht {{GENDER:$2|hinterlassen}}.\n\nNachricht:\n$3\n\nSie können den 
Artikel über diese URL aufrufen:\n$4",
+       "echo-email-footer-default": "$2\n\nUm zu steuern, welche E-Mails wir 
Ihnen senden, nutzen Sie Ihre 
Einstellungen:\n{{canonicalurl:{{#special:Preferences}}#mw-prefsection-echo}}\n\n$1"
 }
diff --git a/Notifications/i18n/de.json b/Notifications/i18n/de.json
index 9110ce0..09d2c10 100644
--- a/Notifications/i18n/de.json
+++ b/Notifications/i18n/de.json
@@ -19,18 +19,18 @@
        "bs-echo-page-move": "Die Seite [[:$1]] wurde verschoben",
        "bs-echo-page-newuser": "Der Benutzer $1 wurde neu angelegt.",
        "bs-echo-page-shoutbox": "Auf der Seite [[:$1]] wurde eine 
ShoutBox-Mitteilung verfasst .",
-       "bs-notifications-email-new-subject": "Seite \"$1\" wurde von $2 
{{GENDER:$2|angelegt}}",
-       "bs-notifications-email-new": "Die Seite \"$1\" wurde von $2 neu 
{{GENDER:$2|angelegt}}.\n\nKommentar:\n $3 \nDu kannst die Seite über diesen 
Link aufrufen:\n$4",
-       "bs-notifications-email-edit-subject": "Seite $1 wurde von $2 
{{GENDER:$2|geändert}}",
-       "bs-notifications-email-edit": "Die Seite \"$1\" wurde von $2 
{{GENDER:$2|geändert}}.\n\nKommentar:\n $3 \nDu kannst die Seite über diese URL 
aufrufen:\n$4.\n\nUm nur die Änderungen zu sehen, folge diesem Link:\n$5",
-       "bs-notifications-email-move-subject": "Seite $1 wurde von $2 
{{GENDER:$2|verschoben}}",
-       "bs-notifications-email-move": "Die Seite \"$1\" wurde von $2 nach $3 
{{GENDER:$2|verschoben}}.\n\nDu kannst die Seite über diese URL aufrufen:\n$4",
-       "bs-notifications-email-delete-subject": "Seite $1 wurde von $2 
{{GENDER:$2|gelöscht}}",
-       "bs-notifications-email-delete": "Die Seite \"$1\" wurde von $2 
{{GENDER:$2|gelöscht}}.\n\nAls Grund wurde angegeben:\n$3",
-       "bs-notifications-email-addaccount-subject": "Benutzer $1 wurde neu 
angelegt",
-       "bs-notifications-email-addaccount": "Der Benutzer $1 mit dem 
bürgerlichen Namen $2 wurde neu angelegt.",
-       "bs-notifications-email-shout-subject": "$2 hat auf der Seite $1 eine 
Nachricht {{GENDER:$2|hinterlassen}}",
-       "bs-notifications-email-shout": "$2 hat auf der Seite \"$1\" eine 
Nachricht {{GENDER:$2|hinterlassen}}.\n\nNachricht:\n$3\n\nDu kannst die Seite 
über diese URL aufrufen:\n$4",
+       "bs-notifications-email-new-subject": "Seite \"$1\" wurde von $3 
{{GENDER:$2|angelegt}}",
+       "bs-notifications-email-new": "Die Seite \"$1\" wurde von $6 neu 
{{GENDER:$2|angelegt}}.\n\nKommentar:\n $3 \nDu kannst die Seite über diesen 
Link aufrufen:\n$4",
+       "bs-notifications-email-edit-subject": "Seite $1 wurde von $3 
{{GENDER:$2|geändert}}",
+       "bs-notifications-email-edit": "Die Seite \"$1\" wurde von $6 
{{GENDER:$2|geändert}}.\n\nKommentar:\n $3 \nDu kannst die Seite über diese URL 
aufrufen:\n$4.\n\nUm nur die Änderungen zu sehen, folge diesem Link:\n$5",
+       "bs-notifications-email-move-subject": "Seite $1 wurde von $4 
{{GENDER:$2|verschoben}}",
+       "bs-notifications-email-move": "Die Seite \"$1\" wurde von $5 nach $3 
{{GENDER:$2|verschoben}}.\n\nDu kannst die Seite über diese URL aufrufen:\n$4",
+       "bs-notifications-email-delete-subject": "Seite $1 wurde von $3 
{{GENDER:$2|gelöscht}}",
+       "bs-notifications-email-delete": "Die Seite \"$4\" wurde von $5 
{{GENDER:$2|gelöscht}}.\n\nAls Grund wurde angegeben:\n$3\n\nDu kannst die 
Seite über diese URL aufrufen:\n$4",
+       "bs-notifications-email-addaccount-subject": "Benutzer $2 wurde neu 
{{GENDER:$1|angelegt}}",
+       "bs-notifications-email-addaccount": "{{GENDER:$2|Der Benutzer|Die 
Benutzerin|Das Benutzerkonto}} $3 wurde neu {{GENDER:$2|angelegt}}.\n\nDu 
kannst {{GENDER:$2|seine|ihre|die}} Benutzerseite über diese URL aufrufen:\n$1",
+       "bs-notifications-email-shout-subject": "$3 hat auf der Seite $1 eine 
Nachricht {{GENDER:$2|hinterlassen}}",
+       "bs-notifications-email-shout": "$5 hat auf der Seite \"$1\" eine 
Nachricht {{GENDER:$2|hinterlassen}}.\n\nNachricht:\n$3\n\nDu kannst die Seite 
über diese URL aufrufen:\n$4",
        "echo-category-title-bs-create-cat": "Benachrichtigung bei neuen 
Seiten",
        "echo-category-title-bs-edit-cat": "Benachrichtigung beim Bearbeiten 
von Seiten",
        "echo-category-title-bs-move-cat": "Benachrichtigung beim Verschieben 
von Seiten",
diff --git a/Notifications/i18n/en.json b/Notifications/i18n/en.json
index 976adfd..503b557 100644
--- a/Notifications/i18n/en.json
+++ b/Notifications/i18n/en.json
@@ -18,18 +18,18 @@
        "bs-echo-page-move": "The page [[:$1]] has been moved",
        "bs-echo-page-newuser": "The user $1 was created.",
        "bs-echo-page-shoutbox": "A new ShoutBox message on the site [[:$1]].",
-       "bs-notifications-email-new-subject": "Page $1 {{GENDER:$2|created}} by 
$2",
-       "bs-notifications-email-new": "The page \"$1\" was 
{{GENDER:$2|created}} by $2.\n\nComment:\n $3 \nYou can visit the page 
following this link:\n$4\n",
-       "bs-notifications-email-edit-subject": "Page $1 {{GENDER:$2|edited}} by 
$2",
-       "bs-notifications-email-edit": "The page \"$1\" was 
{{GENDER:$2|edited}} by $2.\n\nComment:\n $3 \nYou can visit the page following 
this link:\n$4.\n\nIf you only want to see the changes, follow this 
link:\n$5\n",
-       "bs-notifications-email-move-subject": "Page $1 {{GENDER:$2|moved}} by 
$2",
-       "bs-notifications-email-move": "The page \"$1\" was {{GENDER:$2|moved}} 
to $3 by $2. You can visit the page following this link:\n$4\n",
-       "bs-notifications-email-delete-subject": "Page $1 {{GENDER:$2|deleted}} 
by $2",
-       "bs-notifications-email-delete": "The page \"$1\" was 
{{GENDER:$2|deleted}} by $2.\n\nThis was the reason:\n$3",
-       "bs-notifications-email-addaccount-subject": "User $1 created",
-       "bs-notifications-email-addaccount": "The user $1 with real name $2 was 
created.",
-       "bs-notifications-email-shout-subject": "$2 {{GENDER:$2|posted}} a 
message on page $1",
-       "bs-notifications-email-shout": "$2 {{GENDER:$2|posted}} a message on 
page \"$1\".\n\nMessage:\n$3\n\nYou can visit the page following this 
link:\n$4.\n",
+       "bs-notifications-email-new-subject": "Page $1 {{GENDER:$2|created}} by 
$3",
+       "bs-notifications-email-new": "The page \"$1\" was 
{{GENDER:$2|created}} by $6.\n\nComment:\n $3 \nYou can visit the page 
following this link:\n$4\n",
+       "bs-notifications-email-edit-subject": "Page $1 {{GENDER:$2|edited}} by 
$3",
+       "bs-notifications-email-edit": "The page \"$1\" was 
{{GENDER:$2|edited}} by $6.\n\nComment:\n $3 \nYou can visit the page following 
this link:\n$4.\n\nIf you only want to see the changes, follow this 
link:\n$5\n",
+       "bs-notifications-email-move-subject": "Page $1 {{GENDER:$2|moved}} by 
$4",
+       "bs-notifications-email-move": "The page \"$1\" was {{GENDER:$2|moved}} 
to $3 by $5. You can visit the page following this link:\n$4\n",
+       "bs-notifications-email-delete-subject": "Page $1 {{GENDER:$2|deleted}} 
by $3",
+       "bs-notifications-email-delete": "The page \"$4\" was 
{{GENDER:$2|deleted}} by $5.\n\nThis was the reason:\n$3",
+       "bs-notifications-email-addaccount-subject": "User $2 
{{GENDER:$1|created}}",
+       "bs-notifications-email-addaccount": "{{GENDER:$2|The user}} $3 was 
created.\n\nYou can visit {{GENDER:$2|his|her|the}} user page following this 
link:\n$1",
+       "bs-notifications-email-shout-subject": "$3 {{GENDER:$2|posted}} a 
message on page $1",
+       "bs-notifications-email-shout": "$5 {{GENDER:$2|posted}} a message on 
page \"$1\".\n\nMessage:\n$3\n\nYou can visit the page following this 
link:\n$4.\n",
        "echo-category-title-bs-create-cat": "Notification for new pages",
        "echo-category-title-bs-edit-cat": "Notification for edits",
        "echo-category-title-bs-move-cat": "Notification for moves",
diff --git a/Notifications/i18n/qqq.json b/Notifications/i18n/qqq.json
index d333ee4..7b1db60 100644
--- a/Notifications/i18n/qqq.json
+++ b/Notifications/i18n/qqq.json
@@ -20,17 +20,17 @@
        "bs-echo-page-move": "Short message that a page was edited. 
Parameters:\n* $1 pagename of the moved page",
        "bs-echo-page-newuser": "Short message that a user was created. 
Parameters:\n* $1 username of the created user",
        "bs-echo-page-shoutbox": "Short message that a shoutbox entry on a page 
was created. Parameters:\n* $1 pagename of page where the shoutbox entry was 
created",
-       "bs-notifications-email-new-subject": "Short message that a page was 
edited by a user. Parameters:\n* $1 pagename of the created page\n* $2 
username",
-       "bs-notifications-email-new": "A page was created by a user with link 
to the page. Parameters:\n* $1 page that was created\n* $2 username\n* $3 
summary of page creation\n* $4 link to the page",
-       "bs-notifications-email-edit-subject": "A page was edited by a user. 
Parameters:\n* $1 page that was edited\n* $2 username",
-       "bs-notifications-email-edit": "A page was edited by a user. 
Parameters:\n* $1 edited page\n* $2 username\n* $3 summary of edit\n* $4 link 
to edited page\n* $5 difflink to the page (&curid=10&diff=22&oldid=21)",
-       "bs-notifications-email-move-subject": "A page was moved by a user. 
Parameters:\n* $1 page that was moved\n* $2 username",
-       "bs-notifications-email-move": "A page was moved to another target by a 
user. Parameters:\n* $1 page that was moved\n* $2 username\n* $3 new 
pagename\n* $4 link to new pagename",
-       "bs-notifications-email-delete-subject": "A page was deleted by a user. 
Parameters:\n* $1 page that was deleted\n* $2 username",
-       "bs-notifications-email-delete": "A page was deleted by a user and why. 
Parameters:\n* $1 page that was deleted\n* $2 username\n* $3 reason for delete",
-       "bs-notifications-email-addaccount-subject": "A user was created. 
Paramters:\n* $1 the username of the created user",
-       "bs-notifications-email-addaccount": "A user was created with link to 
userpage. Parameters:\n* $1 the userpagelink\n* $2 user real name",
-       "bs-notifications-email-shout-subject": "A user posted a 
shoutboxmessage on a page. Parameters:\n* $1 pagename\n* $2 username",
+       "bs-notifications-email-new-subject": "Short message that a page was 
edited by a user. Parameters:\n* $1 pagename of the created page\n* $2 
username\n* $3 user real name of the user who created the page",
+       "bs-notifications-email-new": "A page was created by a user with link 
to the page. Parameters:\n* $1 page that was created\n* $2 username\n* $3 
summary of page creation\n* $4 link to the page\n* $5 difflink - not in use\n* 
$6 is the real name of the user who created the page",
+       "bs-notifications-email-edit-subject": "A page was edited by a user. 
Parameters:\n* $1 page that was edited\n* $2 username of the user edited the 
page\n* $3 real name of the user who edited the page",
+       "bs-notifications-email-edit": "A page was edited by a user. 
Parameters:\n* $1 edited page\n* $2 username\n* $3 summary of edit\n* $4 link 
to edited page\n* $5 difflink to the page (&curid=10&diff=22&oldid=21)\n* $6 is 
the real name of the user who edited the page",
+       "bs-notifications-email-move-subject": "A page was moved by a user. 
Parameters:\n* $1 page that was moved\n* $2 username\n* $3 new title of the 
page\n* $4 real name of the user who moved the page",
+       "bs-notifications-email-move": "A page was moved to another target by a 
user. Parameters:\n* $1 page that was moved\n* $2 username\n* $3 new 
pagename\n* $4 link to new pagename\n* $5 is the real name of the user who 
moved the page",
+       "bs-notifications-email-delete-subject": "A page was deleted by a user. 
Parameters:\n* $1 page that was deleted\n* $2 username\n* $3 real name of the 
user who deleted the page",
+       "bs-notifications-email-delete": "A page was deleted by a user and why. 
Parameters:\n* $1 the link to the page that was deleted\n* $2 username\n* $3 
reason for delete\n* $5 title of the deleted page\n* $5 user real name of the 
user who deleted the page",
+       "bs-notifications-email-addaccount-subject": "A user was created. 
Paramters:\n* $1 the username of the created user\n* $2 the realname of the 
created user",
+       "bs-notifications-email-addaccount": "A user was created with link to 
userpage. Parameters:\n* $1 the userpagelink\n* $2 user name\n* $3 user real 
name",
+       "bs-notifications-email-shout-subject": "A user posted a 
shoutboxmessage on a page. Parameters:\n* $1 pagename\n* $2 username\n* $3 
realname",
        "bs-notifications-email-shout": "A user posted a message on a page, the 
shoutboxmessage and a link to the page. Parameters:\n* $1 pagename\n* $2 
username\n* $3 the message that was postet\n* $4 link to the page where the 
message was postet",
        "echo-category-title-bs-create-cat": "checkbox label in preferences for 
notifications on \"page created\" <msg-key automatically generated by 
[https://www.mediawiki.org/wiki/Extension:Echo Echo] 
extension>\n{{related|Echo-category-title}}",
        "echo-category-title-bs-edit-cat": "checkbox label in preferences for 
notifications on \"page edited\" <msg-key automatically generated by 
[https://www.mediawiki.org/wiki/Extension:Echo Echo] 
extension>\n{{related|Echo-category-title}}",
diff --git a/Notifications/includes/BsEchoEmailSingle.class.php 
b/Notifications/includes/BsEchoEmailSingle.class.php
new file mode 100644
index 0000000..c0a72a0
--- /dev/null
+++ b/Notifications/includes/BsEchoEmailSingle.class.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Echo Email Single class for notifications
+ *
+ * Part of BlueSpice for MediaWiki
+ *
+ * @author     Patric Wirth <wi...@hallowelt.biz>
+ * @package    BlueSpice_Extensions
+ * @subpackage Notifications
+ * @copyright  Copyright (C) 2012 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+class BsEchoEmailSingle extends EchoEmailSingle {
+
+       /**
+        * Build the intro component
+        * @return string
+        */
+       public function buildIntro() {
+               $bundle = $this->notifFormatter->getValue( 'bundleData' );
+               $email  = $this->notifFormatter->getValue( 'email' );
+
+               if ( $bundle['use-bundle'] && 
$email['batch-bundle-body']['message'] ) {
+                       $detail = $email['batch-bundle-body'];
+               } else {
+                       $detail = $email['batch-body'];
+               }
+
+               $message = $this->notifFormatter->formatFragment(
+                       $detail,
+                       $this->event,
+                       $this->user
+               );
+
+               return $this->decorator->userBasedDecorateIntro( $message, 
$this->user );
+       }
+
+       public function getTextTemplate() {
+               return <<< EOF
+%%intro%% %%summary%%
+%%action%% %%footer%%
+EOF;
+       }
+}
\ No newline at end of file
diff --git a/Notifications/includes/BsEchoTextEmailDecorator.class.php 
b/Notifications/includes/BsEchoTextEmailDecorator.class.php
new file mode 100644
index 0000000..6988c3f
--- /dev/null
+++ b/Notifications/includes/BsEchoTextEmailDecorator.class.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Text Email Decorator class for notifications
+ *
+ * Part of BlueSpice for MediaWiki
+ *
+ * @author     Patric Wirth <wi...@hallowelt.biz>
+ * @package    BlueSpice_Extensions
+ * @subpackage Notifications
+ * @copyright  Copyright (C) 2012 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+
+/**
+ * Text email decorator
+ */
+class BsEchoTextEmailDecorator extends EchoTextEmailDecorator {
+
+       /**
+        * Adds a user based greeting to the text mail
+        * @param Message $message
+        * @param User $oUser
+        * @return String
+        */
+       public function userBasedDecorateIntro( $message, $oUser ) {
+               $sRealname = BsCore::getUserDisplayName( $oUser );
+               $sReturn = wfMessage( 'bs-email-greeting-receiver' )
+                       ->params( $oUser->getName(), $sRealname )
+                       ->inLanguage( $oUser->getOption( 'language' ) )
+                       ->text()
+               ;
+               return $sReturn."\n\n".$message->text();
+       }
+
+       /**
+        * Adds the BS default footer to the text mail
+        * @global String $wgSitename
+        * @param type $address
+        * @param User $user
+        * @return String
+        */
+       public function decorateFooter( $address, $user ) {
+               global $wgSitename;
+
+               $sFooter = parent::decorateFooter( $address, $user );
+               return $sFooter.
+                       "\n---------------------\n\n"
+                       .wfMessage( 'bs-email-footer', $wgSitename )->text()
+                       ."\n\n---------------------"
+               ;
+       }
+}
\ No newline at end of file
diff --git a/Notifications/includes/BsEchoTextEmailFormatter.class.php 
b/Notifications/includes/BsEchoTextEmailFormatter.class.php
new file mode 100644
index 0000000..6dd60e9
--- /dev/null
+++ b/Notifications/includes/BsEchoTextEmailFormatter.class.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * TextEmailFormatter class for notifications
+ *
+ * Part of BlueSpice for MediaWiki
+ *
+ * @author     Patric Wirth <wi...@hallowelt.biz>
+ * @package    BlueSpice_Extensions
+ * @subpackage Notifications
+ * @copyright  Copyright (C) 2012 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU Public License v2 or 
later
+ * @filesource
+ */
+
+class BsEchoTextEmailFormatter extends EchoTextEmailFormatter {
+       /**
+        * @param $emailMode EchoEmailMode
+        */
+       public function __construct( EchoEmailMode $emailMode ) {
+               parent::__construct( $emailMode );
+               $this->emailMode->attachDecorator( new 
BsEchoTextEmailDecorator() );
+       }
+
+       /**
+        * Remove extra newline from a text content
+        * @param $text string
+        * @return string
+        */
+       protected function removeExtraNewLine( $text ) {
+               return parent::removeExtraNewLine($text);
+               //return preg_replace( "/(^\s?$){1,}/s", "\r\n", $text );
+       }
+}
\ No newline at end of file
diff --git a/Notifications/includes/BsNotificationsFormatter.class.php 
b/Notifications/includes/BsNotificationsFormatter.class.php
index df60fb1..5122010 100644
--- a/Notifications/includes/BsNotificationsFormatter.class.php
+++ b/Notifications/includes/BsNotificationsFormatter.class.php
@@ -5,7 +5,7 @@
  * Part of BlueSpice for MediaWiki
  *
  * @author     Stefan Widmann <widm...@hallowelt.biz>
-
+ * @author     Patric Wirth <wi...@hallowelt.biz>
  * @package    BlueSpice_Extensions
  * @subpackage Notifications
  * @copyright  Copyright (C) 2012 Hallo Welt! - Medienwerkstatt GmbH, All 
rights reserved.
@@ -16,6 +16,52 @@
 
        public function __construct( $params ) {
                parent::__construct( $params );
+       }
+
+       /**
+        * Create text version and/or html version for email notification
+        *
+        * @param $event EchoEvent
+        * @param $user User
+        * @param $type string deprecated
+        * @return array
+        */
+       protected function formatEmail( $event, $user, $type ) {
+               // Email should be always sent in user language
+               $this->language = $user->getOption( 'language' );
+
+               // Email digest
+               if ( $this->distributionType === 'emaildigest' ) {
+                       return $this->formatEmailDigest( $event, $user );
+               }
+
+               // Echo single email
+               $emailSingle = new BsEchoEmailSingle( $this, $event, $user );
+
+               $textEmailFormatter = new BsEchoTextEmailFormatter( 
$emailSingle );
+               global $wgSitename;
+               $content = array(
+                       // Single email subject, there is no need to to escape 
it for either html
+                       // or text email since it's always treated as plain 
text by mail client
+                       'subject' => "[$wgSitename] ".$this->formatFragment( 
$this->email['subject'], $event, $user )->text(),
+                       // Single email text body
+                       'body' => $textEmailFormatter->formatEmail(),
+               );
+
+               $format = MWEchoNotifUser::newFromUser( $user 
)->getEmailFormat();
+               if ( $format == EchoHooks::EMAIL_FORMAT_HTML ) {
+                       $htmlEmailFormatter = new EchoHTMLEmailFormatter( 
$emailSingle );
+                       $outputFormat = $this->outputFormat;
+                       $this->setOutputFormat( 'htmlemail' );
+                       // Add single email html body if user prefers html 
format
+                       $content['body'] = array (
+                               'text' => $content['body'],
+                               'html' => $htmlEmailFormatter->formatEmail()
+                       );
+                       $this->setOutputFormat( $outputFormat );
+               }
+
+               return $content;
        }
 
        /**
@@ -39,7 +85,10 @@
                        );
                } else if ( $param === 'difflink' ) {
                        $aEvent = $event->getExtra();
-                       $diffparams = $aEvent['difflink']['diffparams'];
+                       $diffparams = isset($aEvent['difflink'])
+                               ? $aEvent['difflink']['diffparams']
+                               : ''
+                       ;
 
                        $this->setDiffLink(
                                $event,
@@ -91,10 +140,14 @@
                        $aExtra = $event->getExtra();
                        $sMessage = $aExtra['shoutmsg'];
                        $message->params( $sMessage );
-               }  else if( $param === 'username' ) {
+               } else if( $param === 'username' ) {
                        $aExtra = $event->getExtra();
                        $sMessage = $aExtra['username'];
                        $message->params( $sMessage );
+               } else if( $param === 'realname' ) {
+                       $aExtra = $event->getExtra();
+                       $sMessage = $aExtra['realname'];
+                       $message->params( $sMessage );
                } else {
                        parent::processParam( $event, $param, $message, $user );
                }
diff --git a/ShoutBox/ShoutBox.class.php b/ShoutBox/ShoutBox.class.php
index c945e1c..b3c5489 100644
--- a/ShoutBox/ShoutBox.class.php
+++ b/ShoutBox/ShoutBox.class.php
@@ -538,6 +538,7 @@
         */
        public static function notifyUser( $sAction, $aUsers, $iArticleId, 
$iUserId ) {
                if ( class_exists( 'EchoEvent' ) ) {
+                       $oCurrentUser = RequestContext::getMain()->getUser();
                        foreach ( $aUsers as $oUser ) {
                                EchoEvent::create( array(
                                        'type' => 'bs-shoutbox-' . $sAction,
@@ -548,11 +549,14 @@
                                                'titlelink' => true,
                                                'difflink' => array( 
'diffparams' => array() ),
                                                'agentlink' => true,
-                                               'mentioned-user-id' => 
$oUser->getId()
+                                               'mentioned-user-id' => 
$oUser->getId(),
+                                               'realname' => 
BsCore::getUserDisplayName($oCurrentUser),
+                                               'title' => Article::newFromID( 
$iArticleId )->getTitle()->getText(),
                                        ),
                                ) );
                        }
                } else {
+                       //PW(23.04.2015): TODO - get rid of BsMailer | Echo is 
required
                        $sSubject = wfMessage(
                                        
'bs-shoutbox-notifications-title-message-subject'
                                        )->plain();
@@ -566,7 +570,7 @@
 
        /**
         * Handler for EchoGetDefaultNotifiedUsers hook.
-        * @param array $event EchoEvent to get implicitly subscribed users for
+        * @param EchoEvent $event EchoEvent to get implicitly subscribed users 
for
         * @param array &$users Array to append implicitly subscribed users to.
         * @return bool true in all cases
         */
@@ -583,6 +587,7 @@
                                $row = $oDBr->selectRow( 'user', '*', array( 
'user_id' => (int) $recipientId ) );
                                $recipient = User::newFromRow( $row );
                                $users[$recipientId] = $recipient;
+                               //$event->setExtra('username', $recipient->);
                                break;
                }
                return true;
@@ -605,9 +610,9 @@
                        'flyout-params' => array( 'agent', 'agentlink', 
'titlelink' ),
                        'email-subject-message' => 
'bs-shoutbox-notifications-title-message-subject',
                        'email-body-message' => 
'bs-shoutbox-notifications-title-message-text',
-                       'email-body-params' => array( 'agent', 'agentlink', 
'titlelink' ),
+                       'email-body-params' => array( 'agent', 'agentlink', 
'titlelink', 'realname', 'title' ),
                        'email-body-batch-message' => 
'bs-shoutbox-notifications-title-message-text',
-                       'email-body-batch-params' => array( 'agent', 
'agentlink', 'titlelink' ),
+                       'email-body-batch-params' => array( 'agent', 
'agentlink', 'titlelink', 'realname', 'title' ),
                );
                return true;
        }
diff --git a/ShoutBox/i18n/de-formal.json b/ShoutBox/i18n/de-formal.json
index 2af7eae..b8bdd15 100644
--- a/ShoutBox/i18n/de-formal.json
+++ b/ShoutBox/i18n/de-formal.json
@@ -10,5 +10,5 @@
        "bs-shoutbox-entermessage": "Bitte geben Sie eine Nachricht ein.",
        "bs-shoutbox-too-early": "Bitte warten Sie ein paar Sekunden, bevor Sie 
den nächsten Eintrag abschicken.",
        "bs-shoutbox-notifications-title-message-subject": "Sie wurden in einer 
Nachricht in der Shoutbox erwähnt.",
-       "bs-shoutbox-notifications-title-message-text": "Sie wurden von $2 in 
einer Nachricht auf der Seite \"$3\" {{GENDER:$1|erwähnt}}."
+       "bs-shoutbox-notifications-title-message-text": "Sie wurden von $4 in 
einer Nachricht auf der Seite \"$5\" {{GENDER:$1|erwähnt}}.\n\nSie können den 
Artikel über diese URL aufrufen:\n$3"
 }
diff --git a/ShoutBox/i18n/de.json b/ShoutBox/i18n/de.json
index 0d27d9f..165c050 100644
--- a/ShoutBox/i18n/de.json
+++ b/ShoutBox/i18n/de.json
@@ -32,5 +32,5 @@
        "bs-shoutbox-n-shouts": "$1 {{PLURAL:$1|Shout|Shouts}}",
        "echo-category-title-bs-shoutbox-mention-cat": "Benachrichtigung bei 
Erwähnung in einer Nachricht in der Shoutbox",
        "bs-shoutbox-notifications-title-message-subject": "Du wurdest in einer 
Nachricht in der Shoutbox erwähnt.",
-       "bs-shoutbox-notifications-title-message-text": "Du wurdest von $2 in 
einer Nachricht auf der Seite \"$3\" {{GENDER:$1|erwähnt}}."
+       "bs-shoutbox-notifications-title-message-text": "Du wurdest von $4 in 
einer Nachricht auf der Seite \"$5\" {{GENDER:$1|erwähnt}}.\n\nDu kannst den 
Artikel über diese URL aufrufen:\n$3"
 }
diff --git a/ShoutBox/i18n/en.json b/ShoutBox/i18n/en.json
index f06d8f4..e91e5fc 100644
--- a/ShoutBox/i18n/en.json
+++ b/ShoutBox/i18n/en.json
@@ -30,5 +30,5 @@
     "bs-shoutbox-n-shouts": "$1 {{PLURAL:$1|Shout|Shouts}}",
     "echo-category-title-bs-shoutbox-mention-cat": "Notification for mention 
in a shout",
     "bs-shoutbox-notifications-title-message-subject": "You've been mentioned",
-    "bs-shoutbox-notifications-title-message-text": "You've been 
{{GENDER:$1|mentioned}} by $2 in a shout on the page \"$3.\""
+    "bs-shoutbox-notifications-title-message-text": "You've been 
{{GENDER:$1|mentioned}} by $4 in a shout on the page \"$5.\"\n\nYou can visit 
the page following this link:\n$3.\n"
 }
diff --git a/ShoutBox/i18n/qqq.json b/ShoutBox/i18n/qqq.json
index f51879d..865f642 100644
--- a/ShoutBox/i18n/qqq.json
+++ b/ShoutBox/i18n/qqq.json
@@ -34,5 +34,5 @@
        "bs-shoutbox-n-shouts": "Text for the number of shouts, used in 
StateBar\n*$1 is the number of shouts, also use this for PLURAL 
distinction\n{{Identical|Shout}}",
        "echo-category-title-bs-shoutbox-mention-cat": "text found in 
notifications, let's the user decide if he wants to be notified about a mention 
in a message in the shoutbox via web, mail or both",
        "bs-shoutbox-notifications-title-message-subject": "notifications text 
used for e-mail if the user was mentioned in a shoutbox entry",
-       "bs-shoutbox-notifications-title-message-text": "text used in 
notifications in the wiki and as the mail body if the user was mentioned in a 
shoutbox entry \n*$1 the user being mentioned \n*$2 is the link to the user 
page of the user that mentioned another user. \n*$3 is the link to the page 
where the shoutbox entry was made."
+       "bs-shoutbox-notifications-title-message-text": "text used in 
notifications in the wiki and as the mail body if the user was mentioned in a 
shoutbox entry \n*$1 the user who mentioned \n*$2 is the link to the user page 
of the user that mentioned another user. \n*$3 is the link to the page where 
the shoutbox entry was made.\n*$4 is the real name of the user who 
mentioned.\n*$5 is the title of the page where the shoutbox entry was made."
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/206774
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id5037ba1999174c4837153c42896ee41d3604354
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: REL1_23
Gerrit-Owner: Robert Vogel <vo...@hallowelt.biz>
Gerrit-Reviewer: Pwirth <wi...@hallowelt.biz>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to