A lot fixes to templates and missing functions added, more rewrites
[mailer.git] / inc / modules / member / what-themes.php
index 9731f71f5d56a6bf97e19612faed6fc3b523cfc3..d238500bb59edb567c8a6d2b9c4f440514c15907 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
-}
- elseif (!IS_LOGGED_IN())
-{
+} elseif (!IS_MEMBER()) {
        LOAD_URL("modules.php?module=index");
+} elseif ((!EXT_IS_ACTIVE("theme")) && (!IS_ADMIN())) {
+       addFatalMessage(__FILE__, __LINE__, getMessage('EXTENSION_PROBLEM_EXT_INACTIVE'), "theme");
+       return;
 }
 
 // Add description as navigation point
-ADD_DESCR("member", basename(__FILE__));
+ADD_DESCR("member", __FILE__);
 
-if (!empty($_POST['member_theme']))
-{
+if (REQUEST_ISSET_POST(('member_theme'))) {
        // Save theme to member's profile
-       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET curr_theme='%s' WHERE userid=%s LIMIT 1",
-         array($_POST['member_theme'], $GLOBALS['userid']), __FILE__, __LINE__);
+       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET curr_theme='%s' WHERE userid=%s LIMIT 1",
+               array(REQUEST_POST('member_theme'), $GLOBALS['userid']), __FILE__, __LINE__);
 
        // Set new theme for guests
-       $NewTheme = $_POST['member_theme'];
+       $newTheme = SQL_ESCAPE(REQUEST_POST('member_theme'));
 
        // Change to new theme
-       set_session("mxchange_theme", $NewTheme);
+       set_session('mxchange_theme', $newTheme);
 
        // Theme saved!
-       LOAD_TEMPLATE("admin_settings_saved", false, MEMBER_THEME_SAVED);
+       LOAD_TEMPLATE("admin_settings_saved", false, getMessage('MEMBER_THEME_SAVED'));
 }
 
 // Initialize array
@@ -72,24 +71,17 @@ $THEMES = array(
 );
 
 // Read directory "themes"
-$handle = opendir(PATH."theme/") or mxchange_die("Cannot read themes dir!");
-while ($dir = readdir($handle)) {
+$handle = opendir(constant('PATH')."theme/") or mxchange_die("Cannot read themes dir!");
+while ($entry = readdir($handle)) {
        // Construct absolute theme.php file name
-       $theme = sprintf("%stheme/%s/theme.php", PATH, $dir);
-
-       // Test it...
-       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' AND theme_active='Y' LIMIT 1",
-        array($dir), __FILE__, __LINE__);
-
-       if (($dir != ".") && ($dir != "..") && (FILE_READABLE($theme)) && (SQL_NUMROWS($result) == 1)) {
-               // Free memory
-               SQL_FREERESULT($result);
+       $INC = sprintf("theme/%s/theme.php", $entry);
 
+       if (($entry != ".") && ($entry != "..") && (INCLUDE_READABLE($INC)) && (THEME_IS_ACTIVE($entry))) {
                // Found a valid directory so let's load it's theme.php file
-               include($theme);
+               LOAD_INC($INC);
 
                // Add found theme to array
-               $THEMES['theme_unix'][]   = $dir;
+               $THEMES['theme_unix'][]   = $entry;
                $THEMES['theme_name'][]   = $THEME_NAME;
                $THEMES['theme_author'][] = $THEME_AUTHOR;
                $THEMES['theme_email'][]  = $THEME_EMAIL;
@@ -106,35 +98,34 @@ array_pk_sort($THEMES, array("theme_name"));
 
 // Generate output lines for the template
 $OUT = ""; $SW = 2;
-foreach ($THEMES['theme_unix'] as $key=>$unix)
-{
+foreach ($THEMES['theme_unix'] as $key => $unix) {
        $default = "";
-       if (get_session('mxchange_theme') == $unix) $default = " checked selected";
+       if (get_session('mxchange_theme') == $unix) $default = " selected=\"selected\"";
 
        // Add row
-       $OUT .= "<TR>
-  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\" height=\"30\">
-    <INPUT type=\"radio\" name=\"member_theme\" class=\"member_normal\" value=\"".$unix."\"".$default.">
-  </TD>
-  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">".$THEMES['theme_name'][$key]."</TD>
-  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
-    <A href=\"mailto:".$THEMES['theme_email'][$key]."?Subject=[Theme:] ".$THEMES['theme_name'][$key]." (".$unix.")"."\">".$THEMES['theme_author'][$key]."</A>
-  </TD>
-  <TD class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
-    <A href=\"".DEREFERER($THEMES['theme_url'][$key])."\" target=\"_blank\">".$THEMES['theme_url'][$key]."</A>
-  </TD>
-  <TD class=\"switch_sw".$SW." bottom2\" align=\"center\">v".$THEMES['theme_ver'][$key]."</TD>
-</TR>\n";
+       $OUT .= "<tr>
+  <td class=\"switch_sw".$SW." bottom2 right2\" align=\"center\" height=\"30\">
+    <input type=\"radio\" name=\"member_theme\" class=\"member_normal\" value=\"".$unix."\"".$default." />
+  </td>
+  <td class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">".$THEMES['theme_name'][$key]."</td>
+  <td class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <a href=\"mailto:".$THEMES['theme_email'][$key]."?Subject=[Theme:] ".$THEMES['theme_name'][$key]." (".$unix.")"."\">".$THEMES['theme_author'][$key]."</a>
+  </td>
+  <td class=\"switch_sw".$SW." bottom2 right2\" align=\"center\">
+    <a href=\"".DEREFERER($THEMES['theme_url'][$key])."\" target=\"_blank\">".$THEMES['theme_url'][$key]."</a>
+  </td>
+  <td class=\"switch_sw".$SW." bottom2\" align=\"center\">v".$THEMES['theme_ver'][$key]."</td>
+</tr>\n";
        $SW = 3 - $SW;
 }
-if (empty($OUT))
-{
+
+if (empty($OUT)) {
        // No themes found???
-       $OUT = "<TR>
-  <TD colspan=\"5\" class=\"bottom2\" height=\"80\">
-    ".LOAD_TEMPLATE("admin_settings_saved", true, MEMBER_NO_THEMES_FOUND)."
-  </TD>
-</TR>\n";
+       $OUT = "<tr>
+  <td colspan=\"5\" class=\"bottom2\" height=\"80\">
+    ".LOAD_TEMPLATE("admin_settings_saved", true, getMessage('MEMBER_NO_THEMES_FOUND'))."
+  </td>
+</tr>\n";
 }
 define('__THEME_LIST', $OUT);