OSDN Git Service

sync the original code
[nucleus-jp/nucleus-jp-ancient.git] / utf8 / nucleus / libs / NOTIFICATION.php
1 <?php\r
2 /*\r
3  * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)\r
4  * Copyright (C) 2002-2005 The Nucleus Group\r
5  *\r
6  * This program is free software; you can redistribute it and/or\r
7  * modify it under the terms of the GNU General Public License\r
8  * as published by the Free Software Foundation; either version 2\r
9  * of the License, or (at your option) any later version.\r
10  * (see nucleus/documentation/index.html#license for more info)\r
11  */\r
12 /**\r
13  * Class used to represent a collection of e-mail addresses, to which a\r
14  * message can be sent (e.g. comment or karma vote notification).\r
15  *\r
16  * @license http://nucleuscms.org/license.txt GNU General Public License\r
17  * @copyright Copyright (C) 2002-2005 The Nucleus Group\r
18  * @version $Id: NOTIFICATION.php,v 1.4 2005-08-13 07:33:02 kimitake Exp $\r
19  * $NucleusJP: NOTIFICATION.php,v 1.3 2005/03/12 06:19:05 kimitake Exp $\r
20  */\r
21 class NOTIFICATION {\r
22 \r
23         // array of addresses that need to get a notification\r
24         var $addresses = array();\r
25 \r
26         /**\r
27           * takes one string as argument, containing multiple e-mail addresses\r
28           * separated by semicolons\r
29           * eg: site@demuynck.org;nucleus@demuynck.org;foo@bar.com\r
30           */\r
31         function NOTIFICATION($addresses) {\r
32                 $this->addresses = explode(';' , $addresses);\r
33         }\r
34 \r
35         /**\r
36           * returns true if all addresses are valid\r
37           */\r
38         function validAddresses() {\r
39                 foreach ( $this->addresses as $address ) {\r
40                         if (!isValidMailAddress(trim($address))) \r
41                                 return 0;\r
42                 }\r
43                 return 1;\r
44         }\r
45         \r
46         /**\r
47           * Sends email messages to all the email addresses\r
48           */\r
49         function notify($title, $message, $from) {\r
50                 global $member;\r
51                         \r
52                 foreach ( $this->addresses as $address ) {\r
53                         $address = trim($address);\r
54                         \r
55                         if (!$address)\r
56                                 continue;\r
57                         \r
58                         // don't send messages to yourself\r
59                         if ($member->isLoggedIn() && ($member->getEmail() == $address))\r
60                                 continue;\r
61                 \r
62                         @mb_language('ja');\r
63                         @mb_internal_encoding(_CHARSET);\r
64                         @mb_send_mail($address, $title, $message, "From: ". $from);\r
65                 }\r
66         }\r
67 }\r
68 \r
69 ?>\r