OSDN Git Service

applied some bug fixes
[nucleus-jp/nucleus-jp-ancient.git] / euc / nucleus / libs / NOTIFICATION.php
1 <?php\r
2 /**\r
3   * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/) \r
4   * Copyright (C) 2002-2004 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   * Class used to represent a collection of e-mail addresses, to which a\r
13   * message can be sent (e.g. comment or karma vote notification).\r
14   */\r
15 class NOTIFICATION {\r
16 \r
17         // array of addresses that need to get a notification\r
18         var $addresses = array();\r
19 \r
20         /**\r
21           * takes one string as argument, containing multiple e-mail addresses\r
22           * separated by semicolons\r
23           * eg: site@demuynck.org;nucleus@demuynck.org;foo@bar.com\r
24           */\r
25         function NOTIFICATION($addresses) {\r
26                 $this->addresses = explode(';' , $addresses);\r
27         }\r
28 \r
29         /**\r
30           * returns true if all addresses are valid\r
31           */\r
32         function validAddresses() {\r
33                 foreach ( $this->addresses as $address ) {\r
34                         if (!isValidMailAddress(trim($address))) \r
35                                 return 0;\r
36                 }\r
37                 return 1;\r
38         }\r
39         \r
40         /**\r
41           * Sends email messages to all the email addresses\r
42           */\r
43         function notify($title, $message, $from) {\r
44                 global $member;\r
45                         \r
46                 foreach ( $this->addresses as $address ) {\r
47                         $address = trim($address);\r
48                         \r
49                         if (!$address)\r
50                                 continue;\r
51                         \r
52                         // don't send messages to yourself\r
53                         if ($member->isLoggedIn() && ($member->getEmail() == $address))\r
54                                 continue;\r
55                 \r
56                         @mb_language('ja');\r
57                         @mb_internal_encoding(_CHARSET);\r
58                         @mb_send_mail($address, $title, $message, "From: ". $from);\r
59                 }\r
60         }\r
61 }\r
62 \r
63 ?>