(bug 15646) Page creation notification email is sent when a watched page is deleted
[lhc/web/wiklou.git] / includes / UserMailer.php
index b9f3597..b81f873 100644 (file)
@@ -281,7 +281,7 @@ class EmailNotification {
         * @param $minorEdit
         * @param $oldid (default: false)
         */
-       function notifyOnPageChange($editor, $title, $timestamp, $summary, $minorEdit, $oldid = false) {
+       function notifyOnPageChange($editor, $title, $timestamp, $summary, $minorEdit, $oldid = false, $deleted = false ) {
                global $wgEnotifUseJobQ, $wgEnotifWatchlist, $wgShowUpdatedMarker;
 
                if ($title->getNamespace() < 0)
@@ -328,11 +328,13 @@ class EmailNotification {
                                "summary" => $summary,
                                "minorEdit" => $minorEdit,
                                "oldid" => $oldid,
-                               "watchers" => $watchers);
+                               "watchers" => $watchers,
+                               "deleted" => $deleted
+                       );
                        $job = new EnotifNotifyJob( $title, $params );
                        $job->insert();
                } else {
-                       $this->actuallyNotifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit, $oldid, $watchers );
+                       $this->actuallyNotifyOnPageChange( $editor, $title, $timestamp, $summary, $minorEdit, $oldid, $watchers, $deleted );
                }
 
        }
@@ -350,6 +352,7 @@ class EmailNotification {
         * @param $minorEdit bool
         * @param $oldid int Revision ID
         * @param $watchers array of user IDs
+        * @param $deleted boolean If page was deleted
         */
        function actuallyNotifyOnPageChange($editor, $title, $timestamp, $summary, $minorEdit, $oldid, $watchers) {
                # we use $wgPasswordSender as sender's address
@@ -373,6 +376,7 @@ class EmailNotification {
                $this->minorEdit = $minorEdit;
                $this->oldid = $oldid;
                $this->editor = $editor;
+               $this->deleted = $deleted;
                $this->composed_common = false;
 
                $userTalkId = false;
@@ -450,6 +454,10 @@ class EmailNotification {
                        $keys['$NEWPAGE'] = wfMsgForContent( 'enotif_lastvisited', $difflink );
                        $keys['$OLDID']   = $this->oldid;
                        $keys['$CHANGEDORCREATED'] = wfMsgForContent( 'changed' );
+               } else if( $this->deleted ) {
+                       $keys['$NEWPAGE'] = wfMsgForContent( 'enotif_deletedpagetext' );
+                       $keys['$OLDID']   = '';
+                       $keys['$CHANGEDORCREATED'] = wfMsgForContent( 'deleted' );
                } else {
                        $keys['$NEWPAGE'] = wfMsgForContent( 'enotif_newpagetext' );
                        # clear $OLDID placeholder in the message template
@@ -468,7 +476,8 @@ class EmailNotification {
                $body = strtr( $body, $keys );
                $pagetitle = $this->title->getPrefixedText();
                $keys['$PAGETITLE']          = $pagetitle;
-               $keys['$PAGETITLE_URL']      = $this->title->getFullUrl();
+               $keys['$REVINFO'] = $this->deleted ? '' : 
+                       wfMsgForContent( 'enotif_rev_info' $this->title->getFullUrl() );
 
                $keys['$PAGEMINOREDIT']      = $medit;
                $keys['$PAGESUMMARY']        = $summary;