function test_expand_urls() { $tests = array('' => '', 'foo' => 'foo', 'http://example.com' => '<a href="http://example.com">http://example.com</a>', "http://1\nhttp://2" => "<a href=\"http://1\">http://1</a>\n<a href=\"http://2\">http://2</a>", 'http://example.com/foo/bar/' => '<a href="http://example.com/foo/bar/">http://example.com/foo/bar/</a>', 'www.example.com' => '<a href="http://www.example.com">www.example.com</a>', "www.1\nwww.2" => "<a href=\"http://www.1\">www.1</a>\n<a href=\"http://www.2\">www.2</a>", 'www.1; www.2' => '<a href="http://www.1">www.1</a>; <a href="http://www.2">www.2</a>', 'http://www.abc.ac.uk/def' => '<a href="http://www.abc.ac.uk/def">http://www.abc.ac.uk/def</a>'); foreach ($tests as $test => $expected) { $this->assertEqual(expand_urls($test), $expected, $test . ': %s'); } }
function print_user_messages($block = true, $config = "", $side, $index) { global $pgv_lang, $PGV_IMAGE_DIR, $TEXT_DIRECTION, $PGV_STORE_MESSAGES, $PGV_IMAGES; $usermessages = getUserMessages(PGV_USER_NAME); $id = "user_messages"; $title = print_help_link("mygedview_message_help", "qm", "", false, true); $title .= $pgv_lang["my_messages"] . " "; if ($TEXT_DIRECTION == "rtl") { $title .= getRLM(); } $title .= "(" . count($usermessages) . ")"; if ($TEXT_DIRECTION == "rtl") { $title .= getRLM(); } $content = ""; $content .= "<form name=\"messageform\" action=\"\" onsubmit=\"return confirm('" . $pgv_lang["confirm_message_delete"] . "');\">"; if (count($usermessages) == 0) { $content .= $pgv_lang["no_messages"] . "<br />"; } else { $content .= ' <script language="JavaScript" type="text/javascript"> <!-- function select_all() { '; foreach ($usermessages as $key => $message) { if (isset($message["id"])) { $key = $message["id"]; } $content .= ' var cb = document.getElementById("cb_message' . $key . '"); if (cb) { if (!cb.checked) cb.checked = true; else cb.checked = false; } '; } $content .= ' return false; } //--> </script> '; $content .= "<input type=\"hidden\" name=\"action\" value=\"deletemessage\" />"; $content .= "<table class=\"list_table\"><tr>"; $content .= "<td class=\"list_label\">" . $pgv_lang["delete"] . "<br /><a href=\"javascript:;\" onclick=\"return select_all();\">" . $pgv_lang["all"] . "</a></td>"; $content .= "<td class=\"list_label\">" . $pgv_lang["message_subject"] . "</td>"; $content .= "<td class=\"list_label\">" . $pgv_lang["date_created"] . "</td>"; $content .= "<td class=\"list_label\">" . $pgv_lang["message_from"] . "</td>"; $content .= "</tr>"; foreach ($usermessages as $key => $message) { if (isset($message["id"])) { $key = $message["id"]; } $content .= "<tr>"; $content .= "<td class=\"list_value_wrap\"><input type=\"checkbox\" id=\"cb_message{$key}\" name=\"message_id[]\" value=\"{$key}\" /></td>"; $showmsg = preg_replace("/(\\w)\\/(\\w)/", "\$1/<span style=\"font-size:1px;\"> </span>\$2", PrintReady($message["subject"])); $showmsg = str_replace("@", "@<span style=\"font-size:1px;\"> </span>", $showmsg); $content .= "<td class=\"list_value_wrap\"><a href=\"javascript:;\" onclick=\"expand_layer('message{$key}'); return false;\"><img id=\"message{$key}_img\" src=\"" . $PGV_IMAGE_DIR . "/" . $PGV_IMAGES["plus"]["other"] . "\" border=\"0\" alt=\"" . $pgv_lang["show_details"] . "\" title=\"" . $pgv_lang["show_details"] . "\" /> <b>" . $showmsg . "</b></a></td>"; if (!empty($message["created"])) { $time = strtotime($message["created"]); } else { $time = time(); } $content .= "<td class=\"list_value_wrap\">" . format_timestamp($time) . "</td>"; $content .= "<td class=\"list_value_wrap\">"; $user_id = get_user_id($message["from"]); if ($user_id) { $content .= PrintReady(getUserFullName($user_id)); if ($TEXT_DIRECTION == "ltr") { $content .= " " . getLRM() . " - " . htmlspecialchars($user_id, ENT_COMPAT, 'UTF-8') . getLRM(); } else { $content .= " " . getRLM() . " - " . htmlspecialchars($user_id, ENT_COMPAT, 'UTF-8') . getRLM(); } } else { $content .= "<a href=\"mailto:" . $message["from"] . "\">" . str_replace("@", "@<span style=\"font-size:1px;\"> </span>", $message["from"]) . "</a>"; } $content .= "</td>"; $content .= "</tr>"; $content .= "<tr><td class=\"list_value_wrap\" colspan=\"5\"><div id=\"message{$key}\" style=\"display: none;\">"; $message["body"] = nl2br(htmlspecialchars($message["body"], ENT_COMPAT, 'UTF-8')); $message["body"] = expand_urls($message["body"]); $content .= PrintReady($message["body"]) . "<br /><br />"; if (strpos($message["subject"], "RE:") === false) { $message["subject"] = "RE:" . $message["subject"]; } if ($user_id) { $content .= "<a href=\"javascript:;\" onclick=\"reply('" . $user_id . "', '" . $message["subject"] . "'); return false;\">" . $pgv_lang["reply"] . "</a> | "; } $content .= "<a href=\"" . encode_url("index.php?action=deletemessage&message_id={$key}") . "\" onclick=\"return confirm('" . $pgv_lang["confirm_message_delete"] . "');\">" . $pgv_lang["delete"] . "</a></div></td></tr>"; } $content .= "</table>"; $content .= "<input type=\"submit\" value=\"" . $pgv_lang["delete_selected_messages"] . "\" /><br /><br />"; } if (get_user_count() > 1) { $content .= $pgv_lang["message"] . " <select name=\"touser\">"; if (PGV_USER_IS_ADMIN) { $content .= "<option value=\"all\">" . $pgv_lang["broadcast_all"] . "</option>"; $content .= "<option value=\"never_logged\">" . $pgv_lang["broadcast_never_logged_in"] . "</option>"; $content .= "<option value=\"last_6mo\">" . $pgv_lang["broadcast_not_logged_6mo"] . "</option>"; } foreach (get_all_users() as $user_id => $user_name) { if ($user_id != PGV_USER_ID && get_user_setting($user_id, 'verified_by_admin') == 'yes' && get_user_setting($user_id, 'contactmethod') != 'none') { $content .= "<option value=\"" . $user_name . "\">" . PrintReady(getUserFullName($user_id)) . " "; if ($TEXT_DIRECTION == "ltr") { $content .= stripLRMRLM(getLRM() . " - " . $user_name . getLRM()); } else { $content .= stripLRMRLM(getRLM() . " - " . $user_name . getRLM()); } $content .= "</option>"; } } $content .= "</select><input type=\"button\" value=\"" . $pgv_lang["send"] . "\" onclick=\"message(document.messageform.touser.options[document.messageform.touser.selectedIndex].value, 'messaging2', ''); return false;\" />"; } $content .= "</form>"; global $THEME_DIR; if ($block) { require $THEME_DIR . 'templates/block_small_temp.php'; } else { require $THEME_DIR . 'templates/block_main_temp.php'; } }
static function userMessages() { global $pgv_lang, $PGV_IMAGE_DIR, $TEXT_DIRECTION, $PGV_STORE_MESSAGES, $PGV_IMAGES; $usermessages = getUserMessages(PGV_USER_NAME); $content = "<form name=\"messageform\" action=\"\" onsubmit=\"return confirm('{$pgv_lang['confirm_message_delete']}');\">"; if (count($usermessages) == 0) { $content .= "{$pgv_lang['no_messages']}<br />\n"; } else { $content .= ' <script language="JavaScript" type="text/javascript"> <!-- function select_all() { '; foreach ($usermessages as $k => $message) { if (isset($message['id'])) { $k = $message['id']; } $content .= ' var cb = document.getElementById("cb_message' . $k . '"); if (cb) { if (!cb.checked) cb.checked = true; else cb.checked = false; } '; } $content .= ' return false; } //--> </script> '; $content .= '<input type="hidden" name="action" value="deletemessage" />' . '<table class="list_table"><tr>' . "<td class=\"list_label\">{$pgv_lang['delete']}<br />\n<a href=\"javascript:;\" onclick=\"return select_all();\">{$pgv_lang['all']}</a></td>\n" . "<td class=\"list_label\">{$pgv_lang['message_subject']}</td>\n" . "<td class=\"list_label\">{$pgv_lang['date_created']}</td>\n" . "<td class=\"list_label\">{$pgv_lang['message_from']}</td>\n" . "</tr>\n"; foreach ($usermessages as $k => $message) { if (isset($message['id'])) { $k = $message['id']; } $content .= "<tr>\n<td class=\"list_value_wrap\"><input type=\"checkbox\" id=\"cb_message{$k}\" name=\"message_id[]\" value=\"{$k}\" /></td>\n"; $showmsg = preg_replace("/(\\w)\\/(\\w)/", "\$1/<span style=\"font-size:1px;\"> </span>\$2", PrintReady($message['subject'])); $showmsg = preg_replace("/@/", "@<span style=\"font-size:1px;\"> </span>", $showmsg); $content .= "<td class=\"list_value_wrap\"><a href=\"javascript:;\" onclick=\"expand_layer('message{$k}'); return false;\"><b>{$showmsg}</b> <img id=\"message{$k}_img\" src=\"{$PGV_IMAGE_DIR}/{$PGV_IMAGES['plus']['other']}\" border=\"0\" alt=\"\" title=\"\" /></a></td>\n"; if (!empty($message['created'])) { $t = strtotime($message['created']); } else { $t = time(); } $content .= '<td class="list_value_wrap">' . format_timestamp($t) . "</td>\n" . '<td class="list_value_wrap">'; $user_id = get_user_id($message['from']); if ($user_id) { $content .= PrintReady(getUserFullName($user_id)); if ($TEXT_DIRECTION == 'ltr') { $content .= ' ' . getLRM() . ' - ' . htmlspecialchars($user_id, ENT_COMPAT, 'UTF-8') . getLRM(); } else { $content .= ' ' . getRLM() . ' - ' . htmlspecialchars($user_id, ENT_COMPAT, 'UTF-8') . getRLM(); } } else { $content .= "<a href=\"mailto:{$user_id}\">" . preg_replace("/@/", "@<span style=\"font-size:1px;\"> </span>", $user_id) . '</a>'; } $content .= "</td>\n" . "</tr>\n" . "<tr>\n<td class=\"list_value_wrap\" colspan=\"5\"><div id=\"message{$k}\" style=\"display: none;\">"; $message['body'] = expand_urls(nl2br(htmlspecialchars($message['body'], ENT_COMPAT, 'UTF-8'))); $content .= PrintReady($message['body']) . "<br />\n<br />\n"; if (preg_match("/RE:/", $message["subject"]) == 0) { $message['subject'] = "RE:{$message['subject']}"; } if ($user_id) { $content .= "<a href=\"javascript:;\" onclick=\"reply('{$user_id}', '{$message['subject']}'); return false;\">{$pgv_lang['reply']}</a> | "; } $content .= "<a href=\"" . encode_url("index.php?action=deletemessage&message_id={$k}") . "\" onclick=\"return confirm('{$pgv_lang['confirm_message_delete']}');\">{$pgv_lang['delete']}</a></div></td>\n</tr>\n"; } $content .= "</table>\n" . "<input type=\"submit\" value=\"{$pgv_lang['delete_selected_messages']}\" /><br />\n<br />\n"; } if (get_user_count() > 1) { $content .= "{$pgv_lang['message']} <select name=\"touser\">"; if (PGV_USER_IS_ADMIN) { $content .= "<option value=\"all\">{$pgv_lang['broadcast_all']}</option>\n" . "<option value=\"never_logged\">{$pgv_lang['broadcast_never_logged_in']}</option>\n" . "<option value=\"last_6mo\">{$pgv_lang['broadcast_not_logged_6mo']}</option>\n"; } foreach (get_all_users() as $user_id => $user_name) { if ($user_id != PGV_USER_ID && get_user_setting($user_id, 'verified_by_admin') == 'yes') { $content .= "<option value=\"{$user_id}\">" . PrintReady(getUserFullName($user_id)) . ' '; if ($TEXT_DIRECTION == 'ltr') { $content .= getLRM() . " - {$user_id}" . getLRM(); } else { $content .= getRLM() . " - {$user_id}" . getRLM(); } $content .= "</option>\n"; } } $content .= "</select>\n<input type=\"button\" value=\"{$pgv_lang['send']}\" onclick=\"message(document.messageform.touser.options[document.messageform.touser.selectedIndex].value, 'messaging2', ''); return false;\" />\n"; } $content .= "</form>\n"; return $content; }