Mercurial > hg > vamp-website
diff forum/Sources/Printpage.php @ 76:e3e11437ecea website
Add forum code
author | Chris Cannam |
---|---|
date | Sun, 07 Jul 2013 11:25:48 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/forum/Sources/Printpage.php Sun Jul 07 11:25:48 2013 +0200 @@ -0,0 +1,107 @@ +<?php + +/** + * Simple Machines Forum (SMF) + * + * @package SMF + * @author Simple Machines http://www.simplemachines.org + * @copyright 2011 Simple Machines + * @license http://www.simplemachines.org/about/smf/license.php BSD + * + * @version 2.0 + */ + +if (!defined('SMF')) + die('Hacking attempt...'); + +/* This file contains just one function that formats a topic to be printer + friendly. + + void PrintTopic() + - is called to format a topic to be printer friendly. + - must be called with a topic specified. + - uses the Printpage (main sub template.) template. + - uses the print_above/print_below later without the main layer. + - is accessed via ?action=printpage. +*/ + +function PrintTopic() +{ + global $topic, $txt, $scripturl, $context, $user_info; + global $board_info, $smcFunc, $modSettings; + + // Redirect to the boardindex if no valid topic id is provided. + if (empty($topic)) + redirectexit(); + + // Whatever happens don't index this. + $context['robot_no_index'] = true; + + // Get the topic starter information. + $request = $smcFunc['db_query']('', ' + SELECT m.poster_time, IFNULL(mem.real_name, m.poster_name) AS poster_name + FROM {db_prefix}messages AS m + LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member) + WHERE m.id_topic = {int:current_topic} + ORDER BY m.id_msg + LIMIT 1', + array( + 'current_topic' => $topic, + ) + ); + // Redirect to the boardindex if no valid topic id is provided. + if ($smcFunc['db_num_rows']($request) == 0) + redirectexit(); + $row = $smcFunc['db_fetch_assoc']($request); + $smcFunc['db_free_result']($request); + + // Lets "output" all that info. + loadTemplate('Printpage'); + $context['template_layers'] = array('print'); + $context['board_name'] = $board_info['name']; + $context['category_name'] = $board_info['cat']['name']; + $context['poster_name'] = $row['poster_name']; + $context['post_time'] = timeformat($row['poster_time'], false); + $context['parent_boards'] = array(); + foreach ($board_info['parent_boards'] as $parent) + $context['parent_boards'][] = $parent['name']; + + // Split the topics up so we can print them. + $request = $smcFunc['db_query']('', ' + SELECT subject, poster_time, body, IFNULL(mem.real_name, poster_name) AS poster_name + FROM {db_prefix}messages AS m + LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.id_member) + WHERE m.id_topic = {int:current_topic}' . ($modSettings['postmod_active'] && !allowedTo('approve_posts') ? ' + AND (m.approved = {int:is_approved}' . ($user_info['is_guest'] ? '' : ' OR m.id_member = {int:current_member}') . ')' : '') . ' + ORDER BY m.id_msg', + array( + 'current_topic' => $topic, + 'is_approved' => 1, + 'current_member' => $user_info['id'], + ) + ); + $context['posts'] = array(); + while ($row = $smcFunc['db_fetch_assoc']($request)) + { + // Censor the subject and message. + censorText($row['subject']); + censorText($row['body']); + + $context['posts'][] = array( + 'subject' => $row['subject'], + 'member' => $row['poster_name'], + 'time' => timeformat($row['poster_time'], false), + 'timestamp' => forum_time(true, $row['poster_time']), + 'body' => parse_bbc($row['body'], 'print'), + ); + + if (!isset($context['topic_subject'])) + $context['topic_subject'] = $row['subject']; + } + $smcFunc['db_free_result']($request); + + // Set a canonical URL for this page. + $context['canonical_url'] = $scripturl . '?topic=' . $topic . '.0'; +} + +?> \ No newline at end of file