Example #1
0
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();
}
Example #3
0
    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");
Example #4
0
    $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();
Example #5
0
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);
}
Example #6
0
    $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";
Example #7
0
    $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" );
Example #8
0
$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
Example #9
0
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;
}
Example #10
0
     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"] = "&nbsp;";
     }
     $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;
Example #11
0
                }
                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);
Example #12
0
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();
}
Example #13
0
}

// 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.
Example #14
0
// 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));
Example #15
0
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);
    }
}
Example #16
0
/**
 * 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;
}
Example #17
0
    // 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";
Example #18
0
<?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();

?>
Example #19
0
File: pm.php Project: mgs2/kw-forum
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;
}
Example #20
0
$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 &quot;Dołącz mój podpis do tej wiadomości&quot; 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 &amp; Canada)", '-7' => "(GMT - 7:00 godzin) Czas górski (US &amp; Canada), Arizona", '-6' => "(GMT - 6:00 godzin) Czas środkowy (US &amp; Canada), Mexico City, Ameryka Środkowa", '-5' => "(GMT - 5:00 godzin) Czas wschodni (US &amp; 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");
Example #21
0
         } 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;
Example #22
0
            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"]){
Example #23
0
        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;
}
Example #24
0
    $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.
Example #25
0
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);
    }
}
Example #26
0
        <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 = '******'') . '&nbsp;[&nbsp;<a target="_new" href="' . phorum_get_url(PHORUM_PROFILE_URL, $loginfo["user_id"]) . '">view user\'s profile</a>&nbsp]' : "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/>
                [&nbsp;<a target="_new" href="' . htmlspecialchars($message_url) . '">view message</a>&nbsp;]<br/>' : '') . ($details !== NULL ? '<br/><b>Additional details:</b><br/><br/>' . nl2br(htmlspecialchars($details)) . '<br/>' : '') . '<br/>
          </div>
        </td>
      </tr>';
}
?>
 </tbody>
</table>

Example #27
0
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" />';
    }
}
Example #28
0
 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":
Example #29
0
            $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)
Example #30
0
        $_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"] = "";