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; }
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('#(^|>)(>[^<]*|ÅÑ[^<]*)#', '$1<span class="post-quote">$2</span>', $post_data['comment']); $post_data['comment'] = preg_replace_callback('#>>([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', ''); } }