Subversion Repositories travelsized

Rev

Rev 469 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?PHP
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * This file is part of Travelsized CMS
 *              A content management system with modules, based on wiki syntax
 *
 * Author: Dan Jensen <admin@leinir.dk>
 * Copyright 2003/2004
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * The GNU General Public License is available at: http://www.gnu.org/copyleft/
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


$menu_theme = $pagectl->fetchMenuTheme($menu_folder, $page_menu, $language);
$theme_user = getUserInfo(currentUser(), "theme");

$theme = "";
if( array_key_exists( "theme", $_REQUEST ) )
        $theme = $_REQUEST["theme"];

if( $setupSection == false || $theme_options["use_setup_theme"] != 1 )
{
        // Check if we know what theme the user wishes to use, otherwise use the 'default' theme
        if( !array_key_exists( "theme", $_REQUEST ) && !array_key_exists( "theme", $_SESSION ) )
        {
                if( $theme_user == i18n( "No ##0## information\n", array("theme") ) )
                        $theme = "default";
                else
                        $theme = $theme_user;
        // Has the user requested a new theme?
        }
        else if( isset( $_REQUEST["theme"] ) )
        {
                // Is user logged in and is the theme different from the empty theme?
                if( isAuth() && $_REQUEST["theme"] != "empty" )
                                saveUserInfo( currentUser(), "theme", $_REQUEST["theme"] );
        }
        // Check if there's a session theme set
        else if( isset( $_SESSION["theme"] ) )
                $theme = $_SESSION["theme"];
       
        // If we are forcing, disregard everything above
        if ($theme_options["force_follow"] == 1)
                if ($menu_theme != "/none/")
                        $theme = $menu_theme;
        // Only use the custom theme, if the user hasn't set a custom one, or if it is the default
        else if ( ( $theme_user == i18n("No ##0## information\n", array("theme")) || $theme_user == "default" ) && $menu_theme != "/none/")
                $theme = $menu_theme;
       
        //If the theme doesn't actually exist, use the default theme
        if (!file_exists("$themesfolder$theme") && $theme != "empty")
                $theme = "default";
        //Make sure the session's theme is set
        if ($theme != "empty")
                $_SESSION["theme"] = $theme;
}
else if( !array_key_exists( "theme", $_REQUEST ) || ( array_key_exists( "theme", $_REQUEST ) && $_REQUEST["theme"] != "empty" ) )
        $theme = $theme_folder[$theme_options["setup_theme"]];

if( $theme == "" )
        $theme = "default";

// We need it loaded here, so that we can make sure we don't spend too much time on creating certain replacements...
if ($theme == "empty")
        $theme_contents = "##PAGE_CONTENT##";
else
{
        //Load theme file into the $theme_contents variable
        $fp = fopen("$themesfolder$theme/theme.html", "r");
        $theme_contents = fread($fp, filesize("$themesfolder$theme/theme.html"));
        fclose($fp);
}

// Fill in the $replacements[] variable with the template definitions {

$replacements["##PAGE_TITLE##"] = $page_title;
$replacements["##PAGE_ID##"] = $page_id;
$replacements["##PAGE_AUTHOR##"] = $page_author;
$replacements["##PAGE_AUTHOR_EMAIL##"] = $page_author_email;
$replacements["##PAGE_DATE##"] = $page_date;
$replacements["##PAGE_CONTENT##"] = $page_content;
$replacements["##MENU_ID##"] = $page_menu;
$replacements["##THISPAGE##"] = thisPageURL();
$replacements["##SITEURL##"] = siteURL(true);
$replacements["##META_HEADERS##"] = $meta_headers;

if( $globalError != "" )
        $replacements["##PAGE_CONTENT##"] = $globalError . $replacements["##PAGE_CONTENT##"];

