| 1 | <?php |
|---|
| 2 | |
|---|
| 3 | require_once(IA_ROOT_DIR . "common/db/db.php"); |
|---|
| 4 | require_once(IA_ROOT_DIR . "common/textblock.php"); |
|---|
| 5 | require_once(IA_ROOT_DIR . "common/user.php"); |
|---|
| 6 | require_once(IA_ROOT_DIR . "www/wiki/wiki.php"); |
|---|
| 7 | require_once(IA_ROOT_DIR . "www/url.php"); |
|---|
| 8 | |
|---|
| 9 | // Render HTML newsletter for recipient $user, from given $textblock. |
|---|
| 10 | // The newsletter is personalized for the recipient by doing a |
|---|
| 11 | // textblock_template_replace(...) for %username% tags. |
|---|
| 12 | function newsletter_body_html($textblock, $user, $in_browser = false) { |
|---|
| 13 | log_assert_valid(textblock_validate($textblock)); |
|---|
| 14 | $user_is_anonymous = !$user; |
|---|
| 15 | if ($user_is_anonymous) { |
|---|
| 16 | // Anonymous user. Build fake user object. |
|---|
| 17 | $user = newsletter_anonymous_user(); |
|---|
| 18 | } |
|---|
| 19 | log_assert_valid(user_validate($user)); |
|---|
| 20 | |
|---|
| 21 | // Personalize newsletter and process textile. |
|---|
| 22 | |
|---|
| 23 | $replace = array("username" => $user['username']); |
|---|
| 24 | textblock_template_replace($textblock, $replace); |
|---|
| 25 | $body_html = wiki_process_text($textblock['text']); |
|---|
| 26 | $subject = newsletter_subject($textblock, $user); |
|---|
| 27 | |
|---|
| 28 | // Generate HTML using newsletter template. |
|---|
| 29 | |
|---|
| 30 | ob_start(); |
|---|
| 31 | include(IA_ROOT_DIR . "common/newsletter_template.php"); |
|---|
| 32 | $buffer = ob_get_contents(); |
|---|
| 33 | ob_end_clean(); |
|---|
| 34 | return $buffer; |
|---|
| 35 | } |
|---|
| 36 | |
|---|
| 37 | // Alternate body in text/plain format. This should be displayed by email |
|---|
| 38 | // clients that don't support HTML. |
|---|
| 39 | function newsletter_body_alternate($textblock, $user) { |
|---|
| 40 | log_assert_valid(user_validate($user)); |
|---|
| 41 | log_assert_valid(textblock_validate($textblock)); |
|---|
| 42 | $unsubscribe_url = url_absolute(url_unsubscribe($user['username'], |
|---|
| 43 | user_unsubscribe_key($user))); |
|---|
| 44 | return join("", array( |
|---|
| 45 | "Acest email este redactat in format HTML. Daca nu se afiseaza\n", |
|---|
| 46 | "corect, te rog sa il vizualizezi in browser la adresa:\n\n", |
|---|
| 47 | url_absolute(url_newsletter($textblock['name'])), "\n\n\n", |
|---|
| 48 | "Ai primit acest mesaj deoarece esti inscris pe ", |
|---|
| 49 | url_absolute(url_home()), "\n", "cu numele \"{$user['full_name']}\", ", |
|---|
| 50 | "utilizator \"{$user['username']}\",\n", |
|---|
| 51 | "adresa de email \"{$user['email']}\".\n\n", |
|---|
| 52 | "Daca nu mai doresti sa primesti astfel de mesaje te poti dezabona\n", |
|---|
| 53 | "acum la adresa:\n\n", $unsubscribe_url)); |
|---|
| 54 | } |
|---|
| 55 | |
|---|
| 56 | // Generate newsletter subject for recipient $user. |
|---|
| 57 | function newsletter_subject($textblock, $user) { |
|---|
| 58 | log_assert_valid(textblock_validate($textblock)); |
|---|
| 59 | if (!$user) { |
|---|
| 60 | // Anonymous user. Build fake user object. |
|---|
| 61 | $user = newsletter_anonymous_user(); |
|---|
| 62 | } |
|---|
| 63 | log_assert_valid(user_validate($user)); |
|---|
| 64 | return 'infoarena: '.$textblock['title']; |
|---|
| 65 | } |
|---|
| 66 | |
|---|
| 67 | // Fake, anonymous recipient. |
|---|
| 68 | function newsletter_anonymous_user() { |
|---|
| 69 | $user = user_init(); |
|---|
| 70 | $user['username'] = 'anonymous'; |
|---|
| 71 | $user['password'] = '*'; |
|---|
| 72 | $user['full_name'] = 'Utilizator infoarena'; |
|---|
| 73 | $user['email'] = 'utilizator-infoarena@example.com'; |
|---|
| 74 | $user['newsletter'] = '1'; |
|---|
| 75 | return $user; |
|---|
| 76 | } |
|---|
| 77 | |
|---|
| 78 | ?> |
|---|