More misc fixes and rewrites (sorry, lame description)
[mailer.git] / inc / libs / theme_functions.php
index 6fbcd9890409a194c3cdb3d73a69e7a9decbfb84..44363a8c7cc42d1f8ebb72afc8e975ae7d4d5f09 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Themen-Manager                                   *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
 }
 
-// Always make sure the session management is initialized first
-require_once(PATH."inc/session.php");
-
-// Get current theme name
-function GET_CURR_THEME() {
-       global $INC_POOL, $_CONFIG, $CSS, $cacheArray;
-
-       // The default theme is 'default'... ;-)
-       $ret = "default";
-
-       // Load default theme if not empty from configuration
-       if (!empty($_CONFIG['default_theme'])) $ret = $_CONFIG['default_theme'];
-
-       if (!isSessionVariableSet('mxchange_theme')) {
-               // Set default theme
-               set_session("mxchange_theme", $ret);
-       } elseif ((isSessionVariableSet('mxchange_theme')) && (GET_EXT_VERSION("sql_patches") >= "0.1.4")) {
-               //die("<pre>".print_r($cacheArray['themes'], true)."</pre>");
-               // Get theme from cookie
-               $ret = get_session('mxchange_theme');
-
-               // Is it valid?
-               if (THEME_GET_ID($ret) == 0) {
-                       // Fix it to default
-                       $ret = "default";
-               } // END - if
-       } elseif ((!isBooleanConstantAndTrue('mxchange_installed')) && ((isBooleanConstantAndTrue('mxchange_installing')) || ($CSS == true)) && ((!empty($_GET['theme'])) || (!empty($_POST['theme'])))) {
-               // Prepare FQFN for checking
-               $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_GET['theme']));
-
-               // Installation mode active
-               if ((!empty($_GET['theme'])) && (FILE_READABLE($theme))) {
-                       // Set cookie from URL data
-                       set_session("mxchange_theme", $_GET['theme']);
-               } elseif (FILE_READABLE(sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_POST['theme'])))) {
-                       // Set cookie from posted data
-                       set_session("mxchange_theme", $_POST['theme']);
-               }
-
-               // Set return value
-               $ret = get_session('mxchange_theme');
-       } else {
-               // Invalid design, reset cookie
-               set_session("mxchange_theme", $ret);
-       }
-
-       // Add (maybe) found theme.php file to inclusion list
-       $theme = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($ret));
-
-       // Try to load the requested include file
-       if (FILE_READABLE($theme)) $INC_POOL[] = $theme;
-
-       // Return theme value
-       return $ret;
-}
-
-function THEME_SELECTION_BOX($mod, $act, $wht, $result) {
+// Create a selection box with installed and activated themes
+function generateThemeSelectionBox ($mod, $act, $wht, $result) {
        // Construction URL
-       $FORM = URL."/modules.php?module=".$mod;
-       if (!empty($act)) $FORM .= "&amp;action=".$act;
-       if (!empty($wht))   $FORM .= "&amp;what=".$wht;
-       define('__FORM_VALUE', $FORM);
+       $formAction = "{!URL!}/modules.php?module=".$mod;
+       if (!empty($act)) $formAction .= "&amp;action=".$act;
+       if (!empty($wht)) $formAction .= "&amp;what=".$wht;
 
        // Initialize array
-       $THEMES = array(
+       $themesArray = array(
                'theme_unix'   => array(), // Unix name from filesystem
                'theme_name'   => array()  // Title
        );
 
        // Load all themes
-       while(list($theme) = SQL_FETCHROW($result)) {
+       while ($content = SQL_FETCHARRAY($result)) {
                // Load it's theme.php file
-               $INC = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($theme));
-               if (FILE_READABLE($INC)) {
+               $INC = sprintf("theme/%s/theme.php", SQL_ESCAPE($content['theme_path']));
+               if (isIncludeReadable($INC)) {
                        // And save all data in array
-                       require($INC);
-                       $THEMES['theme_unix'][] = $theme;
-                       $THEMES['theme_name'][] = $THEME_NAME;
+                       loadInclude($INC);
+                       $themesArray['theme_unix'][] = $content['theme_path'];
+                       $themesArray['theme_name'][] = $GLOBALS['theme_data']['name'];
                } // END - if
        } // END - while
 
        // Sort whole array by title
-       array_pk_sort($THEMES, array("theme_name"));
+       array_pk_sort($themesArray, array('theme_name'));
 
        // Construct selection form for the box template
-       $OUT = "";
-       foreach ($THEMES['theme_unix'] as $key => $theme) {
-               $OUT .= "  <OPTION value=\"".$theme."\"";
-               if ($theme == GET_CURR_THEME()) $OUT .= " selected=\"selected\"";
-               $OUT .= ">".$THEMES['theme_name'][$key]."</OPTION>\n";
+       $OUT = '';
+       foreach ($themesArray['theme_unix'] as $key => $theme) {
+               $OUT .= "  <option value=\"".$theme."\"";
+               if ($theme == getCurrentTheme()) $OUT .= ' selected="selected"';
+               $OUT .= ">".$themesArray['theme_name'][$key]."</option>\n";
        } // END - foreach
 
+       // Remember content
+       $content = array(
+               'form_action' => $formAction,
+               'selection'   => $OUT
+       );
+
        // Return generated selection
-       define('__THEME_SELECTION_OPTIONS', $OUT);
-       $OUT = LOAD_TEMPLATE("theme_select_form", true);
-       return $OUT;
+       return LOAD_TEMPLATE('theme_select_form', true, $content);
 }
 
 // Get version from name
 function THEME_GET_VERSION ($name) {
-       global $cacheArray, $_CONFIG;
-
-       // Is the extension "theme" installed?
-       if (!EXT_IS_ACTIVE("theme")) {
+       // Is the extension 'theme' installed?
+       if (!EXT_IS_ACTIVE('theme')) {
                // Then abort here
-               return "0.0";
+               return '!.!';
        } // END - if
 
-       // Default version "number"
-       $cver = "-.-";
+       // Default version 'number'
+       $cver = '?.?';
 
        // Is the cache entry there?
-       if (isset($cacheArray['themes']['theme_ver'][$name])) {
+       if (isset($GLOBALS['cache_array']['themes']['theme_ver'][$name])) {
                // Get the version from cache
-               $cver = $cacheArray['themes']['theme_ver'][$name];
+               $cver = $GLOBALS['cache_array']['themes']['theme_ver'][$name];
 
                // Count up
-               if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
-       } elseif (GET_EXT_VERSION("cache") != "0.1.8") {
+               incrementConfigEntry('cache_hits');
+       } elseif (GET_EXT_VERSION('cache') != '0.1.8') {
                // Load version from database
-               $result = SQL_QUERY_ESC("SELECT theme_ver FROM `"._MYSQL_PREFIX."_themes` WHERE theme_path='%s' LIMIT 1",
-                       array($name), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `theme_ver` FROM `{!_MYSQL_PREFIX!}_themes` WHERE `theme_path`='%s' LIMIT 1",
+                       array($name), __FUNCTION__, __LINE__);
 
                // Entry found?
                if (SQL_NUMROWS($result) == 1) {
@@ -174,57 +125,16 @@ function THEME_GET_VERSION ($name) {
        return $cver;
 }
 
-// Get id from theme
-function THEME_GET_ID ($name) {
-       global $cacheArray, $_CONFIG;
-
-       // Is the extension "theme" installed?
-       if (!EXT_IS_ACTIVE("theme")) {
-               // Then abort here
-               return 0;
-       } // END - if
-
-       // Default id
-       $id = 0;
-
-       // Is the cache entry there?
-       if (isset($cacheArray['themes']['id'][$name])) {
-               // Get the version from cache
-               $id = $cacheArray['themes']['id'][$name];
-
-               // Count up
-               if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
-       } elseif (GET_EXT_VERSION("cache") != "0.1.8") {
-               // Check if current theme is already imported or not
-               $result = SQL_QUERY_ESC("SELECT id FROM `"._MYSQL_PREFIX."_themes` WHERE theme_path='%s' LIMIT 1",
-                       array($name), __FILE__, __LINE__);
-
-               // Entry found?
-               if (SQL_NUMROWS($result) == 1) {
-                       // Fetch data
-                       list($id) = SQL_FETCHROW($result);
-               } // END - if
-
-               // Free result
-               SQL_FREERESULT($result);
-       }
-
-       // Return id
-       return $id;
-}
-
 // Checks wether a theme is found in db
-function THEME_CHECK_EXIST ($name) {
+function ifThemeExists ($name) {
        // Get theme and is it not nul?
-       return (THEME_GET_ID($name) > 0);
+       return (getThemeId($name) > 0);
 }
 
 // Checks if a theme is active
-function THEME_IS_ACTIVE ($name) {
-       global $cacheArray, $_CONFIG;
-
-       // Is the extension "theme" installed?
-       if (!EXT_IS_ACTIVE("theme")) {
+function isThemeActive ($name) {
+       // Is the extension 'theme' installed?
+       if (!EXT_IS_ACTIVE('theme')) {
                // Then abort here
                return false;
        } // END - if
@@ -233,16 +143,16 @@ function THEME_IS_ACTIVE ($name) {
        $active = false;
 
        // Is the cache entry there?
-       if (isset($cacheArray['themes']['theme_active'][$name])) {
+       if (isset($GLOBALS['cache_array']['themes']['theme_active'][$name])) {
                // Get the version from cache
-               $active = ($cacheArray['themes']['theme_active'][$name] == "Y");
+               $active = ($GLOBALS['cache_array']['themes']['theme_active'][$name] == 'Y');
 
                // Count up
-               if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
-       } elseif (GET_EXT_VERSION("cache") != "0.1.8") {
+               incrementConfigEntry('cache_hits');
+       } elseif (GET_EXT_VERSION('cache') != '0.1.8') {
                // Check if current theme is already imported or not
-               $result = SQL_QUERY_ESC("SELECT theme_active FROM `"._MYSQL_PREFIX."_themes` WHERE theme_path='%s' AND theme_active='Y' LIMIT 1",
-                       array($name), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `theme_active` FROM `{!_MYSQL_PREFIX!}_themes` WHERE `theme_path`='%s' AND `theme_active`='Y' LIMIT 1",
+                       array($name), __FUNCTION__, __LINE__);
 
                // Is the theme active and installed?
                $active = (SQL_NUMROWS($result) == 1);
@@ -256,29 +166,27 @@ function THEME_IS_ACTIVE ($name) {
 }
 
 // Gets current human-readable theme name
-function GET_CURR_THEME_NAME () {
-       global $cacheArray, $_CONFIG;
-
-       // Is the extension "theme" installed?
-       if (!EXT_IS_ACTIVE("theme")) {
+function getCurrentThemeName () {
+       // Is the extension 'theme' installed?
+       if (!EXT_IS_ACTIVE('theme')) {
                // Then abort here
-               return "default";
+               return 'default';
        } // END - if
 
        // Get the Uni* name
-       $name = GET_CURR_THEME();
+       $name = getCurrentTheme();
 
        // Is the cache entry there?
-       if (isset($cacheArray['themes']['theme_name'][$name])) {
+       if (isset($GLOBALS['cache_array']['themes']['theme_name'][$name])) {
                // Get the version from cache
-               $name = $cacheArray['themes']['theme_name'][$name];
+               $name = $GLOBALS['cache_array']['themes']['theme_name'][$name];
 
                // Count up
-               if (isset($_CONFIG['cache_hits'])) { $_CONFIG['cache_hits']++; } else { $_CONFIG['cache_hits'] = 1; }
-       } elseif (GET_EXT_VERSION("cache") != "0.1.8") {
+               incrementConfigEntry('cache_hits');
+       } elseif (GET_EXT_VERSION('cache') != '0.1.8') {
                // Check if current theme is already imported or not
-               $result = SQL_QUERY_ESC("SELECT theme_name FROM `"._MYSQL_PREFIX."_themes` WHERE theme_path='%s' AND theme_active='Y' LIMIT 1",
-                       array($name), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `theme_name` FROM `{!_MYSQL_PREFIX!}_themes` WHERE `theme_path`='%s' AND `theme_active`='Y' LIMIT 1",
+                       array($name), __FUNCTION__, __LINE__);
 
                // Load theme name
                list($name) = SQL_FETCHROW($result);
@@ -292,21 +200,21 @@ function GET_CURR_THEME_NAME () {
 }
 
 // Initialize variables
-$currTheme = GET_CURR_THEME();
+$GLOBALS['curr_theme'] = getCurrentTheme();
 
 // Check if new theme is selcted
-if ((!empty($_POST['new_theme'])) && ($_POST['new_theme'] != $currTheme)) {
+if ((REQUEST_ISSET_POST('new_theme')) && (REQUEST_POST('new_theme') != $GLOBALS['curr_theme'])) {
        // Set new theme for guests
-       $newTheme = $_POST['new_theme'];
+       $newTheme = REQUEST_POST('new_theme');
 
        // Change to new theme
-       set_session("mxchange_theme", $newTheme);
+       setSession('mxchange_theme', $newTheme);
 
        // Remove current from array and set new
-       $theme = sprintf("%stheme/%s/theme.php", PATH, $currTheme);
-       unset($INC_POOL[array_search($theme, $INC_POOL)]);
-       $INC_POOL[] = sprintf("%stheme/%s/theme.php", PATH, $newTheme);
+       $theme = sprintf("%stheme/%s/theme.php", constant('PATH'), $GLOBALS['curr_theme']);
+       REMOVE_INC_FROM_POOL($theme);
+       ADD_INC_TO_POOL(sprintf("%stheme/%s/theme.php", constant('PATH'), $newTheme));
 } // END - if
 
-//
+// [EOF]
 ?>