if( array_key_exists( "module_function", $_REQUEST ) )
{
        // Run through the modules and run them
        global $modules;
        $replacements["##PAGE_CONTENT##"] = "\\" . rawurldecode($_GET["module_function"]);
        foreach($modules as $module)
                $replacements["##PAGE_CONTENT##"] = $module( $replacements["##PAGE_CONTENT##"] );
        $theme = "empty";
}
else if( array_key_exists( "page_help", $_REQUEST ) )
{
        $replacements["##PAGE_TITLE##"] = i18n("Page Layout Help");
        $replacements["##PAGE_CONTENT##"] = generate_pagehelp();
}

$replacements["##SELECTTHEME##"] =  i18n("Select theme");
$replacements["##CHANGETHEME##"] =  i18n("Change theme");
$replacements["##THISTHEME##"] = siteURL(true) . "$themesfolder$theme";
$replacements["##THEME_LIST_DROPDOWN##"] = $replacements["##THEME_LIST_VERTICAL##"] = $replacements["##THEME_LIST_HORIZONTAL##"] = "";
// List themes {
for( $theme_counter = 0; $theme_counter <= count($theme_name) - 1; $theme_counter++ )
{
        $replacements["##THEME_LIST_HORIZONTAL##"] .= "<div>";
        if( $theme == $theme_folder[$theme_counter] )
        {
                $replacements["##THEME_LIST_DROPDOWN##"] .= "   <option value=\"$theme_folder[$theme_counter]\" selected=\"selected\">$theme_name[$theme_counter]</option>\n";
                $replacements["##THEME_LIST_HORIZONTAL##"] .= "$theme_name[$theme_counter] ";
                $replacements["##THEME_LIST_VERTICAL##"] .= "   <div>$theme_name[$theme_counter]</div>";
        }
        else
        {
                $replacements["##THEME_LIST_DROPDOWN##"] .= "   <option value=\"$theme_folder[$theme_counter]\">$theme_name[$theme_counter]</option>\n";
                $replacements["##THEME_LIST_HORIZONTAL##"] .= "<a class=\"menutext\" href=\"" . thisPageURL(false, true, array("theme"=>$theme_folder[$theme_counter])) . "\">$theme_name[$theme_counter]</a> ";
                $replacements["##THEME_LIST_VERTICAL##"] .= "   <div><a class=\"menutext\" href=\"" . thisPageURL(false, true, array("theme"=>$theme_folder[$theme_counter])) . "\">$theme_name[$theme_counter]</a></div>";
        }
        $replacements["##THEME_LIST_HORIZONTAL##"] .= "</div>";
}
// List themes }

$replacements["##RECENTCHANGES##"] =  i18n("Recent changes");
$replacements["##LASTUPDATE##"] = formatTime( filemtime("$setup_folder/recent_pages.txt") );
// List recent changes {
$replacements["##RECENTCHANGES_LIST_HORIZONTAL##"] = "<div>";
$replacements["##RECENTCHANGES_LIST_VERTICAL##"] = "";
$replacements["##RECENTCHANGES_LIST_DROPDOWN##"] = "";
if( is_array($newest_pages) )
{
        foreach($newest_pages as $key => $value)
        {
                if( ( !$value["id"] == "" ) && ( $value["language"] == $language ) )
                {
                        $replacements["##RECENTCHANGES_LIST_DROPDOWN##"] .= "<option value=\"{$value["id"]}\">{$value["title"]} ({$value["date"]})</option>\n";
                        $replacements["##RECENTCHANGES_LIST_VERTICAL##"] .= "<div><a class=\"menutext\" href=\"" . globalIDtoURL("content/{$value["language"]}/{$value["id"]}") . "\">{$value["title"]} ({$value["date"]})</a></div>\n";
                        $replacements["##RECENTCHANGES_LIST_HORIZONTAL##"] .= "<a class=\"menutext\" href=\"" . globalIDtoURL("content/{$value["language"]}/{$value["id"]}") . "\">{$value["title"]} ({$value["date"]})</a> ";
                }
        }
}
$replacements["##RECENTCHANGES_LIST_HORIZONTAL##"] .= "</div>";
// List recent changes }

