<?php
/*****************************************************************************
 * Copying and distribution of this file, with or without modification,
 * are permitted in any medium without royalty provided the copyright
 * notice and this notice are preserved.  This file is offered as-is,
 * without any warranty.
 *****************************************************************************/

    // If this file is requested, just print its source and exit
    
if ($_SERVER['SCRIPT_FILENAME'] == '/var/www/matt/site.php') {
        
print_source();
        exit();
    }

    function 
page_header ($title$id$context 'none') {
        
// Manually set HTTP headers to be sure of content type:
        
header('Content-Type: text/html; charset=UTF-8');
        
header('Content-Language: en-gb');

        
// Check if we want source code:
        
if ($_GET['show'] == 'src') {
            
print_source();
            exit;
        }
        
$top implode(''file('top.tpl'));
        
// Replace page title in [[title]] tags:
        
$top str_replace('[[title]]'$title$top);
        
// Find the page ID and make it an active tab:
        
$top str_replace('id="'.$id.'"''id="'.$id.'" class="active"'$top);
    if (
$context == 'code') {
        
$top str_replace('id="code_sublink_hidden"''id="code_sublink"'$top);
    }
        
// Support "context" for tabs too:
        
$top str_replace('id="'.$context.'"','id="'.$context.'" class="context"'$top);

        print 
$top;
    }

    function 
page_footer () {
        
// Put in page modified details:
        
$bottom implode(''file('bottom.tpl'));
        
$modified date('r'filemtime($_SERVER['SCRIPT_FILENAME']));
        
$bottom str_replace('[[mod]]',$modified$bottom);
        print 
$bottom;
    }

    function 
parse_blog ($file$single false) {
        
$blog_date $file;
        
$contents implode(''file('blog-entries/'.$file));
        
$title preg_match_all('/<h\d style="blog_title">(.*?)<\/h\d>/'$contents$match);
        
$title $match[0][0];
        if (
$single == true) {
            
page_header($match[1][0], 'blog');
        }
        
$date preg_replace('/\.html?/'''$file);
        
$new_title $title."\n<p class='blog_sub'>Posted: ".$date.". Modified: ".date('Y-m-d'filemtime('blog-entries/'.$file)).". <a href=\"blog?entry=".$date."\">Link</a>.</p>";
        
$contents preg_replace('/<h\d style="blog_title">(.*?)<\/h\d>/'$new_title$contents);
        print 
$contents;
    }

    function 
print_source () {
        
$src highlight_file($_SERVER['SCRIPT_FILENAME'], true);
        
// Make this file a clickable hyperlink:
        
$src str_replace('site.php''<a href="site">site.php</a>'$src);
        print 
$src;
    }
?>