-// Generate output lines for the template
-$OUT = ''; $SW = 2;
-$result = SQL_QUERY("SELECT id, theme_path, theme_active, theme_ver, theme_name FROM `{!_MYSQL_PREFIX!}_themes` ORDER BY theme_path", __FILE__, __LINE__);
-if (SQL_NUMROWS($result) > 0) {
- while ($content = SQL_FETCHARRAY($result)) {
- // Construct IFN
- $INC = sprintf("theme/%s/theme.php", $content['theme_path']);
-
- // Load theme in test mode
- loadInclude($INC);
-
- // Is the loaded theme name != current theme name?
- $LINK = $content['theme_path'];
- if ($content['theme_path'] != getCurrentTheme()) $LINK = "<a href=\"{!URL!}/modules.php?module=admin&what=theme_edit&default_theme=".$content['theme_path']."\" title=\"{--ADMIN_SET_AS_NEW_THEME--}\">".$content['theme_path']."</a>";
-
- // Prepare data for the row template
- $content = array(
- 'sw' => $SW,
- 'id' => $content['id'],
- 'active' => $content['theme_active'],
- 'link' => $LINK,
- 'name' => $content['theme_name'],
- 'is_act' => translateYesNo($content['theme_active']),
- 'email' => "<a href=\"mailto:".$GLOBALS['theme_data']['email']."?Subject=[Theme:] ".$GLOBALS['theme_data']['name']." (".$content['theme_path'].")'.'\">".$GLOBALS['theme_data']['author']."</a>",
- 'url_link' => DEREFERER($GLOBALS['theme_data']['url']),
- 'url_title' => $GLOBALS['theme_data']['url'],
- 'ver' => $content['theme_ver'],
- );
-
- // Load row template and switch color
- $OUT .= LOAD_TEMPLATE("admin_theme_edit_row", true, $content);
- $SW = 3 - $SW;
- }
+$result = sqlQuery("SELECT
+ `id`,
+ `theme_path`,
+ `theme_active`,
+ `theme_ver` AS `theme_version`,
+ `theme_name`
+FROM
+ `{?_MYSQL_PREFIX?}_themes`
+ORDER BY
+ `theme_path` ASC", __FILE__, __LINE__);
+
+if (!ifSqlHasZeroNums($result)) {
+ while ($content = sqlFetchArray($result)) {
+ // Is the theme readable?
+ if (isThemeReadable($content['theme_path'])) {
+ // Load theme in test mode
+ loadInclude(sprintf('theme/%s/theme.php', $content['theme_path']));
+
+ // Copy data from theme to content
+ $content['theme_url'] = $GLOBALS['theme_data']['url'];
+
+ // Is the loaded theme name != current theme name?
+ $content['link'] = $content['theme_path'];
+ if ($content['theme_path'] != getCurrentTheme()) {
+ $content['link'] = '<a href="{%url=modules.php?module=admin&what=theme_edit&default_theme=' . $content['theme_path'] . '%}" title="{--ADMIN_SET_AS_DEFAULT_THEME--}">' . $content['theme_path'] . '</a>';
+ } // END - if
+
+ // Prepare data for the row template
+ $content['email'] = '<a href="mailto:' . $GLOBALS['theme_data']['email'] . '?Subject=[Theme:] ' . $GLOBALS['theme_data']['name'] . ' (' . $content['theme_path'] . ')\>' . $GLOBALS['theme_data']['author'] . '</a>';
+
+ // Load row template and switch color
+ $OUT .= loadTemplate('admin_edit_theme_row', TRUE, $content);
+ } else {
+ // Not readable
+ $OUT .= loadTemplate('admin_edit_theme_row_404', TRUE, $content);
+ }
+ } // END - while