$replacements["##ADMINFUNCTIONS##"] =  i18n("Admin functions");
// Only show these if user is authorised {
if( isAllowed("global_pages_create") )
{
        $replacements["##NEWPAGE##"] = "<div class=\"newpage\"><a class=\"newpage\" title=\"" . i18n("New Page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/" . i18n("New Page") ) . "\">" . i18n("New Page") . "</a></div>";
        $replacements["##NEWPAGE_GRAPHIC##"] = "<a class=\"newpage\" title=\"" . i18n("New Page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/" . i18n("New Page") ) . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/new_page.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("New Page") . "\" /></a>";
}
else
{
        $replacements["##NEWPAGE##"] = "";
        $replacements["##NEWPAGE_GRAPHIC##"] = "";
}

if( isAllowed("global_menus_create") )
{
        $replacements["##NEWMENU##"] = "<div class=\"newmenu\"><a class=\"newmenu\" title=\"" . i18n("New Menu") . "\" href=\"" . globalIDtoURL( "setup/editmenu/$language/" . i18n("New Menu") ) . "\">" . i18n("New Menu") . "</a></div>";
        $replacements["##NEWMENU_GRAPHIC##"] = "<a class=\"newmenu\" title=\"" . i18n("New Menu") . "\" href=\"" . globalIDtoURL( "setup/editmenu/$language/" . i18n("New Menu") ) . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/new_menu.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("New Menu") . "\" /></a>";
}
else
{
        $replacements["##NEWMENU##"] = "";
        $replacements["##NEWMENU_GRAPHIC##"] = "";
}

if( isAllowed("global_pages_edit") )
{
        if( $page_id > 99 && !is_array($page_id) )
        {
                $replacements["##EDITTHISPAGE##"] = "<div class=\"editthispage\"><a class=\"editthispage\" title=\"" . i18n("Edit this page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/$page_id" ) . "\">" . i18n("Edit this page") . "</a></div>";
                $replacements["##EDITTHISPAGE_GRAPHIC##"] = "<a class=\"editthispage\" title=\"" . i18n("Edit this page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/$page_id" ) . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/edit.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("Edit this page") . "\" /></a>";
        }
        else if ($page_id == 0)
        {
                $replacements["##EDITTHISPAGE##"] = "<div class=\"editthispage\"><a class=\"menutext\" title=\"" . i18n("Edit this page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/0" ) . "\">" . i18n("Edit this page") . "</a></div>";
                $replacements["##EDITTHISPAGE_GRAPHIC##"] = "<a class=\"editthispage\" title=\"" . i18n("Edit this page") . "\" href=\"" . globalIDtoURL( "setup/editpage/$language/0" ) . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/edit.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("Edit this page") . "\" /></a>";
        }
        else
        {
                $replacements["##EDITTHISPAGE##"] = "";
                $replacements["##EDITTHISPAGE_GRAPHIC##"] = "";
        }
}
else
{
        $replacements["##EDITTHISPAGE##"] = "";
        $replacements["##EDITTHISPAGE_GRAPHIC##"] = "";
}


