A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / modules / admin / what-theme_check.php
index 83aac95704784b0e5722b7e3166d8dc424249f5e..c538c9fbd0291e96a800db681e95d8942b5abe67 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!IS_ADMIN()))
-{
+if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
-// Add description as navigation point
-ADD_DESCR("admin", basename(__FILE__));
 
-global $CACHE, $KEEP_ACTIVE, $CACHE_FILE;
+// Add description as navigation point
+ADD_DESCR("admin", __FILE__);
 
 // Normally we want the overview of all registered theme_check
 $mode = "overview";
-$SEL = "0";
+$SEL = 0;
 
 // Get response from our server
-$response = MXCHANGE_OPEN("check-themes.php");
+$response = GET_URL("check-themes.php");
 
 // Are theme_check found?
-if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
-{
+if (($response[count($response) - 1] == "[EOF]") && ($response[0] != "[EOF]")) {
        // Ok, mark found and create the array
        $THEMES = array(
                'fname'  => array(), // File names
@@ -63,27 +60,21 @@ if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
        );
 
        // Get count of theme_check for validation
-       $count = trim($response[sizeof($response) - 2]);
-       foreach ($response as $idx=>$value)
-       {
+       $count = trim($response[count($response) - 2]);
+       foreach ($response as $idx => $value) {
                $value = str_replace("\n", "", $value); $ver = "";
 
                // Leave loop when data is invalid or EOF?
-               if ((substr($value, 0, 6) == "theme-") && (substr($value, -4) == ".zip"))
-               {
+               if ((substr($value, 0, 6) == "theme-") && (substr($value, -4) == ".zip")) {
+                       // Extract name and version
                        $name = substr($value, 6, -4);
-                       $file = PATH."themes/".$name."/theme.php";
-                       $ver = trim(substr($response[$idx + 3], 4));
+                       $ver  = trim(substr($response[$idx + 3], 4));
 
                        // Load version
-                       $result = SQL_QUERY_ESC("SELECT theme_ver FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1",
-                        array($name), __FILE__, __LINE__);
-                       list($cver) = SQL_FETCHROW($result);
-                       if (empty($cver)) $cver = "-.-";
-
-                       // Is the extension already installed or not?
-                       if (((SQL_NUMROWS($result) == 0) && (!file_exists($file))) || ($ver != $cver))
-                       {
+                       $cver = THEME_GET_VERSION($name);
+
+                       // Is the theme already installed or not?
+                       if (($ver != $cver) && ($cver != "?") && ($cver != "!")) {
                                // No, it isn't. So let's add this one!
                                $THEMES['fname'][]  = $name;
                                $THEMES['fsize'][]  = $response[$idx + 1];
@@ -91,77 +82,73 @@ if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
                                $THEMES['ver'][]    = $ver;
                                $THEMES['cver'][]   = $cver;
 
+                               // Extract language strings from reponse
                                $LANG_DUMMY = explode("[nl]", $response[$idx + 4]);
                                $LANG = array();
-                               $INFO = ADMIN_EXT_NO_INFO_FOUND;
+                               $INFO = getMessage('ADMIN_EXT_NO_INFO_FOUND');
 
                                // Trim every data line
-                               foreach ($LANG_DUMMY as $k=>$v)
-                               {
+                               foreach ($LANG_DUMMY as $k => $v) {
                                        $v = trim($v);
                                        if (substr($v, 3) == "") $v = "---";
                                        $LANG_DUMMY[$k] = $v;
                                        if ($v == "xx:xx") break;
                                        $LANG[] = $v;
-                               }
+                               } // END - foreach
 
                                // If language is found stop searching on matching line
-                               foreach($LANG as $search)
-                               {
+                               foreach($LANG as $search) {
                                        if (substr($search, 0, 3) == (GET_LANGUAGE().":")) { $INFO = substr($search, 3); break; }
-                               }
+                               } // END - foreach
 
                                // Add informations to array
                                $THEMES['infos'][] = $INFO;
-                       }
-               }
-       }
+                       } // END - if
+               } // END - if
+       } // END - foreach
 
        // Ok, themes are on our server but maybe you have already installed them?
-       if (sizeof($THEMES['fname']) > 0)
-       {
+       if (count($THEMES['fname']) > 0) {
                // Sort array (I missed ver and cver here)
                array_pk_sort($THEMES, array("cver", "fname"), 0, 1);
 
                // Extensions where found which are not downloaded and installed
-               $SW = 2; $OUT = ""; $TSIZE = 0;
-               foreach ($THEMES['fname'] as $idx=>$name)
-               {
+               $OUT = ""; $SW = 2; $TSIZE = 0;
+               foreach ($THEMES['fname'] as $idx => $name) {
                        // Generate download link
                        $LINK = SERVER_URL."/themes/theme-".$name.".zip";
-                       $OUT .= "<TR>
-  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".($idx + 1).".</TD>
-  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\"><A href=\"".$LINK."\">".$name."</A></TD>
-  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".MAKE_DATETIME($THEMES['fctime'][$idx], "2")."</TD>
-  <TD align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".TRANSLATE_COMMA(round($THEMES['fsize'][$idx] / 1.024) / 1000)." ".KBYTES."</TD>
-  <TD align=\"center\" class=\"switch_sw".$SW." bottom2\">".$THEMES['ver'][$idx]." (".$THEMES['cver'][$idx].")</TD>
-</TR>
-<TR>
-  <TD class=\"switch_sw".$SW." bottom2\">&nbsp;</TD>
-  <TD colspan=\"4\" class=\"switch_sw".$SW." bottom2\">
-    <FONT class=\"tiny\">".stripslashes($THEMES['infos'][$idx])."</FONT>
-  </TD>
-</TR>\n";
+
+                       // @TODO Move this HTML code to a template "admin_theme_row"
+                       $OUT .= "<tr>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".($idx + 1).".</td>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2 right2\"><a href=\"".$LINK."\">".$name."</a></td>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".MAKE_DATETIME($THEMES['fctime'][$idx], "2")."</td>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2 right2\">".TRANSLATE_COMMA(round($THEMES['fsize'][$idx] / 1.024) / 1000)." ".KBYTES."</td>
+  <td align=\"center\" class=\"switch_sw".$SW." bottom2\">".$THEMES['ver'][$idx]." (".$THEMES['cver'][$idx].")</td>
+</tr>
+<tr>
+  <td class=\"switch_sw".$SW." bottom2\">&nbsp;</td>
+  <td colspan=\"4\" class=\"switch_sw".$SW." bottom2\">
+    <div class=\"tiny\">".$THEMES['infos'][$idx]."</div>
+  </td>
+</tr>\n";
                        $TSIZE += $THEMES['fsize'][$idx];
                        $SW = 3 - $SW;
                }
                define('__THEMES_ROWS', $OUT);
                define('__TKBYTES_VALUE', TRANSLATE_COMMA(round($TSIZE / 1.024) / 1000));
-               define('__TTHEME_VALUE', sizeof($THEMES['fname']));
+               define('__TTHEME_VALUE', count($THEMES['fname']));
 
                // Load template
                LOAD_TEMPLATE("admin_theme_list");
-       }
-        else
-       {
+       } else {
                // All Themes are downloaded and installed
                LOAD_TEMPLATE("admin_theme_installed", false, $count);
        }
-}
- else
-{
+} else {
        // No theme where found
-       LOAD_TEMPLATE("admin_theme_404");
+       LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ADMIN_THEME_NOTHING_FOUND'));
 }
+
 //
 ?>