(root)/theming.php - Rev 473
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 © 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);
?>