send mail when @-replies are received
This commit is contained in:
		@@ -34,22 +34,23 @@ class Notice extends Memcached_DataObject
 | 
				
			|||||||
    ###START_AUTOCODE
 | 
					    ###START_AUTOCODE
 | 
				
			||||||
    /* the code below is auto generated do not remove the above tag */
 | 
					    /* the code below is auto generated do not remove the above tag */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public $__table = 'notice';                             // table name
 | 
					    public $__table = 'notice';                          // table name
 | 
				
			||||||
    public $id;                                 // int(4)    primary_key not_null
 | 
					    public $id;                              // int(4)  primary_key not_null
 | 
				
			||||||
    public $profile_id;                         // int(4)     not_null
 | 
					    public $profile_id;                      // int(4)   not_null
 | 
				
			||||||
    public $uri;                             // varchar(255)  unique_key
 | 
					    public $uri;                             // varchar(255)  unique_key
 | 
				
			||||||
    public $content;                         // varchar(140)
 | 
					    public $content;                         // varchar(140)
 | 
				
			||||||
    public $rendered;                         // text()
 | 
					    public $rendered;                        // text()
 | 
				
			||||||
    public $url;                             // varchar(255)
 | 
					    public $url;                             // varchar(255)
 | 
				
			||||||
    public $created;                         // datetime()     not_null
 | 
					    public $created;                         // datetime()   not_null
 | 
				
			||||||
    public $modified;                         // timestamp()      not_null default_CURRENT_TIMESTAMP
 | 
					    public $modified;                        // timestamp()   not_null default_CURRENT_TIMESTAMP
 | 
				
			||||||
    public $reply_to;                         // int(4)
 | 
					    public $reply_to;                        // int(4)
 | 
				
			||||||
    public $is_local;                         // tinyint(1)
 | 
					    public $is_local;                        // tinyint(1)
 | 
				
			||||||
    public $source;                             // varchar(32)
 | 
					    public $source;                          // varchar(32)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Static get */
 | 
					    /* Static get */
 | 
				
			||||||
    function staticGet($k,$v=null)
 | 
					    function staticGet($k,$v=NULL) {
 | 
				
			||||||
    { return Memcached_DataObject::staticGet('Notice',$k,$v); }
 | 
					        return Memcached_DataObject::staticGet('Notice',$k,$v);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* the code above is auto generated do not remove the tag below */
 | 
					    /* the code above is auto generated do not remove the tag below */
 | 
				
			||||||
    ###END_AUTOCODE
 | 
					    ###END_AUTOCODE
 | 
				
			||||||
@@ -746,10 +747,19 @@ class Notice extends Memcached_DataObject
 | 
				
			|||||||
                        if (!$id) {
 | 
					                        if (!$id) {
 | 
				
			||||||
                            common_log_db_error($reply, 'INSERT', __FILE__);
 | 
					                            common_log_db_error($reply, 'INSERT', __FILE__);
 | 
				
			||||||
                            return;
 | 
					                            return;
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            $replied[$recipient->id] = 1;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        foreach (array_keys($replied) as $recipient) {
 | 
				
			||||||
 | 
					            $user = User::staticGet('id', $recipient);
 | 
				
			||||||
 | 
					            if ($user) {
 | 
				
			||||||
 | 
					                mail_attn_notify($user, $notice);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										50
									
								
								lib/mail.php
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								lib/mail.php
									
									
									
									
									
								
							@@ -573,3 +573,53 @@ function mail_notify_fave($other, $user, $notice)
 | 
				
			|||||||
    common_init_locale();
 | 
					    common_init_locale();
 | 
				
			||||||
    mail_to_user($other, $subject, $body);
 | 
					    mail_to_user($other, $subject, $body);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * notify a user that they have received an "attn:" message AKA "@-reply"
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param User   $user   The user who recevied the notice
 | 
				
			||||||
 | 
					 * @param Notice $notice The notice that was sent
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @return void
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function mail_notify_attn($user, $notice)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (!$user->email || !$user->emailnotifyattn) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $sender = $notice->getProfile();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $bestname = $sender->getBestName();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    common_init_locale($user->language);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $subject = sprintf(_('%s sent a notice to your attention'), $bestname);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $body = sprintf(_("%1\$s just sent a notice to your attention (an '@-reply') on %2\$s.\n\n".
 | 
				
			||||||
 | 
					                      "The notice is here:\n\n".
 | 
				
			||||||
 | 
					                      "\t%3\$s\n\n" .
 | 
				
			||||||
 | 
					                      "It reads:\n\n".
 | 
				
			||||||
 | 
					                      "\t%4\$s\n\n" .
 | 
				
			||||||
 | 
					                      "You can reply back here:\n\n".
 | 
				
			||||||
 | 
					                      "\t%5\$s\n\n" .
 | 
				
			||||||
 | 
					                      "The list of all @-replies for you here:\n\n" .
 | 
				
			||||||
 | 
					                      "%6\$s\n\n" .
 | 
				
			||||||
 | 
					                      "Faithfully yours,\n" .
 | 
				
			||||||
 | 
					                      "%2\$s\n\n" .
 | 
				
			||||||
 | 
					                      "P.S. You can turn off these email notifications here: %7\$s\n"),
 | 
				
			||||||
 | 
					                    $bestname,
 | 
				
			||||||
 | 
					                    common_config('site', 'name'),
 | 
				
			||||||
 | 
					                    common_local_url('shownotice',
 | 
				
			||||||
 | 
					                                     array('notice' => $notice->id)),
 | 
				
			||||||
 | 
					                    $notice->content,
 | 
				
			||||||
 | 
					                    common_local_url('newnotice',
 | 
				
			||||||
 | 
					                                     array('replyto' => $sender->nickname)),
 | 
				
			||||||
 | 
					                    common_local_url('replies',
 | 
				
			||||||
 | 
					                                     array('nickname' => $user->nickname)),
 | 
				
			||||||
 | 
					                    common_local_url('emailsettings'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    common_init_locale();
 | 
				
			||||||
 | 
					    mail_to_user($user, $subject, $body);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user