function spamhurdle_captcha_build_form($data) { if (!isset($data['captcha']['html_form'])) { return $data; } global $PHORUM; $config = $PHORUM['mod_spamhurdles']['captcha']; $captcha = $data['captcha']; $form = $captcha['html_form']; // The actual value in the captcha is named {FIELDVALUE} in the // generated captcha HTML code. Replace it with the actual value. $fn = $captcha["input_fieldname"]; $fieldvalue = isset($_POST[$fn]) ? $_POST[$fn] : ""; $form = str_replace("{FIELDVALUE}", htmlspecialchars($fieldvalue), $form); // Replace SPOKENURL with the URL for the spoken captcha code. if ($config["spoken_captcha"] && file_exists($config["flite_location"])) { $url = phorum_get_url(PHORUM_ADDON_URL, 'module=spamhurdles', 'hurdle=captcha', 'spokencaptcha=' . rawurlencode(spamhurdles_encrypt($captcha['spoken_text']))); $form = str_replace('{SPOKENURL}', htmlspecialchars($url), $form); } // Replace IMAGE with the URL for the captcha image. $url = phorum_get_url(PHORUM_ADDON_URL, 'module=spamhurdles', 'hurdle=captcha', 'imagecaptcha=' . rawurlencode(spamhurdles_encrypt(array('question' => $captcha['question'], 'type' => $captcha['type'])))); $form = str_replace('{IMAGEURL}', htmlspecialchars($url), $form); if (!empty($data['use_editor_block'])) { $PHORUM['DATA']['CONTENT'] = $form; $PHORUM['DATA']['EDITOR'] = $data['use_editor_block']; include phorum_get_template('spamhurdles::editor_block'); } else { print $form; } return $data; }
/** * just returns to the list and exits the program */ function phorum_return_to_list() { $PHORUM=$GLOBALS["PHORUM"]; if(!empty($PHORUM["forum_id"])){ phorum_redirect_by_url(phorum_get_url(PHORUM_LIST_URL)); }else{ phorum_redirect_by_url(phorum_get_url(PHORUM_INDEX_URL)); } exit(); }
phorum_user_subscribe( $PHORUM['user']['user_id'], $message["forum_id"], $thread, PHORUM_SUBSCRIPTION_BOOKMARK ); $PHORUM["DATA"]["MESSAGE"]=$PHORUM["DATA"]["LANG"]["NoMoreEmails"]; $PHORUM["DATA"]["URL"]["REDIRECT"]=phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $thread); $PHORUM["DATA"]["BACKMSG"]=$PHORUM["DATA"]["LANG"]["BackToThread"]; $template="message"; } elseif(!empty($_POST)) { // the user has submitted the form $type = (isset($_POST["send_email"])) ? PHORUM_SUBSCRIPTION_MESSAGE : PHORUM_SUBSCRIPTION_BOOKMARK; phorum_user_subscribe( $PHORUM['user']['user_id'], $message["forum_id"], $thread, $type ); $PHORUM["DATA"]["URL"]["REDIRECT"]=phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $thread); $PHORUM["DATA"]["BACKMSG"]=$PHORUM["DATA"]["LANG"]["BackToThread"]; $PHORUM["DATA"]["MESSAGE"]=$PHORUM["DATA"]["LANG"]["BookmarkedThread"]; $template="message"; } else { // we are following a new thread $PHORUM["DATA"]["URL"]["ACTION"]=phorum_get_url(PHORUM_FOLLOW_ACTION_URL); $PHORUM["DATA"]["SUBJECT"]=htmlspecialchars($message["subject"]); $PHORUM["DATA"]["THREAD"]=$thread; $PHORUM["DATA"]["FORUM_ID"]=$PHORUM["forum_id"]; $template="follow"; } // set all our common URL's phorum_build_common_urls(); include phorum_get_template("header"); phorum_hook("after_header"); include phorum_get_template($template); phorum_hook("before_footer"); include phorum_get_template("footer");
$forum_ids[] = $forum["forum_id"]; } $subscr_array = phorum_api_user_list_subscriptions($PHORUM['user']['user_id'], $subdays, $forum_ids); // storage for newflags $PHORUM['user']['newinfo'] = array(); // go through all subscriptions $subscr_array_final = array(); unset($subscr_array["forum_ids"]); foreach ($subscr_array as $id => $data) { $data['forum'] = $forums[$data['forum_id']]['name']; $data['raw_datestamp'] = $data["modifystamp"]; $data['datestamp'] = phorum_date($PHORUM["short_date_time"], $data["modifystamp"]); $data['raw_lastpost'] = $data['modifystamp']; $data['lastpost'] = phorum_date($PHORUM["short_date_time"], $data["modifystamp"]); $data["URL"]["READ"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $data["forum_id"], $data["thread"]); $data["URL"]["NEWPOST"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $data["forum_id"], $data["thread"], "gotonewpost"); // Check if there are new messages for the current thread. if (!isset($PHORUM['user']['newinfo'][$data["forum_id"]])) { $PHORUM['user']['newinfo'][$data["forum_id"]] = null; if ($PHORUM['cache_newflags']) { $newflagkey = $data["forum_id"] . "-" . $PHORUM['user']['user_id']; $PHORUM['user']['newinfo'][$data["forum_id"]] = phorum_cache_get('newflags', $newflagkey, $forums[$data["forum_id"]]['cache_version']); } if ($PHORUM['user']['newinfo'][$data["forum_id"]] == null) { $PHORUM['user']['newinfo'][$data["forum_id"]] = phorum_db_newflag_get_flags($data["forum_id"]); if ($PHORUM['cache_newflags']) { phorum_cache_put('newflags', $newflagkey, $PHORUM['user']['newinfo'][$data["forum_id"]], 86400, $forums[$data["forum_id"]]['cache_version']); } } } $new = array();
function phorum_mod_bbcode_editor_tool_plugin() { global $PHORUM; $lang = $PHORUM['DATA']['LANG']['mod_bbcode']; $nr_of_enabled_tags = 0; $enabled = isset($PHORUM['mod_bbcode']['enabled']) ? $PHORUM['mod_bbcode']['enabled'] : array(); $builtin = $PHORUM['MOD_BBCODE']['BUILTIN']; // Register the tool buttons. foreach ($PHORUM['mod_bbcode_parser']['taginfo'] as $id => $taginfo) { // Skip tool if no editor tools button is implemented. if (!$taginfo[BBCODE_INFO_HASEDITORTOOL]) { continue; } // Check if the editor tool should be shown. If not, then skip // to the next tag. If there are no settings saved yet for the // module, then use the settings from the builtin tag list. if (isset($enabled[$id]) && $enabled[$id] != 2 || !isset($PHORUM['mod_bbcode']['enabled'][$id]) && isset($builtin[$id]) && $builtin[$id][BBCODE_INFO_DEFAULTSTATE] != 2) { continue; } // Keep track of the number of enabled tags. $nr_of_enabled_tags++; // Determine the description to use for the tool. If we can find // a description in the language strings, then we use that one. // Otherwise, we simply fall back to the less descriptive feature id. $description = isset($lang[$id]) ? $lang[$id] : $id; // Register the tool button with the Editor Tools module. editor_tools_register_tool($id, $description, "./mods/bbcode/icons/{$id}.gif", "editor_tools_handle_{$id}()"); } // Register the bbcode help page, unless no tags were enabled at all. if ($nr_of_enabled_tags > 0) { $description = isset($lang['bbcode help']) ? $lang['bbcode help'] : 'BBcode help'; editor_tools_register_help($description, phorum_get_url(PHORUM_ADDON_URL, 'module=bbcode', 'action=help')); } // Make language strings available for the editor tools javascript code. editor_tools_register_translations($lang); }
$rows = array(); // get the thread set started $rows = phorum_db_get_unapproved_list($forum, $showwaiting, $moddays); // loop through and read all the data in. foreach ($rows as $key => $row) { $numunapproved++; $rows[$key]['forumname'] = $foruminfo[$forum]['name']; $rows[$key]['checkvar'] = $checkvar; if ($checkvar) { $checkvar = 0; } $rows[$key]['forum_id'] = $forum; $rows[$key]["URL"]["READ"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $forum, $row["thread"], $row['message_id']); // we need to fake the forum_id here $PHORUM["forum_id"] = $forum; $rows[$key]["URL"]["APPROVE_MESSAGE"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_APPROVE_MESSAGE, $row["message_id"], "prepost=1", "old_forum=" . $oldforum, "onlyunapproved=" . $showwaiting, "moddays=" . $moddays); $rows[$key]["URL"]["APPROVE_TREE"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_APPROVE_MESSAGE_TREE, $row["message_id"], "prepost=1", "old_forum=" . $oldforum, "onlyunapproved=" . $showwaiting, "moddays=" . $moddays); $rows[$key]["URL"]["DELETE"] = phorum_get_url(PHORUM_MODERATION_URL, PHORUM_DELETE_TREE, $row["message_id"], "prepost=1", "old_forum=" . $oldforum, "onlyunapproved=" . $showwaiting, "moddays=" . $moddays); $PHORUM["forum_id"] = $oldforum; $rows[$key]["raw_short_datestamp"] = $row["datestamp"]; $rows[$key]["short_datestamp"] = phorum_date($PHORUM["short_date_time"], $row["datestamp"]); } require_once "./include/format_functions.php"; $rows = phorum_format_messages($rows); $PHORUM['DATA']['PREPOST'] = array_merge($PHORUM['DATA']['PREPOST'], $rows); } if (!$numunapproved) { $PHORUM["DATA"]["UNAPPROVEDMESSAGE"] = $PHORUM["DATA"]["LANG"]["NoUnapprovedMessages"]; } $PHORUM["DATA"]["HEADING"] = $PHORUM["DATA"]["LANG"]["UnapprovedMessages"]; $template = "cc_prepost";
$redir = htmlspecialchars($_REQUEST["redir"]); } elseif (!empty( $_SERVER["HTTP_REFERER"])) { $base = strtolower(phorum_get_url(PHORUM_BASE_URL)); $len = strlen($base); if (strtolower(substr($_SERVER["HTTP_REFERER"],0,$len)) == $base) { $redir = htmlspecialchars($_SERVER["HTTP_REFERER"]); } } if (! isset($redir)) { $redir = phorum_get_url(PHORUM_LIST_URL); } // Setup template data. $PHORUM["DATA"]["LOGIN"]["redir"] = $redir; $PHORUM["DATA"]["URL"]["REGISTER"] = phorum_get_url( PHORUM_REGISTER_URL ); $PHORUM["DATA"]["URL"]["ACTION"] = phorum_get_url( PHORUM_LOGIN_ACTION_URL ); $PHORUM["DATA"]["LOGIN"]["forum_id"] = ( int )$PHORUM["forum_id"]; $PHORUM["DATA"]["LOGIN"]["username"] = htmlspecialchars( $username ); $PHORUM["DATA"]["ERROR"] = htmlspecialchars( $error ); $PHORUM["DATA"]["OKMSG"] = htmlspecialchars( $okmsg ); // Set the field to set the focus to after loading. $PHORUM["DATA"]["FOCUS_TO_ID"] = empty($username) ? "username" : "password"; // Display the page. include phorum_get_template( "header" ); phorum_hook( "after_header" ); include phorum_get_template( $template ); phorum_hook( "before_footer" ); include phorum_get_template( "footer" );
$forum_info = phorum_get_forum_info(2); $forum_matches = array(); foreach ($forum_info as $id => $name) { $forum_matches[htmlspecialchars($name)] = "message.forum_id = {$id}"; } $ruledefs = array("body" => array("label" => "Message body", "matches" => array("contains" => "message.body = *QUERY*", "does not contain" => "message.body != *QUERY*"), "queryfield" => "string"), "subject" => array("label" => "Message subject", "matches" => array("is" => "message.subject = QUERY", "is not" => "message.subject != QUERY", "contains" => "message.subject = *QUERY*", "does not contain" => "message.subject != *QUERY*"), "queryfield" => "string"), "date" => array("label" => "Message date", "matches" => array("posted on" => "function:prepare_filter_date", "posted on or before" => "function:prepare_filter_date", "posted before" => "function:prepare_filter_date", "posted after" => "function:prepare_filter_date", "posted on or after" => "function:prepare_filter_date"), "prepare_filter_date" => "message.datestamp", "queryfield" => "date"), "status" => array("label" => "Message status", "matches" => array("approved" => "message.status = " . PHORUM_STATUS_APPROVED, "waiting for approval (on hold)" => "message.status = " . PHORUM_STATUS_HOLD, "disapproved by moderator" => "message.status = " . PHORUM_STATUS_HIDDEN, "hidden (on hold or disapproved)" => "message.status != " . PHORUM_STATUS_APPROVED)), "messagetype" => array("label" => "Message type", "matches" => array("thread starting messages" => "message.parent_id = 0", "reply messages" => "message.parent_id != 0")), "forum" => array("label" => "Forum", "matches" => $forum_matches), "author" => array("label" => "Author name", "matches" => array("is" => "message.author = QUERY", "is not" => "message.author != QUERY", "contains" => "message.author = *QUERY*", "does not contain" => "message.author != *QUERY*", "starts with" => "message.author = QUERY*", "does not start with" => "message.author != QUERY*", "ends with" => "message.author = *QUERY", "does not end with" => "message.author != QUERY*"), "queryfield" => "string"), "username" => array("label" => "Author username", "matches" => array("is" => "user.username = QUERY", "is not" => "user.username != QUERY", "contains" => "user.username = *QUERY*", "does not contain" => "user.username != *QUERY*", "starts with" => "user.username = QUERY*", "does not start with" => "user.username != QUERY*", "ends with" => "user.username = *QUERY", "does not end with" => "user.username != *QUERY"), "queryfield" => "string"), "user_id" => array("label" => "Author user id", "matches" => array("is" => "message.user_id = QUERY", "is not" => "message.user_id != QUERY"), "queryfield" => "string"), "authortype" => array("label" => "Author type", "matches" => array("registered user" => "message.user_id != 0", "anonymous user" => "message.user_id = 0", "moderator" => "message.moderator_post = 1", "administrator" => "user.admin = 1", "active user" => "user.active = " . PHORUM_USER_ACTIVE, "deactivated user" => "user.active = " . PHORUM_USER_INACTIVE)), "ipaddress" => array("label" => "Author IP/hostname", "matches" => array("is" => "message.ip = QUERY", "is not" => "message.ip != QUERY", "starts with" => "message.ip = QUERY*", "does not start with" => "message.ip != QUERY*", "ends with" => "message.ip = *QUERY", "does not end with" => "message.ip != *QUERY"), "queryfield" => "string"), "threadstate" => array("label" => "Thread status", "matches" => array("open for posting" => "thread.closed = 0", "closed for posting" => "thread.closed = 1")), "threadlastpost" => array("label" => "Thread last post", "matches" => array("posted on or before" => "function:prepare_filter_date", "posted before" => "function:prepare_filter_date", "posted after" => "function:prepare_filter_date", "posted on or after" => "function:prepare_filter_date"), "prepare_filter_date" => "thread.modifystamp", "queryfield" => "date")); // ---------------------------------------------------------------------- // Handle a posted form // ---------------------------------------------------------------------- $messages = null; // selected messages (based on a filter) $filters = array(); // active filters $filtermode = "and"; // active filter mode (and / or) $read_url_template = phorum_get_url(PHORUM_FOREIGN_READ_URL, '%forum_id%', '%thread_id%', '%message_id%'); // If there are messages to delete in the post data, then delete them // from the database. $delete_count = 0; if (isset($_POST["deletemessage"]) && is_array($_POST["deletemessage"])) { $msgids = array_keys($_POST["deletemessage"]); $msgs = phorum_db_get_message($msgids, "message_id", true); $deleted_messages = array(); foreach ($msgs as $msg) { // if the message was already deleted, skip it if (isset($delete_messages[$msg["message_id"]])) { continue; } $PHORUM["forum_id"] = $msg["forum_id"]; $delmode = $msg["parent_id"] == 0 ? PHORUM_DELETE_TREE : PHORUM_DELETE_MESSAGE; // A hook to allow modules to implement extra or different
function phorum_feed_make_js($messages, $forums, $feed_url, $feed_title, $feed_description) { $PHORUM = $GLOBALS["PHORUM"]; // build PHP array to later be turned into a JS object $feed["title"] = $feed_title; $feed["description"] = $feed_description; $feed["modified"] = phorum_date($PHORUM['short_date'], time()); // Lookup the plain text usernames for the authenticated authors. $users = $messages['users']; unset($messages['users']); unset($users[0]); $users = phorum_api_user_get_display_name($users, '', PHORUM_FLAG_PLAINTEXT); foreach ($messages as $message) { $author = isset($users[$message['user_id']]) && $users[$message['user_id']] != '' ? $users[$message['user_id']] : $message['author']; $item = array("title" => strip_tags($message["subject"]), "author" => $author, "category" => $forums[$message["forum_id"]]["name"], "created" => phorum_date($PHORUM['short_date'], $message["datestamp"]), "modified" => phorum_date($PHORUM['short_date'], $message["modifystamp"]), "url" => phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["thread"], $message["message_id"]), "description" => $message["body"]); if ($message["thread_count"]) { $replies = $message["thread_count"] - 1; $item["replies"] = $replies; } $feed["items"][] = $item; } // this is where we convert the array into js $buffer = phorum_array_to_javascript("phorum_feed", $feed); return $buffer; }
if ($parent_id == 0 && count($forums) < 2) { phorum_redirect_by_url($forum['url']); exit; } if ($forum["message_count"] > 0) { $forum["raw_last_post"] = $forum["last_post_time"]; $forum["last_post"] = phorum_date($PHORUM["long_date_time"], $forum["last_post_time"]); } else { $forum["last_post"] = " "; } $forum["URL"]["LIST"] = phorum_get_url(PHORUM_LIST_URL, $forum["forum_id"]); if ($PHORUM["DATA"]["LOGGEDIN"]) { $forum["URL"]["MARK_READ"] = phorum_get_url(PHORUM_INDEX_URL, $forum["forum_id"], "markread", $PHORUM['forum_id']); } if (isset($PHORUM['use_rss']) && $PHORUM['use_rss']) { $forum["URL"]["FEED"] = phorum_get_url(PHORUM_FEED_URL, $forum["forum_id"], "type=" . $PHORUM["default_feed"]); } $forum["raw_message_count"] = $forum["message_count"]; $forum["message_count"] = number_format($forum["message_count"], 0, $PHORUM["dec_sep"], $PHORUM["thous_sep"]); $forum["raw_thread_count"] = $forum["thread_count"]; $forum["thread_count"] = number_format($forum["thread_count"], 0, $PHORUM["dec_sep"], $PHORUM["thous_sep"]); if ($PHORUM["DATA"]["LOGGEDIN"]) { if ($PHORUM["show_new_on_index"] == 1) { $forum["new_messages"] = number_format($new_counts[$forum["forum_id"]]["messages"], 0, $PHORUM["dec_sep"], $PHORUM["thous_sep"]); $forum["new_threads"] = number_format($new_counts[$forum["forum_id"]]["threads"], 0, $PHORUM["dec_sep"], $PHORUM["thous_sep"]); } elseif ($PHORUM["show_new_on_index"] == 2) { $forum["new_message_check"] = $new_checks[$forum["forum_id"]]; } } } $forums_shown = true;
} phorum_email_user($mail_users, $mail_data); $PHORUM["DATA"]["URL"]["REDIRECT"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["thread"]); $PHORUM["DATA"]["BACKMSG"] = $PHORUM["DATA"]["LANG"]["BackToThread"]; $PHORUM["DATA"]["OKMSG"] = $PHORUM["DATA"]["LANG"]["ReportPostSuccess"]; $template = "message"; $report = true; } } else { $PHORUM["DATA"]["ReportPostMessage"] = $PHORUM["DATA"]["LANG"]['ReportPostNotAllowed']; } } // format message list($message) = phorum_format_messages(array($message)); $PHORUM["DATA"]["PostSubject"] = $message["subject"]; $PHORUM["DATA"]["PostAuthor"] = $message["author"]; $PHORUM["DATA"]["PostBody"] = $message["body"]; $PHORUM["DATA"]["raw_PostDate"] = $message["datestamp"]; $PHORUM["DATA"]["PostDate"] = phorum_date($PHORUM["short_date_time"], $message["datestamp"]); $PHORUM["DATA"]["ReportURL"] = phorum_get_url(PHORUM_REPORT_URL, $message_id); // if the report was not successfully sent, keep whatever explanation they gave already if (isset($_POST["explanation"]) && !$report) { $PHORUM["DATA"]["explanation"] = $_POST["explanation"]; } else { $PHORUM["DATA"]["explanation"] = ""; } } else { $PHORUM["DATA"]["ERROR"] = $PHORUM['DATA']['LANG']['MessageNotFound']; $template = 'message'; } phorum_output($template);
function phorum_setup_announcements() { global $PHORUM; // This variable will be used to store the formatted announcements. $PHORUM['DATA']['MOD_ANNOUNCEMENTS'] = ''; // Check if we are on a page on which the announcements have to be shown. if (phorum_page == 'index') { // Hide the announcements, unless enabled for "index". $hide = empty($PHORUM["mod_announcements"]["pages"]["index"]); // Show announcements for the root page if "home" is enabled. if ($PHORUM['vroot'] == $PHORUM['forum_id'] && !empty($PHORUM["mod_announcements"]["pages"]["home"])) { $hide = FALSE; } if ($hide) { return; } } else { if (empty($PHORUM["mod_announcements"]["pages"][phorum_page])) { return; } } // Check if we need to show announcements. $ann_forum_id = NULL; // Inside a vroot, where we have a vroot configuration for the forum // to use for announcements and the current forum is not that // announcement forum. if ($PHORUM['vroot'] > 0 && !empty($PHORUM["mod_announcements"]["vroot"][$PHORUM['vroot']]) && $PHORUM["forum_id"] != $PHORUM["mod_announcements"]["vroot"][$PHORUM['vroot']]) { $ann_forum_id = $PHORUM["mod_announcements"]["vroot"][$PHORUM['vroot']]; // Inside the top level folder, where we have a forum that is configured // to be used for announcements and the current forum is not that // announcement forum. } elseif ($PHORUM['vroot'] == 0 && !empty($PHORUM["mod_announcements"]["forum_id"]) && $PHORUM["forum_id"] != $PHORUM["mod_announcements"]["forum_id"]) { $ann_forum_id = $PHORUM["mod_announcements"]["forum_id"]; } // If no announcement forum_id is found, no announcements // have to be shown. if ($ann_forum_id === NULL) { return; } // Retrieve the last number of posts from the announcement forum. $messages = phorum_db_get_recent_messages($PHORUM["mod_announcements"]["number_to_show"], 0, $ann_forum_id, 0, true); unset($messages["users"]); // No announcements to show? Then we are done. if (count($messages) == 0) { return; } // Read the newflags information for authenticated users. $newinfo = NULL; if ($PHORUM["DATA"]["LOGGEDIN"]) { $newflagkey = $ann_forum_id . "-" . $PHORUM['user']['user_id']; if ($PHORUM['cache_newflags']) { $newinfo = phorum_cache_get('newflags', $newflagkey, $PHORUM['cache_version']); } if ($newinfo == NULL) { $newinfo = phorum_db_newflag_get_flags($ann_forum_id); if ($PHORUM['cache_newflags']) { phorum_cache_put('newflags', $newflagkey, $newinfo, 86400, $PHORUM['cache_version']); } } } require_once "./include/format_functions.php"; // Process the announcements. foreach ($messages as $message) { // Skip this message if it's older than the number of days that was // configured in the settings screen. if (!empty($PHORUM["mod_announcements"]["days_to_show"]) && $message["datestamp"] < time() - $PHORUM["mod_announcements"]["days_to_show"] * 86400) { continue; } // Check if there are new messages in the thread. if (isset($newinfo)) { $new = 0; foreach ($message["meta"]["message_ids"] as $id) { if (!isset($newinfo[$id]) && $id > $newinfo['min_id']) { $new = 1; break; } } // There are new messages. Setup the template data for showing // a new flag. if ($new) { $message["new"] = $new ? $PHORUM["DATA"]["LANG"]["newflag"] : NULL; $message["URL"]["NEWPOST"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["thread"], "gotonewpost"); } elseif ($PHORUM["mod_announcements"]["only_show_unread"]) { continue; } } // Setup template data for the message. unset($message['body']); $message["lastpost"] = phorum_date($PHORUM["short_date_time"], $message["modifystamp"]); $message["raw_datestamp"] = $message["datestamp"]; $message["datestamp"] = phorum_date($PHORUM["short_date_time"], $message["datestamp"]); $message["URL"]["READ"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $message["forum_id"], $message["message_id"]); $PHORUM["DATA"]["ANNOUNCEMENTS"][] = $message; } // If all announcements were skipped, then we are done. if (!isset($PHORUM["DATA"]["ANNOUNCEMENTS"])) { return; } // format / clean etc. the messages found $PHORUM["DATA"]["ANNOUNCEMENTS"] = phorum_format_messages($PHORUM["DATA"]["ANNOUNCEMENTS"]); // Build the announcements code. ob_start(); include phorum_get_template("announcements::announcements"); $PHORUM['DATA']['MOD_ANNOUNCEMENTS'] = ob_get_contents(); ob_end_clean(); }
} // Setup template data. $PHORUM["DATA"]["PROFILE"] = $user; $PHORUM["DATA"]["PROFILE"]["forum_id"] = isset($PHORUM["forum_id"]) ? $PHORUM['forum_id'] : 0; $PHORUM["DATA"]["PROFILE"]["PANEL"] = $panel; // Set the back-URL and -message. if ($PHORUM['forum_id'] > 0 && $PHORUM['folder_flag'] == 0) { $PHORUM['DATA']['URL']['BACK'] = phorum_get_url(PHORUM_LIST_URL); $PHORUM['DATA']['URL']['BACKTITLE'] = $PHORUM['DATA']['LANG']['BacktoForum']; } else { if(isset($PHORUM['forum_id'])) { $PHORUM['DATA']['URL']['BACK'] = phorum_get_url(PHORUM_INDEX_URL,$PHORUM['forum_id']); } else { $PHORUM['DATA']['URL']['BACK'] = phorum_get_url(PHORUM_INDEX_URL); } $PHORUM['DATA']['URL']['BACKTITLE'] = $PHORUM['DATA']['LANG']['BackToForumList']; } // Load the include file for the current panel. $panel = basename($panel); if (file_exists("./include/controlcenter/$panel.php")) { include "./include/controlcenter/$panel.php"; } else { include "./include/controlcenter/summary.php"; } // The include file can set the template we have to use for // displaying the main part of the control panel screen // in the $template variable.
// Retrieve the recent messages. $recent = $PHORUM['DB']->get_recent_messages($count, 0, $forum_id, $thread_id, $threads_only); unset($recent["users"]); // Add newflag info to the messages. if ($PHORUM["DATA"]["LOGGEDIN"]) { $type = $threads_only ? PHORUM_NEWFLAGS_BY_THREAD : PHORUM_NEWFLAGS_BY_MESSAGE; $recent = phorum_api_newflags_apply_to_messages($recent, $type); } // Format the messages. $recent = phorum_api_format_messages($recent); // Apply the list hook to the messages. if (isset($PHORUM["hooks"]["list"])) { $recent = phorum_api_hook("list", $recent); } // Retrieve information about the forums for the active user. $allowed_forums = phorum_api_user_check_access(PHORUM_USER_ALLOW_READ, PHORUM_ACCESS_LIST); $forums = $PHORUM['DB']->get_forums($allowed_forums); foreach ($forums as $id => $forum) { $forums[$id]['url'] = phorum_get_url(PHORUM_LIST_URL, $forum['forum_id']); } // Add forum info to the messages and clean up data. foreach ($recent as $id => $message) { $recent[$id]['foruminfo'] = array('id' => $message['forum_id'], 'name' => $forums[$message['forum_id']]['name'], 'url' => $forums[$message['forum_id']]['url']); // Strip fields that the caller should not see in the return data. unset($recent[$id]['email']); unset($recent[$id]['ip']); unset($recent[$id]['meta']); unset($recent[$id]['msgid']); } // Return the results. phorum_ajax_return(array_values($recent));
function phorum_email_moderators($message) { $PHORUM = $GLOBALS["PHORUM"]; $mail_users = phorum_api_user_list_moderators($PHORUM['forum_id'], $PHORUM['email_ignore_admin'], TRUE); if (count($mail_users)) { include_once "./include/format_functions.php"; if ($message["status"] > 0) { // just notification of a new message $mailsubjecttpl = 'NewUnModeratedSubject'; $mailmessagetpl = 'NewUnModeratedMessage'; $mailsubject = $PHORUM["DATA"]["LANG"]['NewUnModeratedSubject']; $mailmessage = $PHORUM["DATA"]["LANG"]['NewUnModeratedMessage']; } else { // posts needing approval $mailsubjecttpl = 'NewModeratedSubject'; $mailmessagetpl = 'NewModeratedMessage'; $mailsubject = $PHORUM["DATA"]["LANG"]['NewModeratedSubject']; $mailmessage = $PHORUM["DATA"]["LANG"]['NewModeratedMessage']; } $mail_data = array("forumname" => strip_tags($PHORUM["DATA"]["NAME"]), "forum_id" => $PHORUM['forum_id'], "message_id" => $message['message_id'], "author" => phorum_api_user_get_display_name($message["user_id"], $message["author"], PHORUM_FLAG_PLAINTEXT), "subject" => $message['subject'], "full_body" => $message['body'], "plain_body" => phorum_strip_body($message['body']), "approve_url" => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=messages"), "read_url" => phorum_get_url(PHORUM_READ_URL, $message['thread'], $message['message_id']), "mailmessage" => $mailmessage, "mailsubject" => $mailsubject, "mailmessagetpl" => $mailmessagetpl, "mailsubjecttpl" => $mailsubjecttpl, "language" => $PHORUM['language']); if (isset($_POST[PHORUM_SESSION_LONG_TERM])) { // strip any auth info from the read url $mail_data["read_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["read_url"]); $mail_data["approve_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["approve_url"]); } phorum_email_user($mail_users, $mail_data); } }
/** * Check if a file exists and if the active user has permission to read it. * * The function will return either an array containing descriptive data * for the file or FALSE, in case access was not granted. * * Note that the file_data field is not available in the return array. * That data can be retrieved by the {@link phorum_api_file_retrieve()} * function. * * @param integer $file_id * The file_id of the file for which to check read access. * * @param integer $flags * If the {@link PHORUM_FLAG_IGNORE_PERMS} flag is used, then permission * checks are fully bypassed. In this case, the function will only check * if the file exists or not. * * @return mixed * On error, this function will return FALSE. * The functions {@link phorum_api_strerror()} and * {@link phorum_api_errno()} can be used to retrieve information about * the error which occurred. * * On success, it returns an array containing descriptive data for * the file. The following fields are available in this array: * <ul> * <li>file_id: The file_id for the requested file.</li> * <li>filename: The name of the file.</li> * <li>filesize: The size of the file in bytes.</li> * <li>add_datetime: Epoch timestamp describing at what time * the file was stored.</li> * <li>message_id: The message to which a message is linked * (in case it is a message attachment).</li> * <li>user_id: The user to which a message is linked * (in case it is a private user file).</li> * <li>link: A value describing to what type of entity the file is * linked. One of {@link PHORUM_LINK_USER}, * {@link PHORUM_LINK_MESSAGE}, {@link PHORUM_LINK_EDITOR} and * {@link PHORUM_LINK_TEMPFILE}.</li> * </ul> */ function phorum_api_file_check_read_access($file_id, $flags = 0) { global $PHORUM; settype($file_id, "int"); // Reset error storage. $GLOBALS["PHORUM"]["API"]["errno"] = NULL; $GLOBALS["PHORUM"]["API"]["error"] = NULL; // Check if the active user has read access for the active forum_id. if (!$flags & PHORUM_FLAG_IGNORE_PERMS && !phorum_check_read_common()) { return phorum_api_error_set(PHORUM_ERRNO_NOACCESS, "Read permission for file (id {$file_id}) denied."); } // Retrieve the descriptive file data for the file from the database. // Return an error if the file does not exist. $file = phorum_db_file_get($file_id, FALSE); if (empty($file)) { return phorum_api_error_set(PHORUM_ERRNO_NOTFOUND, "The requested file (id {$file_id}) was not found."); } // For the standard database based file storage, we do not have to // do checks for checking file existence (since the data is in the // database and we found the record for it). Storage modules might // have to do additional checks though (e.g. to see if the file data // exists on disk), so here we give them a chance to check for it. // This hook can also be used for implementing additional access // rules. The hook can use phorum_api_error_set() to return an error. // Hooks should be aware that their input might not be $file, but // FALSE instead, in which case they should immediately return // FALSE themselves. if (isset($PHORUM["hooks"]["file_check_read_access"])) { $file = phorum_hook("file_check_read_access", $file, $flags); if ($file === FALSE) { return FALSE; } } // If we do not do any permission checking, then we are done. if ($flags & PHORUM_FLAG_IGNORE_PERMS) { return $file; } // Is the file linked to a forum message? In that case, we have to // check if the message does really belong to the requested forum_id. if ($file["link"] == PHORUM_LINK_MESSAGE && !empty($file["message_id"])) { // Retrieve the message. If retrieving the message is not possible // or if the forum if of the message is different from the requested // forum_id, then return an error. $message = phorum_db_get_message($file["message_id"], "message_id", TRUE); if (empty($message)) { return phorum_api_error_set(PHORUM_ERRNO_INTEGRITY, "An integrity problem was detected in the database: " . "file id {$file_id} is linked to non existent " . "message_id {$file["message_id"]}."); } if ($message["forum_id"] != $PHORUM["forum_id"]) { return phorum_api_error_set(PHORUM_ERRNO_NOACCESS, "Permission denied for reading the file: it does not " . "belong to the requested forum_id {$PHORUM["forum_id"]}."); } } // A general purpose URL host matching regexp, that we'll use below. $matchhost = '!^https?://([^/]+)/!i'; // See if off site links are allowed. If this is not the case, then // check if an off site link is requested. We use the HTTP_REFERER for // doing the off site link check. This is not a water proof solution // (since HTTP referrers can be faked), but it will be good enough for // stopping the majority of the off site requests. if (isset($_SERVER["HTTP_REFERER"]) && $PHORUM["file_offsite"] != PHORUM_OFFSITE_ANYSITE && preg_match($matchhost, $_SERVER["HTTP_REFERER"])) { // Generate the base URL for the Phorum. $base = strtolower(phorum_get_url(PHORUM_BASE_URL)); // Strip query string from the base URL. We mainly want to // check if the location matches the Phorum location. // Otherwise, we might get in troubles with things like // URI authentication, where a session id is added to the URL. $base = preg_replace('/\\?.*$/', '', $base); // FORUMONLY: Links to forum files are only allowed from the forum. // Check if the referrer URL starts with the base Phorum URL. if ($PHORUM["file_offsite"] == PHORUM_OFFSITE_FORUMONLY) { $refbase = substr($_SERVER["HTTP_REFERER"], 0, strlen($base)); if (strcasecmp($base, $refbase) != 0) { return phorum_api_error_set(PHORUM_ERRNO_NOACCESS, "Permission denied: links to files in the forum are " . "only allowed from the forum itself."); } } elseif ($PHORUM["file_offsite"] == PHORUM_OFFSITE_THISSITE) { if (preg_match($matchhost, $_SERVER["HTTP_REFERER"], $rm) && preg_match($matchhost, $base, $bm) && strcasecmp($rm[1], $bm[1]) != 0) { return phorum_api_error_set(PHORUM_ERRNO_NOACCESS, "Permission denied: links to files in the forum are " . "only allowed from this web site."); } } } return $file; }
// if the option to build a dropdown list is enabled, build the list of members that could be added if ($PHORUM["enable_dropdown_userlist"]) { $userlist = phorum_api_user_list(PHORUM_GET_ACTIVE); $PHORUM["DATA"]["NEWMEMBERS"] = array(); foreach ($userlist as $userid => $userinfo) { if (!in_array($userid, $usersingroup)) { $userinfo["username"] = htmlspecialchars($userinfo["username"], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]); $userinfo["display_name"] = htmlspecialchars($userinfo["display_name"], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]); $PHORUM["DATA"]["NEWMEMBERS"][] = $userinfo; } } } } else { $PHORUM["DATA"]["GROUPS"] = array(); $groups = phorum_api_user_check_group_access(PHORUM_USER_GROUP_MODERATOR, PHORUM_ACCESS_LIST); // Turn the groups into a group id => group name mapping. foreach ($groups as $id => $group) { $groups[$id] = $group['name']; } // put these things in order so the user can read them asort($groups); foreach ($groups as $groupid => $groupname) { // get the group members who are unapproved, so we can count them $members = phorum_db_get_group_members($groupid, PHORUM_USER_GROUP_UNAPPROVED); $full_members = phorum_db_get_group_members($groupid); $PHORUM["DATA"]["GROUPS"][] = array("id" => $groupid, "name" => $groupname, "unapproved" => count($members), "members" => count($full_members), "URL" => array("VIEW" => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION, "group=" . $groupid), "UNAPPROVED" => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_GROUP_MODERATION, "group=" . $groupid, "filter=" . PHORUM_USER_GROUP_UNAPPROVED))); } } $PHORUM["DATA"]["HEADING"] = $PHORUM["DATA"]["LANG"]["GroupMembership"]; $PHORUM["DATA"]['POST_VARS'] .= "<input type=\"hidden\" name=\"group\" value=\"{$group_id}\" />\n"; $template = "cc_groupmod";
<?php //////////////////////////////////////////////////////////////////////////////// // // // Copyright (C) 2006 Phorum Development Team // // http://www.phorum.org // // // // This program is free software. You can redistribute it and/or modify // // it under the terms of either the current Phorum License (viewable at // // phorum.org) or the Phorum License that was distributed with this file // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY, without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // // // // You should have received a copy of the Phorum License // // along with this program. // //////////////////////////////////////////////////////////////////////////////// if(!defined("PHORUM_ADMIN")) return; phorum_redirect_by_url(phorum_get_url(PHORUM_INDEX_URL)); exit(); ?>
function phorum_pm_format($messages) { $PHORUM = $GLOBALS["PHORUM"]; include_once "./include/format_functions.php"; // Reformat message so it looks like a forum message (so we can run it // through phorum_format_messages) and do some PM specific formatting. foreach ($messages as $id => $message) { // The formatting code expects a message id. $messages[$id]["message_id"] = $id; // Read URLs need a folder id, so we only create that URL if // one's available. if (isset($message['pm_folder_id'])) { $folder_id = $message['pm_folder_id'] ? $message['pm_folder_id'] : $message['special_folder']; $messages[$id]["URL"]["READ"] = phorum_get_url(PHORUM_PM_URL, "page=read", "folder_id={$folder_id}", "pm_id={$id}"); } // The datestamp is only available for already posted messages. if (isset($message['datestamp'])) { $messages[$id]["raw_date"] = $message["datestamp"]; $messages[$id]["date"] = phorum_date($PHORUM["short_date_time"], $message["datestamp"]); } if (isset($message['meta']) && !is_array($message['meta'])) { $messages[$id]['meta'] = unserialize($message['meta']); } $messages[$id]["body"] = isset($message["message"]) ? $message["message"] : ""; $messages[$id]["email"] = ""; $messages[$id]["URL"]["PROFILE"] = phorum_get_url(PHORUM_PROFILE_URL, $message["user_id"]); $messages[$id]["recipient_count"] = 0; $messages[$id]["receive_count"] = 0; if (isset($message["recipients"]) && is_array($message["recipients"])) { $receive_count = 0; foreach ($message["recipients"] as $rcpt_id => $rcpt) { if (!empty($rcpt["read_flag"])) { $receive_count++; } if (!isset($rcpt["display_name"])) { $messages[$id]["recipients"][$rcpt_id]["display_name"] = $PHORUM["DATA"]["LANG"]["AnonymousUser"]; } else { $messages[$id]["recipients"][$rcpt_id]["display_name"] = empty($PHORUM["custom_display_name"]) ? htmlspecialchars($rcpt["display_name"], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]) : $rcpt["display_name"]; $messages[$id]["recipients"][$rcpt_id]["URL"]["PROFILE"] = phorum_get_url(PHORUM_PROFILE_URL, $rcpt_id); } } $messages[$id]["recipient_count"] = count($message["recipients"]); $messages[$id]["receive_count"] = $receive_count; } } // Run the messages through the standard formatting code. $messages = phorum_format_messages($messages); // Reformat message back to a private message. foreach ($messages as $id => $message) { $messages[$id]["message"] = $message["body"]; unset($messages[$id]["body"]); } return $messages; }
$PHORUM['short_date'] = "%Y-%m-%d"; // The locale setting for enabling localized times/dates. Take a look // at http://www.w3.org/WAI/ER/IG/ert/iso639.htm for the needed string. $PHORUM['locale'] = "pl_PL"; // Numeric separators used to format numbers. $PHORUM['thous_sep'] = ""; $PHORUM['dec_sep'] = ","; // The charset to use for displaying special characters. $PHORUM['DATA']['CHARSET'] = "UTF-8"; // The charset to use for htmlspecialchars() calls. PHP does // not implement all available charsets, which might result in // warning messages if an unsupported charset is used. // // See http://www.php.net/htmlspecialchars for info on charset // compatibility. If the charset that you specified above is // compatible with htmlspecialchars(), then you can leave this // variable empty. Otherwise, specify a compatible character // set (ISO-8859-1 is usually a good choice for this). $PHORUM['DATA']['HCHARSET'] = ""; // The encoding used for outgoing mail messages. $PHORUM['DATA']['MAILENCODING'] = "8bit"; // Some languages need additional meta tags to set encoding, etc. $PHORUM['DATA']['LANG_META'] = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; // ============================================================ // Language translation strings // ============================================================ $PHORUM['DATA']['LANG'] = array('ATOM' => "Atom", 'Activity' => "Pokaż tylko te wiadomości, które były zmieniane przez ostatni/e", 'ActivityPost' => "", 'Add' => "Dodaj", 'AddSig' => "Dołącz mój podpis do tej wiadomości.", 'AddSigDefault' => "Opcjca "Dołącz mój podpis do tej wiadomości" powinna być domyślnie włączona?", 'AddToGroup' => "Dodaj nowego użytkownika do grupy", 'Admin' => "Administrator", 'AdminOnlyMessage' => "Forum jest aktualnie wyłączone, ale to tylko tymczasowa sytuacja. Zapraszamy ponownie za jaki jakiś czas.", 'Advanced' => "Zaawansowane", 'AllDates' => "Kiedykolwiek", 'AllNotShown' => "wszystkie ukryte wiadomości", 'AllowReplies' => "Zezwalaj na odpowiedzi", 'AllowSeeActivity' => "Pokaż innym użytkownikom datę mojej ostatniej aktywności", 'AllowSeeEmail' => "Pokaż innym użytkownikom mój adres e-mail", 'Announcement' => "Komunikat", 'Announcements' => "Komunikaty i ogłoszenia", 'AnonymousUser' => "Anonimowy użytkownik", 'ApproveMessage' => "Zatwierdź", 'ApproveMessageReplies' => "Zatwierdź wiadomość z odpowiedziami", 'ApproveUser' => "Zatwierdź", 'Approved' => "Zatwierdzony", 'AreYouSure' => "Na pewno?", 'Attach' => "Dodaj", 'AttachAFile' => "Dodaj plik", 'AttachAnotherFile' => "Dodaj kolejny plik", 'AttachCancel' => "Twoja wiadomość została anulowana.", 'AttachDownload' => "pobierz", 'AttachFileSize' => "Maksymalny rozmiar pliku: %size%", 'AttachFileTypes' => "Poprawne typy plików: %types%", 'AttachFull' => "Została osiągnięta maksymalna dozwolona liczba plików dodanych do wiadomości.", 'AttachInvalidType' => "Plik tego typu nie może być dodany do wiadomości.", 'AttachMaxAttachments' => "Liczba plików, które mogą zostać jeszcze dodane do tej wiadomości, wynosi %count%.", 'AttachNotAllowed' => "Nie możesz dodawać plików do tej wiadomości.", 'AttachOpen' => "otwórz", 'AttachTotalFileSize' => "Łączny rozmiar wszystkich plików dodanych do wiadomości wynosi %size%.", 'AttachmentAdded' => "Twój plik został pomyślnie dodany do wiadomości", 'Attachments' => "Załączniki", 'AttachmentsMissing' => "Wystąpił błąd podczas dodawania plików, spróbuj ponownie.", 'Author' => "Autor", 'BackToForumList' => "Powrót do listy forów", 'BackToList' => "Kliknij tutaj, aby powrócić do listy wątków.", 'BackToSearch' => "Kliknij tutaj, aby powrócić do strony wyszukiwania.", 'BackToThread' => "Kliknij tutaj, aby powrócić do wiadomości.", 'BacktoForum' => "Powrót do forum", 'BookmarkedThread' => "Możesz teraz śledzić zmiany w tym wątku w ustawieniach swojego profilu.", 'Buddies' => "Znajomi", 'Buddy' => "Znajoma/y", 'BuddyAdd' => "Dodaj do listy znajomych", 'BuddyAddFail' => "Użytkownik nie może być dodany do twojej listy znajomych", 'BuddyAddSuccess' => "Użytkownik został dodany do twojej listy znajomych", 'BuddyListIsEmpty' => "Twoja lista znajomych jest pusta. Żeby dodać użytkownika do listy wejdź do profilu danej osoby i kliknij \"Dodaj użytkownika do mojej listy znajomych\".", 'Cancel' => "Anuluj", 'CancelConfirm' => "Czy na pewno chcesz anulować?", 'CannotBeRunFromBrowser' => "Nie można uruchomić tego skryptu z przeglądarki.", 'ChangeBy' => "Zmieniony przez", 'ChangeDate' => "Data zmiany", 'ChangeHistory' => "Historia zmian", 'ChangePassword' => "Zmień hasło", 'ChangesSaved' => "Zmiany zostały zapisane.", 'ClickHereToLogin' => "Kliknij tutaj aby się zalogować.", 'CloseThread' => "Zamknij", 'ClubId' => "Numer legitymacji klubowej", 'Completed' => "Informacja", 'ConfirmDeleteMessage' => "Czy na pewno chcesz skasować tę wiadomość?", 'ConfirmDeleteThread' => "Czy na pewno chcesz skasować ten wątek?", 'ConfirmReportMessage' => "Czy na pewno chcesz raportować tę wiadomość?", 'Create' => "Utwórz", 'CurrentPage' => "Bieżąca strona", 'Date' => "Data", 'DateActive' => "Ostatnia aktywność", 'DateAdded' => "Data dodania", 'DatePosted' => "wysłane w okresie czasu", 'DateReg' => "Zarejestrowany", 'Day' => "dzień", 'Days' => "dni", 'Default' => "domyślny", 'DelMessReplies' => "Usuń z odpowiedziami", 'Delete' => "Usuń", 'DeleteMessage' => "Usuń", 'DeleteThread' => "Usuń wątek", 'DenyUser' => "Odmowa", 'Detach' => "Odłącz", 'EditBoardsettings' => "Ustawienia forum", 'EditFolders' => "Zmień foldery", 'EditMailsettings' => "Zmień ustawienia e-mail", 'EditMessage' => "Zmień wiadomość", 'EditMyFiles' => "Zmień pliki", 'EditPost' => "Zmień", 'EditPostForbidden' => "Nie masz uprawnień, żeby zmienić tę wiadomość, ale mógł też upłynąć czas edycji wiadomości, jeżeli został on ustawiony przez Administratora.", 'EditPrivacy' => "Zmień ustawienia prywatności", 'EditSignature' => "Zmień mój podpis", 'EditUserinfo' => "Zmień mój profil", 'EditedMessage' => "Zmieniany %count% raz(y). Ostatnia zmiana %lastedit% przez %lastuser%.", 'Email' => "E-mail", 'EmailConfirmRequired' => "Zmiana adresu e-mail wymaga potwierdzenia.", 'EmailReplies' => "Wysyłaj powiadomienia na mój adres e-mail o nowych odpowiedziach", 'EmailVerify' => "Weryfikuj adres e-mail", 'EmailVerifyBody' => "Witaj,\n\nTen e-mail został wysłany do Ciebie, ponieważ zostały zmienione ustawienia adresu e-mail w Twoim profilu. W celu sprawdzenia, czy jest to poprawny adres e-mail, wysłany został niniejszy list z Twoim kodem potwierdzenia. Możesz zignorować ten list, jeżeli nie jesteś %uname%.\n\nNowy adres e-mail to: %newmail%\nKod potwierdzający to: %mailcode%\n\nWprowadź ten kod w Twoim profilu, aby potwierdzić zmianę adresu e-mail.\n\n-- \n{$PHORUM['title']}", 'EmailVerifyDesc1' => "W celu aktualizacji Twojego adresu e-mail z ", 'EmailVerifyDesc2' => " na ", 'EmailVerifyDesc3' => " konieczna jest weryfikacja na podstawie otrzymanego przez Ciebie kodu, wysłanego na Twój nowy adres.", 'EmailVerifyEnterCode' => "Proszę wprowadzić poniżej otrzymany kod w celu weryfikacji nowego adresu e-mail", 'EmailVerifySubject' => "Weryfikacja nowego adresu e-mail", 'EnableNotifyDefault' => "Opcja śledzenia wątku powinna być domyślnie zaznaczona?", 'ErrAuthor' => "Autor wiadomości jest wymagany.", 'ErrBannedContent' => 'Słowo, którego użyłeś w twojej wiadomości znajduje się na liście słów zabronionych. Proszę skorzystaj z innego słowa lub skontaktuj się zadministratorem.', 'ErrBannedEmail' => "Adres e-mail \"%name%\" znajduje się na liście adresów zablokowanych. Proszę podaj inny adres e-mail lub skontaktuj się z administratorem.", 'ErrBannedIP' => "Twój adres IP lub domena została zablokowana. Proszę skontaktuj się z administratorem.", 'ErrBannedName' => "Nazwa \"%name%\" znajduje się na liście nazw zablokowanych. Proszę użyj innej nazwy lub skontaktuj się z administratorem.", 'ErrBannedUser' => "Nazwa użytkownika \"%name%\" znajduje się na liście użytkowników zablokowanych.", 'ErrBody' => "Treść wiadomości jest wymagana.", 'ErrBodyTooLarge' => "Proszę wpisz krótszą wiadomość, aktualna treść jest za długa.", 'ErrClubId' => "Numer Twojej legitymacji klubowej jest wymagany w celach weryfikacyjnych", 'ErrClubIdInvalid' => "Numer legitymacji klubowej musi być liczbą większą od zera", 'ErrEmail' => "Podany adres e-mail nie jest poprawnym adresem poczty elektronicznej. Podaj poprawny.", 'ErrEmailExists' => "Podany adres e-mail jest aktualnie używany przez innego użytkownika.", 'ErrOriginalPassword' => "Podane aktualne hasło jest błędne", 'ErrPassword' => "Wprowadzoane przez Ciebie hasła nie zgadzają się. Spróbuj ponownie.", 'ErrPasswordEmpty' => "Zaproponowane przez Ciebie hasło nie spełnia wymagań bezpieczeństwa (hasło jest puste). Spróbuj podać inne hasło.", 'ErrPasswordLen' => "Zaproponowane przez Ciebie hasło nie spełnia wymagań bezpieczeństwa (hasło jest za krótkie). Spróbuj podać inne hasło.", 'ErrPasswordNoSpecial' => "Zaproponowane przez Ciebie hasło nie spełnia wymagań bezpieczeństwa (brak cyfry lub znaku specjalnego). Spróbuj podać inne hasło.", 'ErrRealname' => "Twoje imię i nazwisko jest wymagane w celach weryfikacyjnych", 'ErrRegisterdEmail' => "Podany adres e-mail jest już użyty przez jednego z zerejestrowanych użytkowników. Jeżeli Ty nim jesteś - zaloguj się. W innym wypadku użyj innego adresu e-mail.", 'ErrRegisterdName' => "Podana nazwa jest już używana przez innego użytkownika. Jeżeli Ty nim jesteś proszę zaloguj się. W innym wypadku użyj innej nazwy.", 'ErrRequired' => "Proszę wypełnij wszystkie wymagane pola.", 'ErrSubject' => "Temat wiadomości jest wymagany.", 'ErrUserAddUpdate' => "Użytkownik nie został dodany/zaktualizowany. Nieznany błąd.", 'ErrUsername' => "Nazwa użytkownika jest wymagana.", 'ErrWrongMailcode' => "Został podany błędny kod potwierdzający, spróbuj ponownie!", 'FileAdded' => "Plik został poprawnie dodany.", 'FileOverQuota' => "Twój plik nie został dodany. Wielkość tego pliku spowodowała przekroczenie Twojego limitu na dane. Możesz przechowywać dane na serwerze o pojemności nie przekraczającej {$PHORUM['file_space_quota']}k.", 'FileQuotaLimits' => "Maksymalna przestrzeń, w której możesz przechowywać pliki wynosi ", 'FileSizeLimits' => "Nie można dodawać plików większych niż ", 'FileTooLarge' => "Twój plik nie został przesłany. Jego wielkość przekracza maksymalny limit wielkości pojedynczego pliku, który wynosi {$PHORUM['max_file_size']}k", 'FileTypeLimits' => "Można dodawać tylko pliki typu: " . str_replace(";", ", ", $PHORUM['file_types']), 'FileWrongType' => "Na ten serwer nie można dodawać plików tego typu. Dozwolone typy plików to: " . str_replace(";", ", ", $PHORUM['file_types']) . ".", 'Filename' => "Nazwa Pliku", 'Files' => "Moje pliki", 'Filesize' => "Rozmiar pliku", 'Filter' => "Filtr", 'FirstPage' => "|<-", 'Folders' => "Foldery", 'FollowExplanation' => "Lista śledzonych wątków dostępna jest w ustawieniach Twojego profilu.", 'FollowExplanationMail' => "Możesz zaznaczyć jeśli chcesz otrzymywać powiadomienia na e-mail kiedy w wątku pojawi się nowa wiadomość.", 'FollowThread' => "Śledź", 'FollowWithEmail' => "Wyślij e-mail, gdy pojawi się nowa wiadomość", 'FollowWithEmailCC' => "Śledź wątek i powiadamiaj mnie o odpowiedziach na e-mail", 'FollowContinue' => "Dodaj wątek do śledzonych", 'Forum' => "Forum", 'ForumTitle1' => "forum dyskusyjne", 'ForumTitle2' => "Wrocławskiego Klubu Wysokogórskiego", 'ForumFolder' => "Folder", 'ForumList' => "Fora", 'Forums' => "Fora", 'From' => "Od", 'Go' => "Idź", 'Goto' => "Akcja", 'GotoThread' => "Idź do wątku", 'Group' => "Grupa", 'GroupJoinFail' => "Grupa nie została dołączona.", 'GroupJoinSuccess' => "Dołączenie grupy powiodło się.", 'GroupJoinSuccessModerated' => "Dołączenie grupy powiodło się. Jeżeli jest to grupa moderowana, Twoja przynależność do grupy będzie aktywna po akceptacji przez moderatora.", 'GroupMemberList' => "Użytkownicy w grupie", 'GroupMembership' => "Członkostwo w grupach", 'Hidden' => "Ukryty", 'HideMessage' => "Ukryj", 'Home' => "Start", 'HomePage' => "Strona startowa", 'HowToFollowThreads' => "Możesz włączyć śledzenie wątku klikając \"Śledź ten wątek\" kiedy czytasz wiadomość. Dodatkowo jeżeli zaznaczysz opcję \"Wysyłaj powiadomienie o odpowiedzi na e-mail\" podczas dodawania nowej wiadomości będzie wysyłany do Ciebie e-mail z informacją.", 'INBOX' => "Odebrane", 'IP' => "IP/Host", 'IPLogged' => "IP zapamiętane", 'InReplyTo' => "W odpowiedzi na", 'InvalidLogin' => "Nazwa użytkownika/hasło nie zostały znalezione lub są nieaktywne. Spróbuj ponownie.", 'IsDST' => "Czas letni", 'Join' => "Dołącz", 'JoinAGroup' => "Dołącz do grupy", 'JoinGroupDescription' => "Aby dołączyć do grupy, wybierz ją z poniższej listy. Grupy zaznaczone znakiem <strong>*</strong> są moderowane i w takim przypadku Twoja prośba o dołączenie do grupy musi zostać zatwierdzona przez moderatora grup.", 'KeepCopy' => "Zachowaj kopię wiadomości w elementach wysłanych", 'Language' => "Język", 'Last30Days' => "Ostatnie 30 dni", 'Last365Days' => "Ostatni rok", 'Last90Days' => "Ostatnie 90 dni", 'LastPage' => "->|", 'LastPost' => "Ostatni post", 'LastPostLink' => "Ostatni post", 'Location' => "Lokalizaja", 'ListThreads' => "Pokaż śledzone wątki", 'LogIn' => "Zaloguj", 'LogOut' => "Wyloguj", 'LoginTitle' => "Zaloguj się do forum", 'LostPassEmailBody1' => "Witaj, \n\nKtoś (prawdopodobnie Ty) poprosił o nowe hasło dla Twojego konta na {$PHORUM['title']}. Jeżeli to nie Ty, możesz zignorować ten e-mail i używać nadal swojego starego hasła. Jeżeli to jednak Ty, poniżej znajdują się nowe dane potrzebne do zalogowania na forum.", 'LostPassEmailBody2' => "Może zalogować się na {$PHORUM['title']} na stronie " . phorum_get_url(PHORUM_LOGIN_URL) . "\n\n-- \n{$PHORUM['title']}", 'LostPassEmailSubject' => "Twoje dane potrzebne do logowania na {$PHORUM['title']}", 'LostPassError' => "Podany adres e-mail nie został znaleziony.", 'LostPassInfo' => "Podaj adres e-mail użyty przy rejestracji. Na ten adres zostanie przesłane Twoje hasło.", 'LostPassSent' => "Nowe hasło zostało wysłane do Ciebie na adres e-mail podany podczas rejestracji.", 'LostPassword' => "Nie pamiętasz hasła?", 'MakeSticky' => "Przyklej", 'MarkForumRead' => "Zaznacz wszystko na forum jako przeczytane", 'MarkRead' => "Zaznacz jako przeczytane", 'MarkThreadRead' => "Zaznacz wątek jako przeczytany", 'MatchAll' => "Wszystkie słowa", 'MatchAllForums' => "Szukaj we wszystkie forach", 'MatchAny' => "Jakiekolwiek słowa", 'MatchMessages' => "Pokazuj wyniki jako lista wiadomości", 'MatchPhrase' => "Dokładna fraza", 'MatchThreads' => "Pokazuj wyniki jako lista wątków", 'Member' => "Użytkownik", 'MembershipType' => "Status członkostwa", 'MergeThread' => "Połącz", 'MergeThreadAction1' => "Niniejsze wątki mogą być połączone:", 'MergeThreadAction2' => "Czy chcesz kontynuować łączenie wątków?", 'MergeThreadCancel' => "Anuluj łączenie wątków", 'MergeThreadCancelInfo' => "W każdem chwili możesz przerwać łączenie wątków klikając na opcję", 'MergeThreadInfo1' => "Ten wątek został wybrany do połączenia z innym wątkiem:", 'MergeThreadInfo2' => "Teraz przejdź do wątku który chcesz przyłączyć do tego i wybierz opcję 'Połącz'.", 'MergeThreads' => "Połącz wątki", 'Message' => "Wiadomość", 'MessageList' => "Wątki", 'MessageNotFound' => "Niestety, wybrana przez Ciebie wiadomość nie istnieje.", 'Moderate' => "Moderacja", 'ModeratedForum' => "To forum jest moderowane. Twoje wiadomości będą niewidoczne dopóki nie zostaną zatwierdzone przez moderatora lub administratora.", 'Moderating' => "Moderowanie", 'Moderator' => "Moderator", 'Month' => "miesiąc", 'Months' => "miesięcy", 'MoveNotification' => "Pozostaw informację o przeniesieniu wątku", 'MoveThread' => "Przenieś", 'MoveThreadTo' => "Chcesz przenieść wątek", 'MoveSelectForum' => "Wybierz forum, do którego chcesz przenieść wątek", 'MovedMessage' => "Ten wątek został przeniesiony. Zostaniesz przeniesiony do jego aktualnej lokalizacji.", 'MovedMessageTo' => "Kliknij tutaj, aby przejść natychmiast do aktualnej lokalizacji wątku.", 'MovedSubject' => "Przeniesiony", 'MsgApprovedOk' => "Wiadomość(ci) zatwierdzona(e).", 'MsgDeletedOk' => "wiadomość(ci) usunięta(e).", 'MsgHiddenOk' => "wiadomość(ci) ukryta(e).", 'MsgMergeCancel' => "Operacja 'Połącz' została przerwana.", 'MsgMergeOk' => "Wątki zostały połączone w jeden wątek.", 'MsgModEdited' => "Zmiana wiadomości została zapisana.", 'MsgMoveOk' => "Wątek został przeniesiony.", 'MsgMoveSelectForum' => "Aby przenieść wątek, musisz najpierw wybrać forum, w którym ma on zostać umieszczony.", 'MsgSplitOk' => "Wątek został pomyślnie podzielony na dwa osobne wątki.", 'Mutual' => "Wspólny", 'MyProfile' => "Mój profil", 'MySignature' => "Mój podpis", 'Name' => "Imię", 'Navigate' => "Nawigacja", 'NeedsAttention' => "Poniższe pozycje wymagają Twojej uwagi", 'New' => "Nowa", 'NewMessage' => "Nowa wiadomość", 'NewMessages' => "zaktualizowany!", 'NewModeratedMessage' => "Nowa wiadomość na moderowanym przez Ciebie forum.\nWiadomość ma temat: %subject%\nmożesz ją przeczytać i zaakceptować klikając na link:\n%approve_url%\n\n", 'NewModeratedSubject' => "Nowa wiadomość na moderowanym forum", 'NewPassword' => "Nowe hasło", 'NewPrivateMessages' => "Masz nową prywatną wiadomość", 'NewReplyMessage' => "Witaj,\n\nOtrzymała(e)ś tę wiadomość ponieważ śledzisz wątek:\n\n %subject%\n <%read_url%>\n\nJeżeli chcesz przestać śledzić ten wątek kliknij:\n<%remove_url%>\n\nJeżeli chcesz przestać otrzymywać e-maile z powiadomieniem, ale nadal śledzić wątek kliknij:\n<%noemail_url%>\n\nJeżeli chcesz zobaczyć śledzony wątek kliknij:\n<%followed_threads_url%>", 'NewReplySubject' => "[%forumname%] Nowa odpowiedź: %subject%", 'NewTopic' => "Nowy wątek", 'NewUnModeratedMessage' => "Nowa wiadomość na moderowanym przez Ciebie forum.\nWiadomość została wysłana przez %author% i ma temat %subject%\ni można ją przeczytać klikając na na poniższy adres\n%read_url%\n\n", 'NewUnModeratedSubject' => "Nowa wiadomość na forum", 'NewerThread' => "Nowszy wątek", 'NextMessage' => "Następna wiadomość", 'NextPage' => "-->", 'No' => "Nie", 'NoFollowedThreads' => "Brak wątków spełniających zadane kryteria.", 'NoForums' => "Niestety, <strong>albo</strong> nie ma żadnego forum, które można wyświetlić, <strong>albo</strong> musisz się najpierw <a href=\"https://forum.wkw.org.pl/login.php\">zalogować</a>, aby uzyskać dostęp ...", 'NoGroupMembership' => "Nie należysz do żadnej grupy.", 'NoGroupsJoin' => "Brak grup do których możesz dołączyć.", 'NoMoreEmails' => "Nie będziesz już otrzymywał listów e-mail kiedy w wątku pojawią się nowe wiadomości.", 'NoPost' => "Niestety, nie masz uprawnień aby pisać/odpowiadać na tym forum.", 'NoRead' => "Niestety, nie masz uprawnień aby czytać to forum.", 'NoResults' => "Niestety, ale nic nie znaleziono.", 'NoResultsHelp' => "Sugestia:<ul><li>sprawdź czy na pewno wszystkie słowa zostały wpisane poprawnie,</li><li>użyj innych słów,</li><li>użyj ogólniejszych słów,</li><li>użyj mniejszej liczby słów.</li></ul>", 'NoUnapprovedMessages' => "Aktualnie nie ma żadnej niezatwierdzonej wiadomości", 'NoUnapprovedUsers' => "Aktualnie nie ma żadnego niezatwierdzonego użytkownika", 'NoUserMatchFilter' => "Nie ma użytkowników należących do grupy zgodnych z powyższym filterem", 'None' => "Żaden", 'NotRegistered' => "Nie masz jeszcze konta? Kliknij tutaj żeby się zarejestrować.", 'Number' => "Lp.", 'OlderThread' => "Starszy wątek", 'OnlyUnapproved' => "tylko niezatwierdzone wiadomości", 'Options' => "Opcje", 'OriginalMessage' => "Oryginalna wiadomość", 'OriginalPassword' => "Aktualne hasło", 'PMAddRecipient' => "Dodaj odbiorcę", 'PMCloseMessage' => "Zamknij", 'PMDisabled' => "Prywatne wiadomości są wyłączone.", 'PMFolderCreate' => "Utwórz nowy folder", 'PMFolderCreateSuccess' => "Folder został pomyślnie utworzony.", 'PMFolderDelete' => "Usuń folder", 'PMFolderDeleteConfirm' => "Czy chcesz na pewno skasować folder wraz z wiadomościami, które są w nim zawarte?", 'PMFolderDeleteExplain' => "<b>Uwaga:</b> jeśli usuniesz folder to wszystkie znajdujące się w nim wiadomości też zostaną usunięte! Nie ma możliwości odzyskania takich wiadomości. Jeśli chcesz zachować wiadomości musisz przenieść je do innego folderu.", 'PMFolderDeleteSuccess' => "Folder został pomyślnie usunięty.", 'PMFolderExistsError' => "Nie można utworzyć folderu. Folder o takiej nazwie już istnieje.", 'PMFolderIsEmpty' => "Folder jest pusty.", 'PMFolderNotAvailable' => "Folder, który chcesz otworzyć nie jest dostępny", 'PMFolderRename' => "Zmień nazwę folderu", 'PMFolderRenameSuccess' => "Zmiana nazwy folderu została pomyślnie wykonana", 'PMFolderRenameTo' => "na", 'PMFromMailboxFull' => "Nie możesz zachować kopii tej wiadomości.<br/>Twoja skrzynka jest całkowicie zapełniona.", 'PMMoveToFolder' => "Przenieś", 'PMNoRecipients' => "Nie podałeś żadnego odbiorcy dla twojej prywatnej wiadomości", 'PMNotAvailable' => "Prywatna wiadomość, którą chcesz wyświetlić nie jest dostępna.", 'PMNotSent' => "Prywatna wiadomość nie została wysłana. Wystąpił nieznany błąd.", 'PMNotifyEnableSetting' => "Czy wysyłać powiadamianie e-mailem o nowej prywatnej wiadomości?", 'PMNotifyMessage' => "Witaj,\n\nMasz nową prywatną wiadomość.\n\nWysłana przez : %author%\nTemat : %subject%\n\nMożesz przeczytać tą wiadomość przechodząc na stronę:\n\n%read_url%.\n\n-- \n{$PHORUM['title']}", 'PMNotifySubject' => "Nowa prywatna wiadomość na {$PHORUM['title']}", 'PMRead' => "Przeczytana", 'PMReply' => "Odpowiedz", 'PMReplyToAll' => "Odpowiedz wszystkim", 'PMRequiredFields' => "Proszę wpisz temat i treść wiadomości.", 'PMSelectAFolder' => "Wybierz folder ...", 'PMSelectARecipient' => "Wybierz odbiorcę ...", 'PMSent' => "Prywatna wiadomość została wysłana.", 'PMSpaceFull' => "Twój limit wiadomości w skrzynce forum został <strong>wyczerpany</strong>.", 'PMSpaceLeft' => "Twój limit wiadomości w skrzynce forum wynosi <strong>%pm_space_left%</strong>.", 'PMToMailboxFull' => "Wiadomość nie może zostać wysłana.<br/>Skrzynka odbiorcy '%recipient%' jest zapełniona.", 'PMUnread' => "Nieprzeczytana", 'Page' => "Strona", 'Pages' => "Strony", 'Password' => "Hasło", 'PasswordAgain' => "Powtórz hasło", 'PeriodicLogin' => "Dla Twojego bezpieczeństwa wymagane jest ponowne logowanie.", 'PermAdministrator' => "Jesteś administratorem.", 'PermAllowPost' => "możliwość pisania", 'PermAllowRead' => "możliwość czytania", 'PermAllowReply' => "możliwość odpowiadania", 'PermGroupModerator' => "Moderator członków grupy", 'PermModerator' => "Moderator", 'Permission' => "Dostęp", 'PersProfile' => "Profil", 'PleaseLoginPost' => "Przykro nam, ale tylko zarejestrowane osoby mogą pisać na tym forum.", 'PleaseLoginRead' => "Przykro nam, ale tylko zarejestrowane osoby mogą czytać to forum.", 'Post' => "Wyślij wiadomość", 'PostErrorDuplicate' => "Wiadomość nie może być wysłana ponieważ na forum nie jest dozwolone powielanie wiadomości, a dokładnie taka sama wiadomość została przed chwilą wysłana.", 'PostErrorOccured' => "Wystąpił błąd podczas próby wysłania wiadomości.", 'PostPM' => "Wyślij prywatną wiadomość", 'Posted' => "Wysłane", 'Postedby' => "Wysłane przez", 'Posts' => "Posty", 'PrevPage' => "<--", 'Preview' => "Podgląd", 'PreviewExplain' => "Tak będzie wyglądać Twoja wiadomość na forum.", 'PreviewNoClickAttach' => "Załącznik nie może być otwarty do podglądu", 'PreviousMessage' => "Poprzednia wiadomość", 'PrintView' => "Podgląd do wydruku", 'PrivateMessages' => "Prywatne wiadomości", 'PrivateReply' => "Prywatna wiadomość", 'ProfileUpdatedOk' => "Profil został zaktualizowany.", 'QuoteMessage' => "Cytuj", 'RSS' => "RSS", 'ReadOnlyMessage' => "Forum jest aktualnie w trybie serwisowym. Nie można się logować ani dokonywać żadnych zmian. Zapraszamy ponownie za jakiś czas.", 'RealName' => "Imię i nazwisko", 'ReceiveModerationMails' => "Chcę otrzymywać wiadomości e-mail informujące o moderacji", 'Recipients' => "odbiorców", 'RegAcctActive' => "Twoje konto jest aktywne.", 'RegApprovedEmailBody' => "Witaj,\n\nTwoje konto na forum {$PHORUM['title']} zostało zatwierdzone. Możesz się zalogować na forum pod adresem " . phorum_get_url(PHORUM_LOGIN_URL) . "\n\n-- \n{$PHORUM['title']}", 'RegApprovedSubject' => "Twoje konto zostało zatwierdzone.", 'RegRejectedEmailBody' => "Witaj,\n\nTwój wniosek o konto na forum {$PHORUM['title']} został odrzucony. Najprawdopodobniej powodem jest brak Twojej przynależności do Wrocławskiego Klubu Wysokogórskiego albo brak opłaconej składki za bieżący rok kalendarzowy. Jeśli uważasz, że jest to błąd, skontaktuj się proszę z Zarządem klubu wysyłając e-mail'a na adres podany w stopce strony forum.\n\nJeśli jednak faktycznie nie jesteś członkiem klubu, a chciałbyś do niego przynależeć, odwiedź stronę http://wkw.org.pl/o-klubie/zapisz-sie.html aby dowiedzieć się, jak to zrobić.\n\n-- \n{$PHORUM['title']}", 'RegRejectedSubject' => "Twój wniosek o konto został odrzucony.", 'RegBack' => "Kliknij tutaj aby się zalogować.", 'RegThanks' => "Dziękujemy za rejestrację.", 'RegVerifyEmail' => "Dziękujemy za rejestrację. Na podany podczas rejestracji adres e-mail otrzymasz instrukcję w jaki sposób aktywować konto.", 'RegVerifyFailed' => "Wystąpił błąd podczas weryfikacji konta. Proszę sprawdź czy na pewno użyłeś adresu URL, który otrzymałeś w wiadomości e-mail.", 'RegVerifyMod' => "Dziękujemy za rejestrację. Wymagane jest zatwierdzenie Twojego konta przez moderatora. Otrzymasz potwierdzający e-mail gdy moderator zatwierdzi Twoje konto.", 'Register' => "Rejestracja", 'RegisterLong' => "Zarejestruj się", 'RemoveFollowed' => "Nie śledzisz już tego wątku.", 'RemoveFromGroup' => "Usuń z grupy", 'Rename' => "Zmień nazwę", 'ReopenThread' => "Otwórz", 'Reply' => "Odpowiedz", 'Report' => "Raportuj", 'ReportPostEmailBody' => "Witaj,\n\nUżytkownik %reportedby% zgłosił wiadomość do raportu. Powód zgłoszenia to:\n\n%explanation%\n\n<%url%>\n\nForum: %forumname%\nTemat: %subject%\nAutor: %author%\nIP: %ip%\nData: %date%\nTreść:\n\n%body%\n\nJeżeli chcesz skasować tę wiadomość kliknij:\n<%delete_url%>.\nJeżeli chcesz ukryć tę wiadomość kliknij:\n<%hide_url%>.\nJeżeli chcesz zmienić tę wiadomość kliknij:\n<%edit_url%>.\nProfil użytkownika zgłaszającego: %reportedby%:\n<%reporter_url%>.\n\n-- \n{$PHORUM['title']}", 'ReportPostEmailSubject' => "[%forumname%] Wiadomość zgłoszona Moderatorom", 'ReportPostExplanation' => "Możesz opcjonalnie podać wyjaśnienie dlaczego raportujesz tę wiadomość. Pomoże to moderatorom zrozumieć powód wysyłania raportu.", 'ReportPostNotAllowed' => "Musisz być zalogowany(a), żeby wysłać raport dotyczący tej wiadomości.", 'ReportPostSuccess' => "Do moderatorów forum został wysłany raport dotyczący tej wiadomości.", 'RequireCookies' => "Żeby zalogować się na forum musisz mieć włączone akceptowanie cookies.", 'Required' => "Pola wymagane", 'Results' => "Wyniki", 'SaveChanges' => "Zapisz zmiany", 'ScriptUsage' => "\nUżycie: php script.php [--module=<module_name>] [--scheduled] [options]\r\n\r\n --module=<module_name> Uruchomienie uchwytu \"external\" dla danego modułu,\r\n unless --scheduled is specified as well, in which\r\n case this parameter will be used to restrict the\r\n module(s) for which to run the \"scheduled\" hook.\r\n --scheduled Run the \"scheduled\" hooks in all available modules.\r\n If one or more modules are configured using\r\n --module / -m, then the \"scheduled\" hook will\r\n only run for the specified module(s).\r\n\r\n -m <module_name> Alias do --module=<module_name>\r\n -s Alias do --scheduled\r\n\r\n [options] Podczas uruchomienia uchwytu \"external\" dla modułu te \r\n opcje zostana przekazane do modułu.\r\n Gdy zostanie użyty przełącznik --scheduled, [options] są ignorowane.\n\n", 'Search' => "Szukaj", 'SearchAllPosts' => "Pokaż wszystkie wiadomości użytkownika", 'SearchAuthors' => "Szukaj autorów", 'SearchMessages' => "Szukaj wiadomości", 'SearchRunning' => "Trwa wyszukiwanie, proszę czekać.", 'SelectForum' => "Wybierz forum ...", 'SelectGroupMod' => "Wybierz grupę do moderacji", 'SendPM' => "Wyślij prywatną wiadomość", 'SentItems' => "Wysłane", 'ShortBody' => "Fragment wiadomości", 'Show' => "Pokaż", 'ShowAll' => "Pokaż wszystko", 'ShowApproved' => "Zatwierdzeni użytkownicy", 'ShowGroupModerator' => "Moderatorzy grup", 'ShowOnlyMessages' => "Pokaż", 'ShowPosts' => "Pokaż wszystkie posty", 'ShowSuspended' => "Uśpieni użytkownicy", 'ShowUnapproved' => "Użytkownicy oczekujący na akceptację", 'Signature' => "Podpis", 'Special' => "Specjalne", 'SplitThread' => "Podziel", 'SplitThreadMsgSubject' => "Tytuł wątku zostanie odziedziczony po wiadomości:", 'SplitThreadInfo' => "Czy wydzielić tę wiadomość i odpowiedzi do nowego wątku ?", 'Status' => "Status", 'StartNewTopic' => "Rozpocznij nowy wątek", 'StartedBy' => "Rozpoczęty przez", 'Sticky' => "Przyklejony", 'Subject' => "Temat", 'Submit' => "Wyślij", 'Subscriptions' => "Śledzone wątki", 'Surname' => "Nazwisko", 'Suspended' => "Zawieszony", 'Template' => "Szablon", 'Thread' => "Wątek", 'ThreadClosed' => "Nie możesz pisać w tym wątku, ponieważ został on zamknięty przez moderatora.", 'ThreadClosedOk' => "Wątek został zamknięty.", 'ThreadReopenedOk' => "Wątek został ponownie otwarty.", 'ThreadViewList' => "Sposób wyświetlania wątków - lista wątków", 'ThreadViewRead' => "Sposób wyświetlania wątków - lista wiadomości w wątku", 'Threads' => "Wątki", 'Timezone' => "Strefa czasowa użytkownika", 'To' => "Do", 'TotalFileSize' => "Zajęte miejsce", 'TotalFiles' => "Liczba plików", 'TotalRecipients' => "wszystkich odbiorców", 'Unapproved' => "Oczekujący na zatwierdzenie", 'UnapprovedGroupMembers' => "Są nowi członkowie w grupach oczekujący na zatwierdzenie.", 'UnapprovedMessage' => "Niezatwierdzona wiadomość", 'UnapprovedMessages' => "Niezatwierdzone wiadomości", 'UnapprovedMessagesLong' => "Są niezatwierdzone wiadomości", 'UnapprovedUsers' => "Niezatwierdzeni użytkownicy", 'UnapprovedUsersLong' => "Są niezatwierdzeni użytkownicy", 'UnknownUser' => "Użytkownik nie istnieje lub jest nieaktywny", 'Update' => "Zapisz zmiany", 'UploadFile' => "Dodaj nowy plik", 'UploadNotAllowed' => "Przesyłanie plików na serwer nie jest dozwolone.", 'UserAddedToGroup' => "Użytkownik został dodany do grupy.", 'UserNotFound' => "Użytkownik, do którego chcesz wysłać wiadomość nie istnieje. Sprawdź nazwę i spróbuj ponownie.", 'UserNotFoundGroup' => "Użytkownik, którego chcesz dodać do grupy nie istnieje. Sprawdź nazwę i spróbuj ponownie.", 'UserPermissions' => "Status użytkownika", 'UserProfile' => "Profil użytkownika", 'Username' => "Nazwa użytkownika", 'VerifyRegEmailBody1' => "Witaj,\n\nW celu weryfikacji konta na forum {$PHORUM['title']} kliknij na link poniżej.", 'VerifyRegEmailBody2' => "Po zweryfikowaniu konta możesz zalogować się na forum pod adresem " . phorum_get_url(PHORUM_LOGIN_URL) . "\n\n-- \n{$PHORUM['title']}", 'VerifyRegEmailSubject' => "Weryfikacja konta na forum", 'ViewChanges' => "zobacz zmiany", 'ViewFlatList' => "Pierwsza wiadomość w wątku", 'ViewFlatRead' => "Wiele wiadomości na stronie pokazane w/g czasu napisania", 'ViewHybridRead' => "Wiele wiadomości na stronie, powątkowane", 'ViewJoinGroups' => "Widok i dołączanie do grup", 'ViewProfile' => "Pokaż mój profil", 'ViewThreadedList' => "Wszystkie wiadomości w wątku, powątkowane", 'ViewThreadedRead' => "Jedna wiadomość na stronie z powątkowaną listą", 'Views' => "Odsłon", 'Views_Subject' => "odsłon", 'Warning' => "Ostrzeżenie", 'Welcome' => "Witaj", 'WrittenBy' => "Napisane przez", 'Wrote' => "Napisał(a)", 'Year' => "Rok", 'Yes' => "Tak", 'YouWantToFollow' => "Wybrany przez Ciebie wątek do śledzenia to:", 'YourEmail' => "E-mail", 'YourName' => "Nazwa użytkownika", 'again' => "powtórz", 'by' => "przez", 'mod_foo' => '***' . 'mod_foo', 'newflag' => "Nowe", 'noreplies' => "brak odpowiedzi", 'of' => "z", 'relative_ago' => "temu", 'relative_days' => "dni", 'relative_months' => "miesięcy", 'relative_one_day' => "1 dzień", 'relative_one_year' => "1 rok", 'relative_today' => "Dzisiaj", 'relative_tomorrow' => "Jutro", 'relative_weeks' => "tygodni", 'relative_years' => "lat", 'relative_yesterday' => "Wczoraj", 'replies' => "odpowiedzi", 'reply' => "odpowiedz", 'Action' => "Akcja", 'Error' => "Błąd", 'read' => "czytaj"); // ============================================================ // Timezone description strings // ============================================================ $PHORUM['DATA']['LANG']['TIME'] = array('-12' => "(GMT - 12:00 godzin) Międzynarodowa linia zmiany daty - Zachód", '-11' => "(GMT - 11:00 godzin) Wyspa Midway, Samoa", '-10' => "(GMT - 10:00 godzin) Hawaje", '-9' => "(GMT - 9:00 godzin) Alaska", '-8' => "(GMT - 8:00 godzin) Czas pacyficzny (US & Canada)", '-7' => "(GMT - 7:00 godzin) Czas górski (US & Canada), Arizona", '-6' => "(GMT - 6:00 godzin) Czas środkowy (US & Canada), Mexico City, Ameryka Środkowa", '-5' => "(GMT - 5:00 godzin) Czas wschodni (US & Canada), Bogota, Lima, Quito", '-4.5' => "(GMT -4:30 godziny) Caracas (Wenezuela)", '-4' => "(GMT - 4:00 godziny) Czas atlantycki (Canada), La Paz", '-3.5' => "(GMT - 3:30 godziny) Nowa Funlandia", '-3' => "(GMT - 3:00 godziny) Brazylia, Buenos Aires, Georgetown, Grenlandia", '-2' => "(GMT - 2:00 godzin) Środkowy Atlantyk", '-1' => "(GMT - 1:00 godzina) Azory, Wyspy Zielonego Przylądka", '0' => "(GMT) Casablanca, Dublin, Edynburg, Londyn, Lizbona, Monrovia", '1' => "(GMT + 1:00 godzina) Berlin, Bruksela, Madryt, Paryż, Praga, Rzym, Warszawa", '2' => "(GMT + 2:00 godziny) Ateny, Mińsk, Bukareszt, Kijów, Wilno, Jerozolima, Kair, Afryka Południowa", '3' => "(GMT + 3:00 godziny) Bagdad, Kuwejt, Riad, Moskwa, Nairobi", '3.5' => "(GMT + 3:30 godziny) Teheran", '4' => "(GMT + 4:00 godziny) Abu Dabi, Baku, Erewan, Maskat, Tbilisi", '4.5' => "(GMT + 4:30 godziny) Kabul", '5' => "(GMT + 5:00 godzin) Islamabad, Karaczi, Taszkient", '5.5' => "(GMT + 5:30 godziny) Bombaj, Kalkuta", '5.75' => "(GMT + 5:45 godziny) Nepal", '6' => "(GMT + 6:00 godzin) Ałma-Ata, Dakka", '7' => "(GMT + 7:00 godzin) Bangkok, Hanoi, Dżakarta", '8' => "(GMT + 8:00 godzin) Irkuck, Ułan Bator, Hongkong, Pekin, Singapur, Tajpej", '9' => "(GMT + 9:00 godzin) Osaka, Sapporo, Seul, Tokio", '9.5' => "(GMT + 9:30 godzin) Adelajde, Darwin", '10' => "(GMT + 10:00 godzin) Melbern, Papua Nowa Gwinea, Sydney, Władywostok", '11' => "(GMT + 11:00 godzin) Magadan, Nowa Kaledonia, Wyspy Salomona", '12' => "(GMT + 12:00 godzin) Auckland, Wellington, Fidżi, Wyspy Marszala");
} else { $readlen = $PHORUM["read_length"]; $pages = ceil(($top_parent["thread_count"] + 1) / $readlen); if ($pages > 1) { $redir_url = phorum_get_url(PHORUM_READ_URL, $message["thread"], $message["message_id"], "page={$pages}"); } else { $redir_url = phorum_get_url(PHORUM_READ_URL, $message["thread"], $message["message_id"]); } } // This starter message: Jump to the thread starter message or to // the forum's message list in case the new message is not viewable. } else { $redir_url = $not_viewable ? phorum_get_url(PHORUM_LIST_URL) : phorum_get_url(PHORUM_READ_URL, $message["thread"]); } } else { $redir_url = phorum_get_url(PHORUM_LIST_URL); } if ($message["status"] > 0) { phorum_redirect_by_url($redir_url); } else { // give a message about this being a moderated forum before redirecting $PHORUM['DATA']['OKMSG'] = $PHORUM['DATA']['LANG']['ModeratedForum']; $PHORUM['DATA']["URL"]["REDIRECT"] = $redir_url; // BACKMSG is depending on the place we are returning to if ($PHORUM["redirect_after_post"] == "read") { $PHORUM['DATA']['BACKMSG'] = $PHORUM['DATA']['LANG']['BackToThread']; } else { $PHORUM['DATA']['BACKMSG'] = $PHORUM['DATA']['LANG']['BackToList']; } // make it a little bit more visible $PHORUM['DATA']["URL"]["REDIRECT_TIME"] = 10;
phorum_db_file_delete($file_id); } } $files = phorum_db_get_user_file_list($PHORUM["user"]["user_id"]); $total_size=0; foreach($files as $key => $file) { $files[$key]["filesize"] = phorum_filesize($file["filesize"]); $files[$key]["dateadded"]=phorum_date($PHORUM["short_date"], $file["add_datetime"]); $files[$key]["url"]=phorum_get_url(PHORUM_FILE_URL, "file=$key"); $total_size+=$file["filesize"]; } $template = "cc_files"; if($PHORUM["max_file_size"]){ $PHORUM["DATA"]["FILE_SIZE_LIMIT"]=$PHORUM["DATA"]["LANG"]["FileSizeLimits"] . ' ' . phorum_filesize($PHORUM["max_file_size"]*1024); } if($PHORUM["file_types"]){ $PHORUM["DATA"]["FILE_TYPE_LIMIT"]=$PHORUM["DATA"]["LANG"]["FileTypeLimits"]; } if($PHORUM["file_space_quota"]){
if(isset($PHORUM['DATA']['PROFILE']['email_temp_part']) && !empty($_POST['email_verify_code']) && $PHORUM['DATA']['PROFILE']['email_temp_part']."|".$_POST['email_verify_code'] == $PHORUM['DATA']['PROFILE']['email_temp']) { $_POST['email']=$PHORUM['DATA']['PROFILE']['email_temp_part']; $_POST['email_temp']=""; unset($email_temp_part); } elseif($PHORUM['registration_control'] && !empty($_POST['email']) && strtolower($_POST['email']) != strtolower($PHORUM["DATA"]["PROFILE"]['email'])) { // ... generate the confirmation-code ... // $conf_code= mt_rand ( 1000000, 9999999); $_POST['email_temp']=$_POST['email']."|".$conf_code; // ... send email ... // $maildata=array( 'mailmessage' => wordwrap($PHORUM['DATA']['LANG']['EmailVerifyBody'], 72), 'mailsubject' => $PHORUM['DATA']['LANG']['EmailVerifySubject'], 'uname' => $PHORUM['DATA']['PROFILE']['username'], 'newmail' => $_POST['email'], 'mailcode' => $conf_code, 'cc_url' => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_MAIL) ); phorum_email_user(array($_POST['email']),$maildata); // Remember this for the template. $email_temp_part = $_POST['email']; unset($_POST['email']); } list($error,$okmsg) = phorum_controlcenter_user_save( $panel ); } } if (isset($email_temp_part)) { $PHORUM['DATA']['PROFILE']['email_temp_part'] = $email_temp_part; }
$user = phorum_api_user_get($message["user_id"]); if (isset($PHORUM["hooks"]["read_user_info"])) { $user_info = phorum_hook("read_user_info", array($user["user_id"] => $user)); $user = array_shift($user_info); } if ($user && $message["show_signature"]) { $previewmessage["body"] .= "\n\n" . $user["signature"]; } } // Add the list of attachments. if ($attach_count) { define('PREVIEW_NO_ATTACHMENT_CLICK', "javascript:alert('" . $PHORUM["DATA"]["LANG"]["PreviewNoClickAttach"] . "')"); // Create the URL and formatted size for attachment files. foreach ($previewmessage["attachments"] as $nr => $data) { $previewmessage["attachments"][$nr]["url"] = phorum_get_url(PHORUM_FILE_URL, "file={$data['file_id']}", "filename=" . urlencode($data['name'])); $previewmessage["attachments"][$nr]["download_url"] = phorum_get_url(PHORUM_FILE_URL, "file={$data['file_id']}", "filename=" . urlencode($data['name']), "download=1"); $previewmessage["attachments"][$nr]["size"] = phorum_filesize($data["size"]); $previewmessage["attachments"][$nr]["name"] = htmlspecialchars($data['name'], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]); } } // Fill the author for new postings with the display name // for authenticated users, if editing the author // field is not allowed. if (($mode == "post" || $mode == "reply") && !$PHORUM["DATA"]["OPTION_ALLOWED"]["edit_author"] && $PHORUM["DATA"]["LOGGEDIN"]) { $previewmessage["author"] = $message["author"] = $PHORUM["user"]["display_name"]; $u = phorum_api_user_get($message["user_id"]); $previewmessage["authorcolor"] = $u["usercolor"]; $previewmessage["authorinitial"] = $u["userinitial"]; $previewmessage["adminstatus"] = $u["admin"]; } // Format the message using the default formatting.
function phorum_email_moderators($message) { $PHORUM=$GLOBALS["PHORUM"]; $mail_users = phorum_user_get_moderators($PHORUM['forum_id'],false,true); if (count($mail_users)) { include_once("./include/format_functions.php"); if($message["status"] > 0) { // just notification of a new message $mailtext = $PHORUM["DATA"]["LANG"]['NewUnModeratedMessage']; } else { // posts needing approval $mailtext = $PHORUM["DATA"]["LANG"]['NewModeratedMessage']; } $mail_data = array( "mailmessage" => $mailtext, "mailsubject" => $PHORUM["DATA"]["LANG"]['NewModeratedSubject'], "forumname" => strip_tags($PHORUM["DATA"]["NAME"]), "forum_id" => $PHORUM['forum_id'], "message_id" => $message['message_id'], "author" => $message['author'], "subject" => $message['subject'], "full_body" => $message['body'], "plain_body" => phorum_strip_body($message['body']), "approve_url" => phorum_get_url(PHORUM_PREPOST_URL), "read_url" => phorum_get_url(PHORUM_READ_URL, $message['thread'], $message['message_id']) ); if (isset($_POST[PHORUM_SESSION_LONG_TERM])) { // strip any auth info from the read url $mail_data["read_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["read_url"]); $mail_data["approve_url"] = preg_replace("!,{0,1}" . PHORUM_SESSION_LONG_TERM . "=" . urlencode($_POST[PHORUM_SESSION_LONG_TERM]) . "!", "", $mail_data["approve_url"]); } phorum_email_user($mail_users, $mail_data); } }
<td valign="left" style="white-space:nowrap; font-size: 10px">' . phorum_date($PHORUM['short_date'], $loginfo["datestamp"]) . '</td> <td valign="left" style="white-space:nowrap; font-size: 10px">' . phorum_date($PHORUM['short_time'], $loginfo["datestamp"]) . '</td> <td valign="middle" style="white-space:nowrap; font-size: 10px"> <a title="Extend filter using this source" href="' . $filter_base . '&source=' . urlencode($loginfo["source"]) . '">' . htmlspecialchars($loginfo["source"]) . '</a> </td> <td valign="middle" style="font-size: 10px"> <a title="Extend filter using this category" href="' . $filter_base . '&show_category[' . urlencode($loginfo["category"]) . ']=1">' . $cat . '</a> </td> <td valign="middle" style="font-size: 12px">' . htmlspecialchars($message) . '</td> <td valign="middle"> <a href="#" onclick="return toggle_detail_visibility(' . $loginfo["log_id"] . ')"><small>details</small></a> </td> </tr> <tr> <td style="border-bottom: 1px solid #888"></td> <td colspan="6" style="border-bottom: 1px solid #888"> <div style="display:none;overflow:auto;border:1px solid #aaa; padding:10px; margin-bottom: 10px" id="detail_' . $loginfo["log_id"] . '"> <b>User info:</b><br/><br/>' . ($loginfo["user_id"] ? "User ID = <a title=\"Extend filter using this User ID\" href=\"{$filter_base}&user_id=" . urlencode($loginfo["user_id"]) . "\">{$loginfo["user_id"]}</a>" . ($loginfo["username"] !== NULL ? ', username = '******'') . ' [ <a target="_new" href="' . phorum_get_url(PHORUM_PROFILE_URL, $loginfo["user_id"]) . '">view user\'s profile</a> ]' : "Anonymous user") . '<br/>' . 'User IP address = <a title="Extend filter using this IP address" href="' . $filter_base . '&ip=' . urlencode($loginfo["ip"]) . '">' . $loginfo["ip"] . '</a>' . ($loginfo["hostname"] !== NULL ? ', hostname = ' . htmlspecialchars($loginfo["hostname"]) : '') . '<br/>' . ($message_url !== NULL ? '<br/><b>Related message:</b><br/> Forum = ' . $loginfo["forum"] . '<br/> Message ID = ' . $loginfo["message_id"] . '<br/> [ <a target="_new" href="' . htmlspecialchars($message_url) . '">view message</a> ]<br/>' : '') . ($details !== NULL ? '<br/><b>Additional details:</b><br/><br/>' . nl2br(htmlspecialchars($details)) . '<br/>' : '') . '<br/> </div> </td> </tr>'; } ?> </tbody> </table>
function phorum_mod_event_logging_before_footer() { $rand = rand(1, 100); if ($rand <= EVENT_LOGGING_GC_SPLAY) { $img_url = phorum_get_url(PHORUM_ADDON_URL, 'module=event_logging'); print '<img src="' . $img_url . '" width="1" height="1" />'; } }
if ($thread && $PHORUM["forum_id"]) { // could happen with long threads if (!isset($messages[$thread])) { $thread_start = phorum_db_get_message($thread); } else { $thread_start = $messages[$thread]; } $feed_url = phorum_get_url(PHORUM_FOREIGN_READ_URL, $PHORUM["forum_id"], $thread, $thread); $feed_title = strip_tags($thread_start["subject"]); $feed_description = strip_tags($thread_start["body"]); } elseif ($PHORUM["forum_id"]) { $feed_url = phorum_get_url(PHORUM_LIST_URL); $feed_title = strip_tags($PHORUM["DATA"]["TITLE"] . " - " . $PHORUM["DATA"]["NAME"]); $feed_description = strip_tags($PHORUM["DATA"]["DESCRIPTION"]); } else { $feed_url = phorum_get_url(PHORUM_INDEX_URL); $feed_title = strip_tags($PHORUM["DATA"]["TITLE"]); $feed_description = !empty($PHORUM["description"]) ? $PHORUM["description"] : ""; } // Put the users back in the messages array for the feed functions. $messages["users"] = $users; switch ($feed_type) { case "html": $data = phorum_feed_make_html($messages, $forums, $feed_url, $feed_title, $feed_description); $content_type = "text/html"; break; case "js": $data = phorum_feed_make_js($messages, $forums, $feed_url, $feed_title, $feed_description); $content_type = "text/javascript"; break; case "atom":
$templates[] = "message"; } else { // Prepare the arguments for the posting.php script. $goto_mode = "reply"; if (isset($PHORUM["args"]["quote"]) && $PHORUM["args"]["quote"]) { $goto_mode = "quote"; } $PHORUM["postingargs"] = array(1 => $goto_mode, 2 => $message_id, "as_include" => true); include "./posting.php"; } } phorum_output($templates); } elseif ($toforum = phorum_check_moved_message($thread)) { // is it a moved thread? $PHORUM["DATA"]["OKMSG"] = $PHORUM["DATA"]["LANG"]["MovedMessage"]; $PHORUM['DATA']["URL"]["REDIRECT"] = phorum_get_url(PHORUM_FOREIGN_READ_URL, $toforum, $thread); $PHORUM['DATA']["BACKMSG"] = $PHORUM["DATA"]["LANG"]["MovedMessageTo"]; $PHORUM["DATA"]["HTML_TITLE"] = htmlspecialchars($PHORUM["DATA"]["HTML_TITLE"], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]); // have to include the header here for the Redirect phorum_output("message"); } else { // message not found $PHORUM["DATA"]["ERROR"] = $PHORUM["DATA"]["LANG"]["MessageNotFound"]; $PHORUM['DATA']["URL"]["REDIRECT"] = $PHORUM["DATA"]["URL"]["LIST"]; $PHORUM['DATA']["BACKMSG"] = $PHORUM["DATA"]["LANG"]["BackToList"]; $PHORUM["DATA"]["HTML_TITLE"] = htmlspecialchars($PHORUM["DATA"]["HTML_TITLE"], ENT_COMPAT, $PHORUM["DATA"]["HCHARSET"]); // have to include the header here for the Redirect phorum_output("message"); } // find out if the given thread has been moved to another forum function phorum_check_moved_message($thread)
$_POST['moderation_email'] = isset($_POST['moderation_email']) && phorum_api_user_check_access(PHORUM_USER_ALLOW_MODERATE_MESSAGES, PHORUM_ACCESS_ANY) ? 1 : 0; // Remember this for the template. if (isset($PHORUM['DATA']['PROFILE']['email_temp_part'])) { $email_temp_part = $PHORUM['DATA']['PROFILE']['email_temp_part']; } // do we need to send a confirmation-mail? if (isset($PHORUM['DATA']['PROFILE']['email_temp_part']) && !empty($_POST['email_verify_code']) && $PHORUM['DATA']['PROFILE']['email_temp_part'] . "|" . $_POST['email_verify_code'] == $PHORUM['DATA']['PROFILE']['email_temp']) { $_POST['email'] = $PHORUM['DATA']['PROFILE']['email_temp_part']; $_POST['email_temp'] = ""; $email_temp_part = ""; } elseif ($PHORUM['registration_control'] && !empty($_POST['email']) && strtolower($_POST['email']) != strtolower($PHORUM["DATA"]["PROFILE"]['email'])) { // ... generate the confirmation-code ... // $conf_code = mt_rand(1000000, 9999999); $_POST['email_temp'] = $_POST['email'] . "|" . $conf_code; // ... send email ... // $maildata = array('mailmessage' => wordwrap($PHORUM['DATA']['LANG']['EmailVerifyBody'], 72), 'mailsubject' => $PHORUM['DATA']['LANG']['EmailVerifySubject'], 'uname' => $PHORUM['DATA']['PROFILE']['username'], 'newmail' => $_POST['email'], 'mailcode' => $conf_code, 'cc_url' => phorum_get_url(PHORUM_CONTROLCENTER_URL, "panel=" . PHORUM_CC_MAIL)); phorum_email_user(array($_POST['email']), $maildata); // Remember this for the template. $email_temp_part = $_POST['email']; unset($_POST['email']); } list($error, $okmsg) = phorum_controlcenter_user_save($panel); } } if (!empty($email_temp_part)) { $PHORUM['DATA']['PROFILE']['email_temp_part'] = $email_temp_part; } // TEMPLATETODO // flip this due to db vs. UI wording. if (!empty($PHORUM['DATA']['PROFILE']["hide_email"])) { $PHORUM["DATA"]["PROFILE"]["hide_email_checked"] = "";