if( isauth() )
{
        $replacements["##LOGIN##"] = "<a class=\"loginlink\" href=\"" . globalIDtoURL("user/" . currentUser() ) . "\">" . i18n("Profile") . "</a>";
        $replacements["##LOGOUT##"] = "<div class=\"logout\"><a class=\"logout\" href=\"" . thisPageURL( false, true, array("logout" => "true") ) . "\">" . i18n("Log out") . "</a></div>";
        $replacements["##LOGOUT_GRAPHIC##"] = "<a class=\"logout\" href=\"" . thisPageURL( false, true, array("logout" => "true") ) . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/logout.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("Log out") . "\" /></a>";
       
        $replacements["##AVATAR_TINY##"] = ""; $replacements["##AVATAR_MEDIUM##"] = ""; $replacements["##AVATAR##"] = "";
        if( strpos( $theme_contents, "##AVATAR_TINY##" ) !== false )
        {
                $avatarfile = getAvatarThumbnail( $viewUser, true );
                list($avatarwidth,$avatarheight) = getimagesize( $avatarfile );
                $avatarfile = siteURL(true) . $avatarfile;
                $replacements["##AVATAR_TINY##"] = "<img src=\"$avatarfile\" class=\"avatartiny\" width=\"$avatarwidth\" height=\"$avatarheight\" />";
        }
        if( strpos( $theme_contents, "##AVATAR_MEDIUM##" ) !== false )
        {
                $avatarfile = getAvatarThumbnail( $viewUser );
                list($avatarwidth,$avatarheight) = getimagesize( $avatarfile );
                $avatarfile = siteURL(true) . $avatarfile;
                $replacements["##AVATAR_MEDIUM##"] = "<img src=\"$avatarfile\" class=\"avatartiny\" width=\"$avatarwidth\" height=\"$avatarheight\" />";
        }
        if( strpos( $theme_contents, "##AVATAR##" ) !== false )
        {
                $avatarfile = getAvatar( $viewUser );
                list($avatarwidth,$avatarheight) = getimagesize( $avatarfile );
                $avatarfile = siteURL(true) . $avatarfile;
                $replacements["##AVATAR##"] = "<img src=\"$avatarfile\" class=\"avatartiny\" width=\"$avatarwidth\" height=\"$avatarheight\" />";
        }
       
        $replacements["##REQUESTPASSWORD##"] = "";
}
else
{
        if( array_key_exists( "returnID", $_REQUEST ) )
                $replacements["##LOGIN##"] = "<a class=\"loginlink\" href=\"" . globalIDtoURL("content/$language/18", array( "returnID" => $_REQUEST["returnID"] ) ) . "\">" . i18n("Log in") . "</a>";
        else
                $replacements["##LOGIN##"] = "<a class=\"loginlink\" href=\"" . globalIDtoURL("content/$language/18", array( "returnID" => $globalID ) ) . "\">" . i18n("Log in") . "</a>";
       
        $replacements["##LOGOUT##"] = ""; $replacements["##LOGOUT_GRAPHIC##"] = "";
        $replacements["##AVATAR_TINY##"] = ""; $replacements["##AVATAR_MEDIUM##"] = ""; $replacements["##AVATAR##"] = "";
        $replacements["##REQUESTPASSWORD##"] = "<a class=\"command requestpassword\" href=\"" . globalIDtoURL("setup/requestpassword") . "\">" . i18n("Request new password") . "</a>";
}
// Only show the two first if user is authorised }
if( isAllowed("global_setup") )
{
        $replacements["##SETUPSITE_URL"] = globalIDtoURL("setup");
        $replacements["##SETUPSITE##"] = "<div class=\"setupsite\"><a class=\"setupsite\" title=\"" . i18n("Setup site") . "\" href=\"" . globalIDtoURL("setup") . "\">" . i18n("Setup site") . "</a></div>";
        $replacements["##SETUPSITE_GRAPHIC##"] = "<a class=\"setupsite\" title=\"" . i18n("Setup site") . "\" href=\"" . globalIDtoURL("setup") . "\"><img src=\"" . siteURL(true) . "$setup_folder/images/setup.png\" border=\"0\" width=\"10\" height=\"10\" alt=\"" . i18n("Setup site") . "\" /></a>";
}
else
{
        $replacements["##SETUPSITE_URL"] = "#";
        $replacements["##SETUPSITE##"] = "";
        $replacements["##SETUPSITE_GRAPHIC##"] = "";
}

