Esempio n. 1
0
function nel_newline_cleanup($string)
{
    if (nel_clear_whitespace($string) !== '') {
        $string = utf8_str_replace("\r", "\n", $string);
        if (utf8_substr_count($string, "\n") < BS_MAX_COMMENT_LINES) {
            $string = utf8_str_replace("\n\n", "<br>", $string);
            $string = utf8_str_replace("\n", "<br>", $string);
        } else {
            $string = utf8_str_replace("\n", "", $string);
            // \n is erased
        }
    }
    return $string;
}
Esempio n. 2
0
function nel_render_post($dataforce, $render, $response, $partial, $gen_data, $treeline, $dbh)
{
    global $link_resno;
    $render->add_data('insert_hr', $gen_data['insert_hr']);
    $post_data = $treeline[$gen_data['post_counter']];
    $render->add_multiple_data($post_data);
    if ($partial) {
        $link_resno = 0;
    } else {
        $link_resno = $dataforce['response_id'];
    }
    $render->add_data('expand_post', $gen_data['expand_post']);
    $render->add_data('first100', $gen_data['first100']);
    $render->add_data('response_id', $dataforce['response_id']);
    $render->add_data('tripcode', !is_null($post_data['tripcode']) ? BS_TRIPKEY_MARKER . $post_data['tripcode'] : '');
    $render->add_data('secure_tripcode', !is_null($post_data['secure_tripcode']) ? BS_TRIPKEY_MARKER . BS_TRIPKEY_MARKER . $post_data['secure_tripcode'] : '');
    $post_data['comment'] = nel_newline_cleanup($post_data['comment']);
    $post_data['comment'] = preg_replace('#(^|>)(&gt;[^<]*|ÅÑ[^<]*)#', '$1<span class="post-quote">$2</span>', $post_data['comment']);
    $post_data['comment'] = preg_replace_callback('#&gt;&gt;([0-9]+)#', 'nel_parse_links', $post_data['comment']);
    if (nel_clear_whitespace($post_data['comment']) === '') {
        $post_data['comment'] = nel_stext('THREAD_NOTEXT');
    }
    $render->add_sanitized_data('comment-part', utf8_str_replace('>><a href="../"', '>><a href="', $post_data['comment']));
    $render->add_sanitized_data('comment', $post_data['comment']);
    $render->add_sanitized_data('name', $post_data['name']);
    $render->add_sanitized_data('email', $post_data['email']);
    $render->add_sanitized_data('subject', $post_data['subject']);
    $render->add_data('sticky', (bool) $post_data['sticky']);
    $temp_dot = $partial ? '' : $dataforce['dotdot'];
    $post_id = $response ? $post_data['response_to'] : $post_data['post_number'];
    if (!$dataforce['omitted_done']) {
        $render->add_data('omitted_count', $gen_data['post_count'] - BS_ABBREVIATE_THREAD);
        $render->add_data('omitted_posts', TRUE);
    } else {
        $render->add_data('omitted_posts', FALSE);
    }
    if ($gen_data['has_file']) {
        $render->add_data('has_file', TRUE);
        $filecount = count($gen_data['files']);
        $render->add_data('multifile', $filecount > 1 ? TRUE : FALSE);
        $i = 0;
        $files = $gen_data['files'];
        while ($i < $filecount) {
            $files[$i]['img_dim'] = !is_null($files[$i]['image_width']) && !is_null($files[$i]['image_height']) ? TRUE : FALSE;
            $files[$i]['file_location'] = $temp_dot . SRC_DIR . $post_id . '/' . $files[$i]['filename'] . "." . $files[$i]['extension'];
            $files[$i]['filesize'] = round((int) $files[$i]['filesize'] / 1024, 2);
            if (BS1_USE_THUMB) {
                if (isset($files[$i]['preview_name'])) {
                    $files[$i]['has_preview'] = TRUE;
                    $files[$i]['preview_location'] = $temp_dot . THUMB_DIR . $post_id . '/' . $files[$i]['preview_name'];
                    if ($files[$i]['preview_width'] != 0) {
                        if ($files[$i]['preview_width'] > BS_MAX_MULTI_WIDTH || $files[$i]['preview_height'] > BS_MAX_MULTI_HEIGHT) {
                            $ratio = min(BS_MAX_MULTI_HEIGHT / $files[$i]['preview_height'], BS_MAX_MULTI_WIDTH / $files[$i]['preview_width']);
                            $files[$i]['preview_width'] = intval($ratio * $files[$i]['preview_width']);
                            $files[$i]['preview_height'] = intval($ratio * $files[$i]['preview_height']);
                        }
                    }
                } else {
                    if (BS1_USE_FILE_ICON && file_exists(BOARD_FILES . 'imagez/nelliel/filetype/' . utf8_strtolower($files[$i]['supertype']) . '/' . utf8_strtolower($files[$i]['subtype']) . '.png')) {
                        $files[$i]['has_preview'] = TRUE;
                        $files[$i]['preview_location'] = $temp_dot . BOARD_FILES . '/imagez/nelliel/filetype/' . utf8_strtolower($files[$i]['supertype']) . '/' . utf8_strtolower($files[$i]['subtype']) . '.png';
                        $files[$i]['preview_width'] = BS_MAX_WIDTH < 64 ? BS_MAX_WIDTH : '128';
                        $files[$i]['preview_height'] = BS_MAX_HEIGHT < 64 ? BS_MAX_HEIGHT : '128';
                    } else {
                        $files[$i]['has_preview'] = FALSE;
                    }
                }
            } else {
                $files[$i]['has_preview'] = FALSE;
            }
            $files[$i]['source'] = nel_cleanse_the_aids($files[$i]['source']);
            $files[$i]['license'] = nel_cleanse_the_aids($files[$i]['license']);
            $files[$i]['endline'] = ($i + 1) % BS_MAX_FILES_ROW == 0 ? TRUE : FALSE;
            ++$i;
        }
        $render->add_data('files', $files);
    } else {
        $render->add_data('multifile', FALSE);
    }
    $curr_time = floor($render->retrieve_data('post_time') / 1000);
    switch (BS_DATE_FORMAT) {
        case 'ISO':
            $render->add_data('post_time', date("Y", $curr_time) . BS_DATE_SEPARATOR . date("m", $curr_time) . BS_DATE_SEPARATOR . date("d (D) H:i:s", $curr_time));
            break;
        case 'US':
            $render->add_data('post_time', date("m", $curr_time) . BS_DATE_SEPARATOR . date("d", $curr_time) . BS_DATE_SEPARATOR . date("Y (D) H:i:s", $curr_time));
            break;
        case 'COM':
            $render->add_data('post_time', date("d", $curr_time) . BS_DATE_SEPARATOR . date("m", $curr_time) . BS_DATE_SEPARATOR . date("Y (D) H:i:s", $curr_time));
            break;
    }
    switch ($render->retrieve_data('mod_post')) {
        case '1':
            $render->add_data('staff_post', nel_stext('THREAD_JANPOST'));
            $render->add_data('secure_tripcode', '');
            break;
        case '2':
            $render->add_data('staff_post', nel_stext('THREAD_MODPOST'));
            $render->add_data('secure_tripcode', '');
            break;
        case '3':
            $render->add_data('staff_post', nel_stext('THREAD_ADMINPOST'));
            $render->add_data('secure_tripcode', '');
            break;
        default:
            $render->add_data('staff_post', '');
    }
    $render->add_data('logged_in', FALSE);
    $render->add_data('page_ref1', PHP_SELF2 . PHP_EXT);
    $render->add_data('page_ref2', '');
    if (!empty($_SESSION) && !$_SESSION['ignore_login']) {
        $render->add_data('logged_in', TRUE);
        $render->add_data('host', @inet_ntop($render->retrieve_data('host')) ? inet_ntop($render->retrieve_data('host')) : 'Unknown');
        $render->add_data('perm_ban', $_SESSION['perms']['perm_ban']);
        $render->add_data('page_ref1', PHP_SELF . '?mode=display&page=0');
        $render->add_data('page_ref2', PHP_SELF . '?page=');
        $render->add_data('the_session', session_id());
    }
    if ($response) {
        $render->parse('response_post.tpl', '');
    } else {
        $render->parse('op_post.tpl', '');
    }
}