X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Finstall-functions.php;h=b8db7c8dd1cee281654ce3784e01ea229ae87a00;hb=d537c9f6acdd0794c824777c765fab579ba88270;hp=c0a939c28668ab9c851a37ece73a20a85ea7d72f;hpb=df4166450ac4788f58931bd5d30c617432a63f9d;p=mailer.git diff --git a/inc/install-functions.php b/inc/install-functions.php index c0a939c286..b8db7c8dd1 100644 --- a/inc/install-functions.php +++ b/inc/install-functions.php @@ -109,7 +109,7 @@ function doInstallWriteLocalConfigurationFile ($path, $url, $title, $slogan, $em changeDataInLocalConfigurationFile('SITE-KEY', "setConfigEntry('SITE_KEY', '", "');", generatePassword(50), 0); // Script is now installed - changeDataInLocalConfigurationFile('INSTALLED', "setConfigEntry('MAILER_INSTALLED', '", "');", 'Y', 0); + return changeDataInLocalConfigurationFile('INSTALLED', "setConfigEntry('MAILER_INSTALLED', '", "');", 'Y', 0); } // Adds a given template with content to install output stream @@ -253,7 +253,7 @@ function isInstallerDataValid (&$saveStatus, $key, $value) { } // END - if // Then call it back - $isValid = (bool) call_user_func($callbackName, trim($value)); + $isValid = (bool) call_user_func($callbackName, $value); // Is it not valid? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',isValid=' . intval($isValid)); @@ -335,6 +335,50 @@ function addKeyValueToInstallerOverviewGroup ($key, $value) { $GLOBALS['installer_overview'][$group][$key] = $value; } +//----------------------------------------------------------------------------- +// Template call-back functions +//----------------------------------------------------------------------------- + +// ----------------- Extensions ----------------- + +// Generates (and returns) a table from all extensions +function generateInstallerExtensionTable () { + // Generate extension list + $extensions = loadAllExtensionsByTemplate(); + + // "Walk" through all + $OUT = ''; + foreach ($extensions as $extension) { + // Remove prefix + suffix + $ext_name = substr(basename($extension), 4, -4); + + // Is the extension not in development and not admintheme* ? + if ((loadExtension($ext_name, 'test', '0.0.0', TRUE)) && (isExtensionProductive($ext_name)) && (substr($ext_name, 0, 10) != 'admintheme')) { + // Default is not disabled + $disabled = ''; + if ($ext_name == 'sql_patches') { + // Always keep this enabled + $disabled = ' disabled="disabled"'; + } // END - if + + // Initialize content array + $content = array( + 'ext_name' => $ext_name, + 'ext_version' => getExtensionVersion($ext_name), + 'checked' => getExtensionSelectedFromSession($ext_name, 'extensions'), + 'disabled' => $disabled, + 'description' => loadTemplate('ext_' . $ext_name, TRUE), + ); + + // Load row template + $OUT .= loadTemplate('install_list_extensions_row', TRUE, $content); + } // END - if + } // END - foreach + + // Load main template + return loadTemplate('install_list_extensions', TRUE, $OUT); +} + //----------------------------------------------------------------------------- // Call-back functions to check validity //----------------------------------------------------------------------------- @@ -497,6 +541,44 @@ function isInstallerMysqlPrefixValid ($value) { // ----------------- Other configuration ----------------- +// ----------------- Extensions ----------------- + +// Call-back function to check 'sel' (array!) +function isInstallerSelValid ($value) { + // $value is not an array, is really bad. + if (!is_array($value)) { + // Is no array + reportBug(__FUNCTION__, __LINE__, 'sel,value[]=' . gettype($value) . '!=array'); + } // END - if + + // Add always missing ext-sql_patches + $value['sql_patches'] = '1'; + + // Default is fine + $isValid = TRUE; + + // "Walk" through all extensions + foreach ($value as $ext_name => $sel) { + // Is this extension choosen? + if ($sel != '1') { + // Skip this + continue; + } // END - if + + // Can it be loaded? + $isValid = (($isValid) && (loadExtension($ext_name, 'test', '0.0.0', TRUE))); + } // END - foreach + + // Remove 'sel' from POST data as it cannot be saved + unsetPostRequestElement('sel'); + + // Save it in session (sorry to do that here :( ) + setSession('extensions', implode(':', array_keys($value))); + + // Return result + return $isValid; +} + //----------------------------------------------------------------------------- // Call-back functions to post-check validity //----------------------------------------------------------------------------- @@ -569,11 +651,14 @@ function isInstallerPostDatabaseConfigValid ($currentTab) { return FALSE; } // END - if + // Remove any previous flag + unsetSqlLinkUp(__FUNCTION__, __LINE__); + // Try to connect to the database - $linkResource = SQL_CONNECT(postRequestElement('mysql_host'), postRequestElement('mysql_login'), postRequestElement('mysql_password1'), __FUNCTION__, __LINE__); + SQL_CONNECT(postRequestElement('mysql_host'), postRequestElement('mysql_login'), postRequestElement('mysql_password1'), __FUNCTION__, __LINE__); // Is the link up - if (!is_resource($linkResource)) { + if (!SQL_IS_LINK_UP()) { // Cannot connect to database $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_CONNECT_ERROR--}'; array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_login', 'mysql_password1', 'mysql_password2'); @@ -771,7 +856,7 @@ function isInstallerOutputModeValid ($currentTab) { // Wrapper to import given installation SQL dump function importInstallSqlDump ($dumpName) { // Import the file - importSqlDump('install', $dumpName); + importSqlDump('install', $dumpName, 'install'); } // [EOF]