$replacements["##READMORE##"] =  i18n("Read more");
if( is_numeric($page_menu) )
        $replacements["##MENU##"] = $pagectl->fetchMenuMenu( $menu_folder, $page_menu, $language );
else
        $replacements["##MENU##"] = $page_menu;

if( !( substr($replacements["##MENU##"], 0, 1) == "<" ) )
        $replacements["##MENU##"] = parse_page_data( $replacements["##MENU##"], $language, $setup_folder, true );

$replacements["##SELECTLANGUAGE##"] =  i18n("Select language");
$replacements["##LANGUAGE##"] = $language;
foreach( $languages as $key => $value )
{
        $replacements["##LANGUAGELINK_" . strtoupper($value) . "##"] = $language_link[$value];
        $replacements["##LANGUAGENAME_" . strtoupper($value) . "##"] = $languages_names[$key];
}

$replacements["##USERFUNCTIONS##"] =  i18n("User functions");
$replacements["##GOFRONTPAGE##"] =  i18n("Go to the Front page");
$replacements["##GOTAGWALL##"] =  i18n("Go to the Tag wall");
$replacements["##GOPAGELIST##"] =  i18n("Show list of all pages");

$replacements["##FINDINFO##"] =  i18n("Look up information");
$replacements["##FINDIT##"] =  i18n("Look it up");

$replacements["##POWEREDBY##"] = "<a style=\"border: none; text-decoration: none;\" href=\"http://leinir.dk/travelsized/\" target=\"_blank\"><img src=\"" . siteURL(true) . "$setup_folder/images/poweredby.png\" width=\"60\" height=\"15\" alt=\"" . i18n("Powered by Travelsized CMS") . "\" border=\"0\" /></a>";
$replacements["##COPYRIGHT##"] = i18n("This page is copyright &copy; 2003 by <a class=\"footer\" href=\"" . globalIDtoURL("content/en/About me") . "\">..Dan Jensen</a>. All right reserved.");

$replacements["##LOGINFORM##"] = loginform_small();

if( file_exists( "$themesfolder$theme/messages.$language.txt" ) )
{
        $fp = fopen("$themesfolder$theme/messages.$language.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/messages.$language.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
}
else if( file_exists( "$themesfolder$theme/messages.en.txt" ) )
{
        $fp = fopen("$themesfolder$theme/messages.en.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/messages.en.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
}
else if( file_exists( "$themesfolder$theme/messages.txt" ) )
{
        $fp = fopen("$themesfolder$theme/messages.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/messages.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
}
$i = 0;
if( is_array($theme_lines) )
{
        foreach( $theme_lines as $key => $value )
        {
                $i++;
                $replacements["##THEME_$i##"] = $value;
        }
}

$theme_lines = ""; // reset varaible
if( file_exists( "$themesfolder$theme/random.$language.txt" ) )
{
        $fp = fopen("$themesfolder$theme/random.$language.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/random.$language.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
}
else if( file_exists( "$themesfolder$theme/random.en.txt" ) )
{
        $fp = fopen("$themesfolder$theme/random.en.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/random.en.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
} else if ( file_exists( "$themesfolder$theme/random.txt" ) )
{
        $fp = fopen("$themesfolder$theme/random.txt", "r");
        $theme_lines = fread($fp, filesize("$themesfolder$theme/random.txt"));
        fclose($fp);
        $theme_lines = explode("\n", $theme_lines);
}
$i = 0;
if( is_array($theme_lines) )
{
        $theme_lines = explode(";", $theme_lines[array_rand($theme_lines)]);
        foreach( $theme_lines as $key => $value )
        {
                $i++;
                $replacements["##RANDOM_$i##"] = $value;
        }
}

// Fill in the $replacements[] variable with the template definitions }

// Do replace stuffs
foreach( $replacements as $key => $value )
{
        $theme_contents = str_replace( $key, $value, $theme_contents );
}

header("Content-Type: text/html; charset=utf-8");
print($theme_contents);
?>