X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-theme_import.php;h=11061669b6bbf64584bb274e0e996ea3acfb5c0b;hb=9e604ce404fe7d2d8dafc259a5fb8cd826aec5e6;hp=ff47824ed7dd058923744ca6658ca384d3c1e733;hpb=4ef4c88fc481335dc0631b223111c15a84cccb51;p=mailer.git diff --git a/inc/modules/admin/what-theme_import.php b/inc/modules/admin/what-theme_import.php index ff47824ed7..11061669b6 100644 --- a/inc/modules/admin/what-theme_import.php +++ b/inc/modules/admin/what-theme_import.php @@ -10,7 +10,12 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Importieren von neuen Themes * * -------------------------------------------------------------------- * - * * + * $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 * @@ -32,52 +37,58 @@ ************************************************************************/ // Some security stuff... -if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) || (!is_admin())) -{ - $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php"; +if ((!defined('__SECURITY')) || (!IS_ADMIN())) { + $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php'; require($INC); +} elseif (!EXT_IS_ACTIVE('theme')) { + addFatalMessage(__FILE__, __LINE__, generateExtensionInactiveNotInstalledMessage('theme')); + return; } // Add description as navigation point -ADD_DESCR("admin", basename(__FILE__)); +ADD_DESCR('admin', __FILE__); // Switch to testing mode -$THEME_MODE = "test"; +$GLOBALS['theme_mode'] = 'test'; // Import selected theme if not present -if (!empty($_POST['theme'])) -{ - $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_themes WHERE theme_path='%s' LIMIT 1", - array($_POST['theme']), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 0) - { +if (REQUEST_ISSET_POST('theme')) { + // Check if theme is there + if (!ifThemeExists(REQUEST_POST('theme'))) { // Import theme - $file = sprintf("%stheme/%s/theme.php", PATH, SQL_ESCAPE($_POST['theme'])); - if (FILE_READABLE($file)) { + $INC = sprintf("theme/%s/theme.php", SQL_ESCAPE(REQUEST_POST('theme'))); + + // Is the theme readable? + if (isIncludeReadable($INC)) { // Load the theme header file - include($file); + loadInclude($INC); // Register it ith the exchange - $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_themes (theme_path, theme_active, theme_ver) -VALUES ('%s', 'N', '%s')", - array($_POST['theme'], $THEME_VERSION), __FILE__, __LINE__); - $msg = ADMIN_THEME_IMPORTED_1.$_POST['theme'].ADMIN_THEME_IMPORTED_2; + SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_themes` (`theme_path`,`theme_active`,`theme_ver`,`theme_name`) +VALUES ('%s','N','%s','%s')", + array( + REQUEST_POST('theme'), + $GLOBALS['theme_data']['version'], + $GLOBALS['theme_data']['name'] + ), __FILE__, __LINE__); + + // Destroy cache + rebuildCacheFiles('themes', 'them'); + + // Prepare message + $message = sprintf(getMessage('ADMIN_THEME_IMPORTED'), REQUEST_POST('theme')); } else { // Include file not found! - $msg = ADMIN_THEME_INC_404_1.$_POST['theme'].ADMIN_THEME_INC_404_2; + $message = sprintf(getMessage('ADMIN_THEME_INC_404'), REQUEST_POST('theme')); } } else { - // Free memory - SQL_FREERESULT($result); - // Theme already imported - $msg = ADMIN_THEME_ALREADY_1.$_POST['theme'].ADMIN_THEME_ALREADY_2; + $message = sprintf(getMessage('ADMIN_THEME_ALREADY_INSTALLED'), REQUEST_POST('theme')); } // Output message - LOAD_TEMPLATE("admin_settings_saved", false, $msg); - OUTPUT_HTML("
"); -} + LOAD_TEMPLATE('admin_settings_saved', false, $message); +} // END - if // Initialize array $THEMES = array( @@ -90,82 +101,70 @@ $THEMES = array( ); // Read directory "themes" -$handle = opendir(PATH."theme/") or mxchange_die("Cannot read themes dir!"); -while ($dir = readdir($handle)) { - // Construct absolute theme.php file name - $theme = sprintf("%stheme/%s/theme.php", PATH, $dir); - - // Test it... - if (($dir != ".") && ($dir != "..") && (FILE_READABLE($theme))) { - // Found a valid directory so let's load it's theme.php file - include($theme); - - // Add found theme to array - $THEMES['theme_unix'][] = $dir; - $THEMES['theme_name'][] = $THEME_NAME; - $THEMES['theme_author'][] = $THEME_AUTHOR; - $THEMES['theme_email'][] = $THEME_EMAIL; - $THEMES['theme_url'][] = $THEME_URL; - $THEMES['theme_ver'][] = $THEME_VERSION; - } // END - if +$includes = getArrayFromDirectory('theme/', '', false, true, array('css', 'images')); + +// Walk through all entries and add it +foreach ($includes as $INC) { + // Get directory from it + $dir = basename(dirname($INC)); + + // Load include file + loadInclude($INC); + + // Add found theme to array + $THEMES['theme_unix'][] = $dir; + $THEMES['theme_name'][] = $GLOBALS['theme_data']['name']; + $THEMES['theme_author'][] = $GLOBALS['theme_data']['author']; + $THEMES['theme_email'][] = $GLOBALS['theme_data']['email']; + $THEMES['theme_url'][] = $GLOBALS['theme_data']['url']; + $THEMES['theme_ver'][] = $GLOBALS['theme_data']['version']; } // END - while -// Close directory -closedir($handle); - // Sort array by Uni* name -array_pk_sort($THEMES, array("theme_name")); +array_pk_sort($THEMES, array('theme_name')); // Generate output lines for the template -$OUT = ""; $SW = 2; +$OUT = ''; $SW = 2; foreach ($THEMES['theme_unix'] as $key => $unix) { + // Already installed is default + $formContent = '
' . sprintf(getMessage('ADMIN_THEME_ALREADY_INSTALLED'), $unix) . '
'; + // 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($unix), __FILE__, __LINE__); - if (SQL_NUMROWS($result) == 1) { - // Free memory - SQL_FREERESULT($result); - - // Already installed - $FOUND = "".ADMIN_THEME_ALREADY_INSTALLED.""; - } else { + if (!ifThemeExists($unix)) { // Theme not installed - $FOUND = "
- - -
"; - } + $formContent = LOAD_TEMPLATE('admin_theme_import_form', true, $unix); + } // END - if - // Add row - $OUT .= " - ".$unix." - ".$THEMES['theme_name'][$key]." - - ".$THEMES['theme_author'][$key]." - - - ".$THEMES['theme_url'][$key]." - - v".$THEMES['theme_ver'][$key]." - - ".$FOUND." - -\n"; + // Prepare content + $content = array( + 'sw' => $SW, + 'unix' => $unix, + 'name' => $THEMES['theme_name'][$key], + 'email' => $THEMES['theme_email'][$key], + 'author' => $THEMES['theme_author'][$key], + 'link' => DEREFERER($THEMES['theme_url'][$key]), + 'url' => $THEMES['theme_url'][$key], + 'version' => $THEMES['theme_ver'][$key], + 'form' => $formContent + ); + + // Add row template + $OUT .= LOAD_TEMPLATE('admin_theme_import_row', true, $content); + + // Switch color $SW = 3 - $SW; -} +} // END - foreach if (empty($OUT)) { - // No themes found??? - $OUT .= " - - ".LOAD_TEMPLATE("admin_settings_saved", true, ADMIN_NO_THEMES_FOUND)." - -\n"; -} + // No themes found??? + $OUT .= LOAD_TEMPLATE('admin_theme_import_none', true, LOAD_TEMPLATE('admin_settings_saved', true, getMessage('ADMIN_NO_THEMES_FOUND'))); +} // END - if + +// Set the generated list define('__THEME_LIST', $OUT); // Load template -LOAD_TEMPLATE("admin_theme_import"); +LOAD_TEMPLATE('admin_theme_import'); // ?>