<?php
/*
 * Sakura Forum Topic Viewer
 */

// Declare Namespace
namespace Sakura;

// Include components
require_once str_replace(basename(__DIR__), '', dirname(__FILE__)) . '_sakura/sakura.php';

// Attempt to get the thread
$thread = new Forum\Thread(
    isset($_GET['p'])
    ? Forum\Forums::getTopicIdFromPostId($_GET['p'])
    : (isset($_GET['t']) ? $_GET['t'] : 0)
);

// And attempt to get the forum
$forum = new Forum\Forum($thread->forum);

// Initialise templating engine
$template = new Template();

// Change templating engine
$template->setTemplate($templateName);

// Check if the forum exists
if (!$thread) {
    // Set render data
    $renderData['page'] = [
        'message' => 'The topic you tried to access does not exist.',
    ];

    // Set parse variables
    $template->setVariables($renderData);

    // Print page contents
    echo $template->render('global/information.tpl');
    exit;
}

// Update the tracking status
$thread->trackUpdate($currentUser->id());

// Update views
$thread->viewsUpdate();

// Set additional render data
$renderData = array_merge($renderData, [
    'thread' => $thread,
    'forum' => $forum,
]);

// Set parse variables
$template->setVariables($renderData);

// Print page contents
echo $template->render('forum/viewtopic.tpl');