templates/de/html/install/install_finished.tpl svneol=native#text/plain
templates/de/html/install/install_footer.tpl svneol=native#text/plain
templates/de/html/install/install_header.tpl svneol=native#text/plain
+templates/de/html/install/install_list_extensions.tpl svneol=native#text/plain
+templates/de/html/install/install_list_extensions_row.tpl svneol=native#text/plain
templates/de/html/install/install_main_ajax.tpl svneol=native#text/plain
templates/de/html/install/install_main_plain.tpl svneol=native#text/plain
templates/de/html/install/install_menu.tpl svneol=native#text/plain
templates/de/html/install/install_page5.tpl svneol=native#text/plain
templates/de/html/install/install_page_base_data.tpl svneol=native#text/plain
templates/de/html/install/install_page_database_config.tpl svneol=native#text/plain
+templates/de/html/install/install_page_extensions.tpl svneol=native#text/plain
templates/de/html/install/install_page_init.tpl svneol=native#text/plain
templates/de/html/install/install_page_other_config.tpl svneol=native#text/plain
templates/de/html/install/install_page_overview.tpl svneol=native#text/plain
./inc/extensions/ext-nickname.php:52: // @TODO NOT NULL DEFAULT '' is bad practice, use NULL
./inc/extensions/ext-yoomedia.php:121: // @TODO Can this be moved into a database table?
./inc/extensions/ext-yoomedia.php:54:// @TODO Only deprecated when 'ext-network' is ready! setExtensionDeprecated('Y');
-./inc/extensions-functions.php:2201:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
+./inc/extensions-functions.php:2169: // @TODO Is this really neccessary?
+./inc/extensions-functions.php:2220:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
./inc/extensions-functions.php:436: // @TODO This redirect is still needed to register sql_patches! Please try to avoid it
./inc/extensions-functions.php:452:// @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
./inc/extensions-functions.php:592: // @TODO Extension is loaded, what next?
./inc/functions.php:2478:// @TODO cacheFiles is not yet supported
./inc/gen_sql_patches.php:95:// @TODO Rewrite this to a filter
./inc/header.php:66:// @TODO Find a way to not use direct module comparison
-./inc/install-functions.php:402: // @TODO Comparing with DEFAULT_MAIN_TITLE doesn't work
+./inc/install-functions.php:446: // @TODO Comparing with DEFAULT_MAIN_TITLE doesn't work
./inc/install-functions.php:97: // @TODO DEACTIVATED: changeDataInLocalConfigurationFile('OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestElement('omode'), 0);
./inc/language/de.php:1147: // @TODO Rewrite these two constants
./inc/language/de.php:1163: // @TODO Rewrite these three constants
./inc/language/de.php:741:// @TODO Are these constants longer used?
./inc/language-functions.php:255: // @TODO These are all valid languages, again hard-coded
./inc/language-functions.php:44:// @TODO Rewrite all language constants to this function.
-./inc/language/install_de.php:140: // @TODO Move this to e.g. ext-smtp
+./inc/language/install_de.php:142: // @TODO Move this to e.g. ext-smtp
./inc/language/newsletter_de.php:13: * @TODO This language file is completely out-dated, please do no *
./inc/language/order_de.php:70: // @TODO Find better text
./inc/language/rallye_de.php:13: * @TODO Naming convention not applied for language strings *
./inc/mysql-manager.php:44:// @TODO Can we cache this?
./inc/purge/purge-inact.php:55: // @TODO Rewrite these if() blocks to a filter
./inc/revision-functions.php:168:// @TODO This function does also set and get in 'cache_array'
-./inc/template-functions.php:1134: // @TODO Deprecate this thing
-./inc/template-functions.php:1145: // @TODO Deprecate this thing
-./inc/template-functions.php:1252: // @TODO This can be easily moved out after the merge from EL branch to this is complete
-./inc/template-functions.php:1301: // @TODO Add a little more infos here
-./inc/template-functions.php:1667:// @TODO Lame description for this function
-./inc/template-functions.php:1689: // @TODO Move this in a filter
+./inc/template-functions.php:1143: // @TODO Deprecate this thing
+./inc/template-functions.php:1154: // @TODO Deprecate this thing
+./inc/template-functions.php:1276: // @TODO This can be easily moved out after the merge from EL branch to this is complete
+./inc/template-functions.php:1325: // @TODO Add a little more infos here
+./inc/template-functions.php:1691:// @TODO Lame description for this function
+./inc/template-functions.php:1713: // @TODO Move this in a filter
./inc/template-functions.php:200: * @TODO On some pages this is buggy
-./inc/template-functions.php:2323: // @TODO Is this needed for e.g. $GLOBALS['template_content'] ? $this->setRawTemplateData($compactedContent);
+./inc/template-functions.php:2347: // @TODO Is this needed for e.g. $GLOBALS['template_content'] ? $this->setRawTemplateData($compactedContent);
./inc/template-functions.php:288: // @TODO Remove these sanity checks if all is fine
-./inc/template-functions.php:625:// @TODO $simple/$constants are deprecated
-./inc/template-functions.php:723: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
+./inc/template-functions.php:634:// @TODO $simple/$constants are deprecated
+./inc/template-functions.php:732: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
./inc/wrapper-functions.php:3176: // @TODO Find a way to not use direct module comparison
./inc/wrapper-functions.php:512:// @TODO Do some more sanity check here
./inc/xml-functions.php:240: // @TODO Handle characters
./templates/de/html/admin/admin_reg_row.tpl:1:<!-- @DEPRECATED //-->
./templates/de/html/admin/admin_reg.tpl:1:<!-- @DEPRECATED //-->
./templates/de/html/admin/admin_theme_list.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/ext/ext_primera.tpl:1:<!-- @DEPRECATED //-->
./templates/de/html/fatal_footer.tpl:1:<!-- @DEPRECATED //-->
./templates/de/html/fatal_header.tpl:1:<!-- @DEPRECATED //-->
./templates/de/html/guest/guest_confirm_table.tpl:1:<!-- @DEPRECATED //-->
setHttpStatus('200 OK');
} else {
// Set 404 error
- setHttpStatus('404 NOT FOUND');
+ setHttpStatus('404 Not Found');
}
} // END - if
}
if (!SQL_SELECT_DB(getSession('mysql_dbase'), __FUNCTION__, __LINE__)) {
// Could not be selected
reportBug(__FUNCTION__, __LINE__, 'Could not select database ' . getSession('mysql_dbase'));
- } elseif ((!isFileReadable(getPath() . 'install/tables.sql')) || (!isFileReadable(getPath() . 'install/menu-'.getLanguage().'.sql'))) {
+ } elseif ((!isFileReadable(getSession('base_path') . 'install/tables.sql')) || (!isFileReadable(getSession('base_path') . 'install/menu-'.getLanguage().'.sql'))) {
// Installation area not found
reportBug(__FUNCTION__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.');
} elseif (ifFatalErrorsDetected()) {
case 'database_config':
case 'smtp_config':
case 'other_config':
+ case 'extensions':
array_push($enabledNavigations, 'previous');
case 'welcome': // Only 'next' works for welcome page
array_push($enabledNavigations, 'next');
setHttpStatus('200 OK');
} else {
// Set 404 error
- setHttpStatus('404 NOT FOUND');
+ setHttpStatus('404 Not Found');
}
} // END - if
}
// "Walk" through all elements
$OUT = '<ol>';
foreach (explode(':', postRequestElement('elements')) as $element) {
- // Add row
- $OUT .= '<li>{--INSTALLER_CHANGED_ELEMENT_' . strtoupper($element) . '--}</li>';
+ // Is it an extension?
+ if (substr($element, 0, 4) == 'ext_') {
+ // Add row for extension
+ $OUT .= '<li>{%message=INSTALLER_CHANGED_ELEMENT_EXTENSION=' . str_replace('_', '-', $element) . '%}</li>';
+ } else {
+ // Add generic row
+ $OUT .= '<li>{--INSTALLER_CHANGED_ELEMENT_' . strtoupper($element) . '--}</li>';
+ }
} // END - foreach
$OUT .= '</ol>';
$currentTab = postRequestElement('tab');
// Remove some elements which should not be saved
- foreach (array('do', 'level') as $removedElement) {
+ foreach (array('tab', 'do', 'level') as $removedElement) {
// Remove this element from POST data
unsetPostRequestElement($removedElement);
} // END - foreach
// Now set all remaining data in session
foreach (postRequestArray() as $key => $value) {
// Set it, if it is valid, else it will be added to $saveStatus (call-by-reference)
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value[' . gettype($value) . '=' . $value);
$saveStatus['is_saved'] = (
// Is the data valid?
(isInstallerDataValid($saveStatus, $key, $value))
// Save the overall status for below final check
$isAllSaved = (($isAllSaved === TRUE) && ($saveStatus['is_saved'] === TRUE));
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',is_saved=' . intval($saveStatus['is_saved']) . ',isAllSaved=' . intval($isAllSaved));
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value[' . gettype($value) . '=' . $value . ',is_saved=' . intval($saveStatus['is_saved']) . ',isAllSaved=' . intval($isAllSaved));
} // END - foreach
// 'is_saved' is still true?
} // END - if
}
+// Prepare AJAX request 'extensions'
+function doAjaxPrepareInstallerExtensions () {
+ // Is 'extensions' set?
+ if (!isSessionVariableSet('extensions')) {
+ /*
+ * At least ext-sql_patches and ext-task should be installed
+ *(ext-sql_patches is a must!)
+ */
+ setSession('extensions', 'admins:sql_patches:task');
+ } elseif (strpos(getSession('extensions'), 'sql_patches') === FALSE) {
+ // Add missing ext-sql_patches
+ setSession('extensions', getSession('extensions') . ':sql_patches');
+ }
+}
+
// Prepare AJAX request 'overview'
function doAjaxPrepareInstallerOverview () {
// 'tab' must always be set to create a post-check-callback
// Now run all queries through
runFilterChain('run_sqls');
+
+ // Close SQL link
+ SQL_CLOSE(__FUNCTION__, __LINE__);
+}
+
+// Call-back function to import menu SQL file
+function doAjaxInstallerStepImportMenuSql () {
+ // Establish database link
+ establishAjaxInstallerDatabaseLink();
+
+ // Init SQL array
+ initSqls();
+
+ // Import tables.sql
+ importInstallSqlDump('menu-' . getLanguage());
+
+ // Are some SQLs found?
+ if (countSqls() == 0) {
+ // Abort here
+ reportBug(__FUNCTION__, __LINE__, '{--INSTALLER_SQL_IMPORT_FAILED--}');
+ } // END - if
+
+ // Now run all queries through
+ runFilterChain('run_sqls');
+
+ // Close SQL link
+ SQL_CLOSE(__FUNCTION__, __LINE__);
+}
+
+// Call-back function to install some important extensions
+function doAjaxInstallerStepInstallExtensions () {
+ // Only one element is required
+ if (!isSessionVariableSet('extensions')) {
+ // Some required session data is not set
+ reportBug(__FUNCTION__, __LINE__, 'Required session data for this step not found.');
+ } // END - if
+
+ // Establish database link
+ establishAjaxInstallerDatabaseLink();
+
+ // Get all extensions
+ $extensions = explode(':', getSession('extensions'));
+
+ // Make sure ext-sql_patches is first
+ array_unshift($extensions, 'sql_patches');
+
+ // "Walk" through all extensions
+ foreach ($extensions as $key => $ext_name) {
+ // Is ext-sql_patches not at key=0?
+ if (($key == 0) && ($ext_name == 'sql_patches')) {
+ // Then skip this entry
+ continue;
+ } elseif ((!loadExtension($ext_name, 'test', '0.0.0', TRUE)) || (!registerExtension($ext_name, NULL))) {
+ // Didn't work
+ reportBug(__FUNCTION__, __LINE__, 'Cannot load/register extension ' . $ext_name . '.');
+ } // END - if
+ } // END - foreach
+
+ // Close SQL link
+ SQL_CLOSE(__FUNCTION__, __LINE__);
+}
+
+// Call-back function to write local configuration file
+function doAjaxInstallerStepWriteLocalConfig () {
+ // Is all set?
+ if (!isSessionDataSet(array('base_path', 'base_url', 'main_title', 'slogan', 'webmaster', 'mysql_host', 'mysql_dbase', 'mysql_prefix', 'mysql_login', 'mysql_password1', 'mysql_password2', 'mysql_engine', 'output_mode', 'warn_no_pass', 'write_footer', 'enable_backlink'))) {
+ // Some required session data is not set
+ reportBug(__FUNCTION__, __LINE__, 'Required session data for this step not found.');
+ } // END - if
+
+ // Write config file
+ if (!doInstallWriteLocalConfigurationFile(
+ getSession('base_path'),
+ getSession('base_url'),
+ getSession('main_title'),
+ getSession('slogan'),
+ getSession('webmaster'),
+ getSession('warn_no_pass'),
+ getSession('write_footer'),
+ getSession('enable_backlink'),
+ getSession('mysql_host'),
+ getSession('mysql_dbase'),
+ getSession('mysql_login'),
+ getSession('mysql_password1'),
+ getSession('mysql_prefix'),
+ getSession('mysql_engine'),
+ getSession('smtp_host'),
+ getSession('smtp_user'),
+ getSession('smtp_password1')
+ )) {
+ // Something bad went wrong
+ removeFile(getSession('base_path') . getCachePath() . 'config-local.php');
+ reportBug(__FUNCTION__, __LINE__, 'Did not fully write config-local.php .');
+ }
}
// [EOF]
// When this extension is already in registration/update phase, all is fine
if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === FALSE))) {
// Then abort here with 'true' because it is fine
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates));
+ /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates));
//* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
return TRUE;
} // END - if
// Checks whether an update is already running for given extension
function isExtensionUpdateRunning ($ext_name, $ignoreDependencies = FALSE) {
+ // 'ext_running_updates' must be there
+ if ((!isset($GLOBALS['ext_running_updates'])) || (!is_array($GLOBALS['ext_running_updates']))) {
+ // Is not there
+ reportBug(__FUNCTION__, __LINE__, 'Required array ext_running_updates not found. ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies));
+ } // END - if
+
// Current and given extensions means whole array
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
if ($ext_name == getCurrentExtensionName()) {
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ifSqlTableExists(points_data)=' . ifSqlTableExists('points_data') . ',getExtensionMode()=' . getExtensionMode() . ',add=' . $add);
if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) {
// Not found so:
- if ((isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) {
+ if ((!isInstallationPhase()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) {
+ // This may happen (but when?)
+ // @TODO Is this really neccessary?
$dummy = $GLOBALS['previous_extension'][getCurrentExtensionName()];
reportBug(__FUNCTION__, __LINE__, 'previous_extension[' . gettype($dummy) . ']=' . $dummy . ',getCurrentExtensionName()=' . getCurrentExtensionName() . ' - Under development, please report this!');
} // END - if
- // ... add an SQL query
- addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('%s','%s','%s','%s')",
- $subject,
- $columnName,
- $lockedMode,
- $paymentMethod
- ));
+ // With or without account_provider?
+ if (((isInstallationPhase()) && ((getExtensionMode() == 'register') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) {
+ // Add account_provider
+ addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`, `account_provider`) VALUES ('%s','%s','%s','%s','EXTENSION')",
+ $subject,
+ $columnName,
+ $lockedMode,
+ $paymentMethod
+ ));
+ } else {
+ // ... add an SQL query
+ addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`) VALUES ('%s','%s','%s','%s')",
+ $subject,
+ $columnName,
+ $lockedMode,
+ $paymentMethod
+ ));
+ }
} // END - if
}
$GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = getThisExtensionAlwaysActive();
$GLOBALS['cache_array']['extension']['ext_lang'][$ext_name] = convertBooleanToYesNo(isExtensionLanguageFileReadable($ext_name));
$GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = convertBooleanToYesNo(isExtensionFunctionFileReadable($ext_name));
- $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name] = convertBooleanToYesNo(ifModuleHasMenu($ext_name));
+ $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name] = convertBooleanToYesNo(ifModuleHasMenu($ext_name, isInstallationPhase()));
$GLOBALS['cache_array']['extension']['ext_css'][$ext_name] = convertBooleanToYesNo(getExtensionHasCss());
$GLOBALS['cache_array']['extension']['ext_deprecated'][$ext_name] = 'N';
}
return $GLOBALS[__FUNCTION__][$taskId];
}
+// "Getter" for "checked="checked" from given session data
+function getExtensionSelectedFromSession ($ext_name, $sessionName, $separator = ':') {
+ // Get the data and explode it
+ $selections = explode($separator, getSession($sessionName));
+
+ // Default is not checked
+ $checked = '';
+
+ // Is it there?
+ if (in_array($ext_name, $selections)) {
+ // It is, so mark it
+ $checked = ' checked="checked"';
+ } // END - if
+
+ // Return result
+ return $checked;
+}
+
// [EOF]
?>
break;
case '0.7.1': // SQL queries for v0.7.1
- // Update depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Add filters
registerFilter(__FILE__, __LINE__, 'sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', FALSE, TRUE, isExtensionDryRun());
// Register with points data system
registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Rückschriften bei Auto-Löschungen werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
registerExtensionPointsData('beg' , 'points', 'LOCKED', 'DIRECT');
registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Monatliche Bettelrallye und die erbettelten {?POINTS?} werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
// Register points data
registerExtensionPointsData('monthly_bonus', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Monatlicher Bonus wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
break;
case '0.2.0': // SQL queries for v0.2.0
- // This update depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Die Erweiterung hängt nun von der <strong>sql_patches</strong> ab.");
break;
addConfigDropSql('coupon_payment_method');
addConfigDropSql('coupon_locked_points_mode');
- // This extension's update requires an up-to-date ext-sql_patches and ext-order
- addExtensionDependency('sql_patches');
+ // This extension's update requires an up-to-date ext-order
addExtensionDependency('order');
// Insert data in new table
registerExtensionPointsData('doubler_direct', 'points', 'LOCKED', 'DIRECT');
registerExtensionPointsData('doubler_reset' , 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Doppler-Gutschriften werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'del_holiday')");
addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('config', '', 'config_holiday')");
- // Depends on ext-sql_patches (or you have to execute these both SQL statements by phpMyAdmin
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Erweiterung in's neue Menüsystem integriert.");
break;
break;
case '0.3.4': // SQL queries for v0.3.4
- // This update depends on latest ext-sql_patches version
- addExtensionDependency('sql_patches');
-
// Register points data
registerExtensionPointsData('mailid_payback', 'points', 'LOCKED', 'DIRECT');
break;
case 'update': // Update an extension
switch (getCurrentExtensionVersion()) {
case '0.0.1': // SQL queries for v0.0.1
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Veraltetes Update entfernt.");
break;
// Remove this deprecated table
addDropTableSql('nickname_history');
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Diese Tabelle kann in <strong>ext-sql_patches</strong> allgemeiner formuliert werden.");
break;
break;
case '0.3.5': // SQL queries for 0.3.5
- // This update depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Register filter
registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun());
// Register points data
registerExtensionPointsData('rallye_winner', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Gewinn aus der Referral-Rallye wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
// Register points data
registerExtensionPointsData('refback', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Refback-Gutschriften werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
break;
case '0.1.1': // SQL queries for v0.1.1
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Veraltetes Update entfernt.");
break;
case '0.1.3': // SQL queries for v0.1.3
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Standard Referral-Id kann per Admin-Bereich eingestellt werden (war vorher nur in modules.php und index.php direkt eingebbar.)");
break;
// Register points data
registerExtensionPointsData('register_welcome', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
case 'update': // Update an extension
switch (getCurrentExtensionVersion()) {
case '0.0.1': // SQL queries for v0.0.1
- // Update depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Add filters
registerFilter(__FILE__, __LINE__, 'post_youhere_line', 'ADD_ANONYMITY_NOTICE', FALSE, TRUE, isExtensionDryRun());
// Insert data for points accounts
registerExtensionPointsData('monthly_surfbar', 'points', 'LOCKED', 'DIRECT');
- // This extension depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Register filters
registerFilter(__FILE__, __LINE__, 'post_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_STATUS', FALSE, TRUE, isExtensionDryRun());
registerFilter(__FILE__, __LINE__, 'pre_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_VALIDATE_DATA', FALSE, TRUE, isExtensionDryRun());
case 'update': // Update an extension
switch (getCurrentExtensionVersion()) {
case '0.0.1': // SQL queries for v0.0.1
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Veraltetes Update entfernt.");
break;
break;
case '0.3.2': // SQL queries for v0.3.2
- // This update depends on user update
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Hängt nun von <u>ext-user</u> ab.");
break;
addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'del_transfer')");
addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('config', '', 'config_transfer')");
- // Depends on ext-sql_patches (or you have to execute these both SQL statements by phpMyAdmin
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Erweiterung in's neue Menüsystem integriert.");
break;
// Register points data
registerExtensionPointsData('transfer', 'points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Ünerweisungen anderer Mitglieder werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
break;
case '0.1.1': // SQL queries for v0.1.1
- // This update depends on ext-sql_patches update!
- addExtensionDependency('sql_patches');
-
// Update notes (these will be set as task text!)
setExtensionUpdateNotes("Ungültiges Update.");
break;
// Register points data
registerExtensionPointsData('wernis_withdraw', 'order_points', 'LOCKED', 'DIRECT');
- // This depends on ext-sql_patches
- addExtensionDependency('sql_patches');
-
// Update notes
setExtensionUpdateNotes("Überweisungen vom Portal werden nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
break;
postRequestElement('month') . '-' .
postRequestElement('day') . '-' .
postRequestElement('year') . getEncryptSeparator() .
- postRequestElement('pass1') . getEncryptSeparator() .
+ postRequestElement('password1') . getEncryptSeparator() .
detectServerName() . getEncryptSeparator() .
detectRemoteAddr() . getEncryptSeparator() .
detectUserAgent() . '/' .
return;
}
- // Is the extension ext-sql_patches updated and not in installation phase?
- if ((!isInstallationPhase()) && ((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9')))) {
+ // Is the extension ext-sql_patches updated?
+ if ((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) {
// Log only in debug mode
if (isDebugModeEnabled()) {
logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters, ext-sql_patches might be missing. isExtensionInstalled()=' . intval(isExtensionInstalled('sql_patches')) . ',isExtensionInstalledAndOlder()=' . intval(isExtensionInstalledAndOlder('sql_patches', '0.5.9')));
} // END - foreach
} // END - if
- // Is there non-HTML mode?
- if (!isHtmlOutputMode()) {
+ // Is there non-HTML/AJAX mode?
+ if ((!isHtmlOutputMode()) && (!isAjaxOutputMode())) {
$filterData = decodeEntities($filterData);
} // END - if
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
} // 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));
$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
//-----------------------------------------------------------------------------
// ----------------- 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
//-----------------------------------------------------------------------------
setGetRequestElement('install_page', 3);
} // END - if
- if ((!isPostRequestElementSet('smtp_pass1')) && (isPostRequestElementSet('smtp_pass2'))) {
+ if ((!isPostRequestElementSet('smtp_password1')) && (isPostRequestElementSet('smtp_password2'))) {
// Password is empty
addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD1_EMPTY--}</div>');
setGetRequestElement('install_page', 3);
} // END - if
- if ((isPostRequestElementSet('smtp_pass1')) && (!isPostRequestElementSet('smtp_pass2'))) {
+ if ((isPostRequestElementSet('smtp_password1')) && (!isPostRequestElementSet('smtp_password2'))) {
// Password repeat is empty
addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD2_EMPTY--}</div>');
setGetRequestElement('install_page', 3);
} // END - if
- if (postRequestElement('smtp_pass1') != postRequestElement('smtp_pass1')) {
+ if (postRequestElement('smtp_password1') != postRequestElement('smtp_password1')) {
// Passwords are not matching
addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASS_MISMATCH--}</div>');
setGetRequestElement('install_page', 3);
} // END - if
// Database login data
-$content['mysql_host'] = $GLOBALS['install_mysql']['host'];
-$content['mysql_dbase'] = $GLOBALS['install_mysql']['dbase'];
-$content['mysql_prefix'] = $GLOBALS['install_mysql']['prefix'];
-$content['table_type'] = $GLOBALS['install_mysql']['type'];
-$content['mysql_login'] = $GLOBALS['install_mysql']['login'];
-$content['mysql_pass1'] = $GLOBALS['install_mysql']['pass1'];
-$content['mysql_pass2'] = $GLOBALS['install_mysql']['pass2'];
+$content['mysql_host'] = $GLOBALS['install_mysql']['host'];
+$content['mysql_dbase'] = $GLOBALS['install_mysql']['dbase'];
+$content['mysql_prefix'] = $GLOBALS['install_mysql']['prefix'];
+$content['table_type'] = $GLOBALS['install_mysql']['type'];
+$content['mysql_login'] = $GLOBALS['install_mysql']['login'];
+$content['mysql_password1'] = $GLOBALS['install_mysql']['password1'];
+$content['mysql_password2'] = $GLOBALS['install_mysql']['password2'];
// Set constants for SMTP data
-$content['smtp_host'] = $smtpHost;
-$content['smtp_user'] = $smtpUser;
-$content['smtp_pass1'] = $smtpPass1;
-$content['smtp_pass2'] = $smtpPass2;
+$content['smtp_host'] = $smtpHost;
+$content['smtp_user'] = $smtpUser;
+$content['smtp_password1'] = $smtpPass1;
+$content['smtp_password2'] = $smtpPass2;
// Load template
addTemplateToInstallContent('install_page3', $content);
$content['email'] = postRequestElement('email');
// SMTP settings
-$content['smtp_host'] = postRequestElement('smtp_host');
-$content['smtp_user'] = postRequestElement('smtp_user');
-$content['smtp_pass'] = postRequestElement('smtp_pass1');
+$content['smtp_host'] = postRequestElement('smtp_host');
+$content['smtp_user'] = postRequestElement('smtp_user');
+$content['smtp_password'] = postRequestElement('smtp_password1');
// Database login data
$OUT = '';
unset($GLOBALS['is_sql_link_up']);
// Connect to database server
- SQL_CONNECT($GLOBALS['install_mysql']['host'], $GLOBALS['install_mysql']['login'], $GLOBALS['install_mysql']['pass1'], __FILE__, __LINE__);
+ SQL_CONNECT($GLOBALS['install_mysql']['host'], $GLOBALS['install_mysql']['login'], $GLOBALS['install_mysql']['password1'], __FILE__, __LINE__);
// Is the link up?
if (SQL_IS_LINK_UP()) {
foreach ($GLOBALS['install_mysql'] as $key => $value) {
$OUT .= ' <input type="hidden" name="mysql[' . $key . ']" value="' . $value . '" />';
} // END foreach
- $content['mysql_hidden'] = $OUT;
- $content['spath'] = postRequestElement('spath');
- $content['burl'] = postRequestElement('burl');
- $content['title'] = postRequestElement('title');
- $content['slogan'] = postRequestElement('slogan');
- $content['email'] = postRequestElement('email');
- $content['smtp_host'] = postRequestElement('smtp_host');
- $content['smtp_user'] = postRequestElement('smtp_user');
- $content['smtp_pass'] = postRequestElement('smtp_pass1');
+ $content['mysql_hidden'] = $OUT;
+ $content['spath'] = postRequestElement('spath');
+ $content['burl'] = postRequestElement('burl');
+ $content['title'] = postRequestElement('title');
+ $content['slogan'] = postRequestElement('slogan');
+ $content['email'] = postRequestElement('email');
+ $content['smtp_host'] = postRequestElement('smtp_host');
+ $content['smtp_user'] = postRequestElement('smtp_user');
+ $content['smtp_password'] = postRequestElement('smtp_password1');
// Load template
addTemplateToInstallContent('install_fatal_errors', $content);
postRequestElement('mysql', 'host'),
postRequestElement('mysql', 'dbase'),
postRequestElement('mysql', 'login'),
- postRequestElement('mysql', 'pass1'),
+ postRequestElement('mysql', 'password1'),
postRequestElement('mysql', 'prefix'),
postRequestElement('mysql', 'type'),
postRequestElement('smtp_host'),
postRequestElement('smtp_user'),
- postRequestElement('smtp_pass1')
+ postRequestElement('smtp_password1')
);
// Register ext-sql_patches and ext-task
'INSTALLER_FIN_SECU' => "Sie sollten jetzt die Dateien <u>install.php</u> und <u>inc/install-inc.php</u> von Ihrem Server löschen. Dies ist zwar normalerweise nicht erforderlich, Sie sollten es aber dennoch tun, um die Sicherheit zusätzlich zu erhöhen.",
'INSTALLER_CONTINUE_ADMIN' => "Weiter zum Administrationsbereich...",
'INSTALLER_INIT_PLEASE_WAIT' => "Einen Augenblick, die Installation wird vorbereitet ...",
+ 'INSTALLER_MARK_EXTENSION' => "Erweiterung %s zur Installation markieren",
// Plain installer - general
'INSTALLER_SQL_IMPORT_FAILED' => "Konnte die SQL-Dateien aus <strong>install/</strong> nicht nachladen. Bitte Zugriffsrechte (CHMOD) auf die Dateien überprüfen. Diese sollten 644 mindestens aufweisen.",
'INSTALLER_PAGE_DATABASE_CONFIG_TITLE' => "Zugangsdaten zur Datenbank",
'INSTALLER_PAGE_SMTP_CONFIG_TITLE' => "SMTP-Server Einstellungen",
'INSTALLER_PAGE_OTHER_CONFIG_TITLE' => "Verschiedene Einstellungen",
+ 'INSTALLER_PAGE_EXTENSIONS_TITLE' => "Erweiterungen installieren",
'INSTALLER_PAGE_OVERVIEW_TITLE' => "Die Installation kann beginnen",
// Installation pages descriptions
'INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_LINK' => "SMTP-Daten",
'INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_TITLE' => "Seite 5: Sonstige Grundeinstellungen",
'INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_LINK' => "Sonstiges",
+ 'INSTALLER_TAB_NAVIGATION_EXTENSIONS_TITLE' => "Erweiterungen installieren",
+ 'INSTALLER_TAB_NAVIGATION_EXTENSIONS_LINK' => "Erweiterungen",
'INSTALLER_TAB_NAVIGATION_OVERVIEW_TITLE' => "Installationszusammenfassung",
'INSTALLER_TAB_NAVIGATION_OVERVIEW_LINK' => "Zusammenfassung",
'INSTALLER_CHANGED_ELEMENT_WRITE_FOOTER' => "Sie haben die Einstellung für das Ausgeben der Fusszeile geändert.",
'INSTALLER_CHANGED_ELEMENT_ENABLE_BACKLINK' => "Sie haben die Einstellung für den Backlink zu {?SERVER_URL?} geändert.",
+ // Changed elements - extensions
+ 'INSTALLER_CHANGED_ELEMENT_EXTENSION' => "Die Erweiterung <span class=\"data\">%s</span> wurde aus- oder abgewählt.",
+
// Fieldset legends
'INSTALLER_BASE_DATA_LEGEND_BASE_URL_PATH' => "Basis-Pfad und -URL:",
'INSTALLER_BASE_DATA_LEGEND_TITLE_SLOGAN' => "{?mt_word?}-Titel und Werbespruch:",
'INSTALLER_FIELD_FAILED_WARN_NO_PASS' => "Es wurde weder <strong>Y</strong> noch <strong>N</strong> für 'WARN_NO_PASS' übergeben.",
'INSTALLER_FIELD_FAILED_WRITE_FOOTER' => "Es wurde weder <strong>Y</strong> noch <strong>N</strong> für 'WRITE_FOOTER' übergeben.",
'INSTALLER_FIELD_FAILED_ENABLE_BACKLINK' => "Es wurde weder <strong>Y</strong> noch <strong>N</strong> für 'ENABLE_BACKLINK' übergeben.",
+
+ // Other notices
+ 'INSTALLER_EXTENSIONS_NOTICE' => "Sie wollten mindestens <strong>ext-sql_patches</strong> und zur besseren Übersicht im Adminbereich <strong>ext-task</strong> installieren. Sie können nach der Installation jederzeit weitere Erweiterungen hinzuinstallieren und brauchen dazu nicht das gesamte Script neu aufsetzen.",
));
// [EOF]
// Admin account saved
$message = '{--ADMIN_ACCOUNT_SAVED--}';
- } elseif ((!empty($postData['pass1'])) && (!empty($postData['pass2']))) {
+ } elseif ((!empty($postData['password1'])) && (!empty($postData['password2']))) {
// Update only if both passwords match
- if (($postData['pass1'][$id] == $postData['pass2'][$id])) {
+ if (($postData['password1'][$id] == $postData['password2'][$id])) {
// Save only when both passwords are the same (also when they are empty)
$add = ''; $cache_update = 1;
// Generate hash
- $hash = generateHash($postData['pass1'][$id]);
+ $hash = generateHash($postData['password1'][$id]);
// Save password when set
- if (!empty($postData['pass1'][$id])) {
+ if (!empty($postData['password1'][$id])) {
$add = sprintf(",`password`='%s'", SQL_ESCAPE($hash));
} // END - if
if (!empty($add)) {
setAdminMd5($hash);
} // END - if
- } elseif (generateHash($postData['pass1'][$id], $salt) != getAdminMd5()) {
+ } elseif (generateHash($postData['password1'][$id], $salt) != getAdminMd5()) {
// Update password cookie
setAdminMd5($hash);
}
setPostRequestArray($postArray);
// Are both passwords zero length?
- if ((strlen(postRequestElement('pass1')) == 0) && (strlen(postRequestElement('pass2')) == 0) && ($isOkay === TRUE)) {
+ if ((strlen(postRequestElement('password1')) == 0) && (strlen(postRequestElement('password2')) == 0) && ($isOkay === TRUE)) {
// Is the extension 'register' newer or equal 0.5.5?
if ((isExtensionInstalledAndNewer('register', '0.5.5')) && (isRegisterGeneratePasswordEmptyEnabled())) {
// Generate a random password
$randomPassword = generatePassword();
// Set it in both entries
- setPostRequestElement('pass1', $randomPassword);
- setPostRequestElement('pass2', $randomPassword);
+ setPostRequestElement('password1', $randomPassword);
+ setPostRequestElement('password2', $randomPassword);
} else {
// Not allowed or no recent extension version
- setPostRequestElement('pass1', '!');
- setPostRequestElement('pass2', '!');
+ setPostRequestElement('password1', '!');
+ setPostRequestElement('password2', '!');
// ... which is both not okay
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Random password generation not possible, isExtensionInstalledAndNewer(register, 0.5.5)=' . intval(isExtensionInstalledAndNewer('register', '0.5.5')) . ',isRegisterGeneratePasswordEmptyEnabled()=' . intval(isRegisterGeneratePasswordEmptyEnabled()));
} // END - if
// Did he enter his password twice?
- if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
- if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
+ if (((!isPostRequestElementSet('password1')) || (!isPostRequestElementSet('password2'))) || ((postRequestElement('password1') != postRequestElement('password2')) && (isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2')))) {
+ if ((postRequestElement('password1') != postRequestElement('password2')) && (isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2'))) {
// Both passwords did not match
- setPostRequestElement('pass1', '!');
- setPostRequestElement('pass2', '!');
+ setPostRequestElement('password1', '!');
+ setPostRequestElement('password2', '!');
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter same passwords.');
} else {
- if (!isPostRequestElementSet('pass1')) {
+ if (!isPostRequestElementSet('password1')) {
// Password 1 is empty
- setPostRequestElement('pass1', '!');
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter pass1.');
+ setPostRequestElement('password1', '!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter password1.');
} else {
// Password 2 is empty
- setPostRequestElement('pass1', '');
+ setPostRequestElement('password1', '');
}
- if (!isPostRequestElementSet('pass2')) {
+ if (!isPostRequestElementSet('password2')) {
// Password 2 is empty
- setPostRequestElement('pass2', '!');
- //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter pass2.');
+ setPostRequestElement('password2', '!');
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter password2.');
} else {
// Password 1 is empty
- setPostRequestElement('pass2', '');
+ setPostRequestElement('password2', '');
}
}
$isOkay = FALSE;
} // END - if
// Is the password long enouth?
- if ((strlen(postRequestElement('pass1')) < getPassLen()) && ($isOkay === TRUE)) {
+ if ((strlen(postRequestElement('password1')) < getPassLen()) && ($isOkay === TRUE)) {
$GLOBALS['registration_short_password'] = TRUE;
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did enter a short password.');
$isOkay = FALSE;
bigintval(postRequestElement('day')),
bigintval(postRequestElement('month')),
bigintval(postRequestElement('year')),
- generateHash(postRequestElement('pass1')),
+ generateHash(postRequestElement('password1')),
bigintval(postRequestElement('max_mails')),
bigintval(postRequestElement('max_mails')),
convertZeroToNull(postRequestElement('refid')),
'zip' => bigintval(postRequestElement('zip')),
'country' => $GLOBALS['register_country_data'],
'refid' => SQL_ESCAPE(postRequestElement('refid')),
- 'password' => SQL_ESCAPE(postRequestElement('pass1')),
+ 'password' => SQL_ESCAPE(postRequestElement('password1')),
);
} else {
// No ZIP code entered
'zip' => '',
'country' => $GLOBALS['register_country_data'],
'refid' => SQL_ESCAPE(postRequestElement('refid')),
- 'password' => SQL_ESCAPE(postRequestElement('pass1')),
+ 'password' => SQL_ESCAPE(postRequestElement('password1')),
);
}
// Generate arrays which holds the relevante chars to replace
$GLOBALS['security_chars'] = array(
// The chars we are looking for...
- 'from' => array('/', '.', chr(39), '$', '(', ')', '{--', '--}', '{?', '?}', '%', ';', '[', ']', ':', '--', chr(92), chr(39)),
+ 'from' => array('/', '.', chr(39), '$', '(', ')', '{--', '--}', '{?', '?}', '%', ';', '[', ']', ':', '--', chr(92), chr(39), '<', '>'),
// ... and we will replace to.
'to' => array(
'{SLASH}',
'{DBL_DOT}',
'{COMMENT}',
'{BACKSLASH}',
- '{SQUOTE}'
+ '{SQUOTE}',
+ '{OPEN_TAG}',
+ '{CLOSE_TAG}'
),
);
}
break;
- case 'pass1':
+ case 'password1':
$k = ''; $v = '';
break;
- case 'pass2':
+ case 'password2':
$k = 'password'; $v = md5($v);
break;
// Unsecure data which we don't want
$UNSAFE = array('password', 'id', 'remote_addr', 'sponsor_created', 'last_online', 'status', 'ref_count',
'points_amount', 'points_used', 'refid', 'hash', 'last_payment', 'last_currency',
- 'pass_old', 'ok', 'pass1', 'pass2');
+ 'pass_old', 'ok', 'password1', 'password2');
// Set default message ("not saved")
$message = '{--SPONSOR_ACCOUNT_DATA_NOT_SAVED--}';
// Check for submitted passwords
- if ((!empty($postData['pass1'])) && (!empty($postData['pass2']))) {
+ if ((!empty($postData['password1'])) && (!empty($postData['password2']))) {
// Are both passwords the same?
- if ($postData['pass1'] == $postData['pass2']) {
- // Okay, then set password and remove pass1 and pass2
- $postData['password'] = md5($postData['pass1']);
+ if ($postData['password1'] == $postData['password2']) {
+ // Okay, then set password and remove password1 and password2
+ $postData['password'] = md5($postData['password1']);
} // END - if
} // END - if
$content['surname'] = postRequestElement('surname');
$content['family'] = postRequestElement('family');
$content['timestamp'] = generateDateTime(time(), 0);
- $content['password'] = postRequestElement('pass1');
+ $content['password'] = postRequestElement('password1');
// Generate email and send it to the new sponsor
$message = loadEmailTemplate('sponsor_confirm', $content, $id);
} elseif (!isExtensionInstalled('sql_patches')) {
// No ext-sql_patches installed, so maybe in admin/guest/member/sponsor area or no admin registered?
$ret = in_array($module, array('admin', 'index', 'login', 'sponsor')); // Then there is a menu!
- } else {
- // Unsupported state!
- logDebugMessage(__FUNCTION__, __LINE__, 'This should never be reached.');
+ } elseif (!isInstallationPhase()) {
+ // Unsupported state, but ignored in installation phase
+ logDebugMessage(__FUNCTION__, __LINE__, 'This should never be reached, module[' . gettype($module) . ']=' . $module . ',forceDb=' . intval($forceDb));
}
// Return status
// Cannot validate the login data and hash
displayMessage('{--ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED--}');
}
- } elseif ((isPostRequestElementSet('reset_pass')) && (isPostRequestElementSet('hash')) && (isPostRequestElementSet('admin_login')) && (isPostRequestElementSet('admin_pass1')) && (postRequestElement('admin_pass1') == postRequestElement('admin_pass2'))) {
+ } elseif ((isPostRequestElementSet('reset_pass')) && (isPostRequestElementSet('hash')) && (isPostRequestElementSet('admin_login')) && (isPostRequestElementSet('admin_password1')) && (postRequestElement('admin_password1') == postRequestElement('admin_password2'))) {
// Okay, we shall the admin password here. So first revalidate the hash
if (adminResetValidateHashLogin(postRequestElement('hash'), postRequestElement('admin_login'))) {
// Output result
- loadTemplate('admin_reset_password_done', FALSE, doResetAdminPassword(postRequestElement('admin_login'), postRequestElement('admin_pass1')));
+ loadTemplate('admin_reset_password_done', FALSE, doResetAdminPassword(postRequestElement('admin_login'), postRequestElement('admin_password1')));
} else {
// Validation failed
displayMessage('{--ADMIN_VALIDATION_RESET_LOGIN_HASH_FAILED2--}');
assert(!isAdminRegistered());
// Admin is not registered so we have to inform the user
- if ((isFormSent('add_first_admin')) && ((!isPostRequestElementSet('admin_login')) || (!isPostRequestElementSet('admin_pass1')) || (strlen(postRequestElement('admin_pass1')) < getConfig('minium_admin_pass_length')) || (!isPostRequestElementSet('admin_pass2')) || (strlen(postRequestElement('admin_pass2')) < getConfig('minium_admin_pass_length')) || (postRequestElement('admin_pass1') != postRequestElement('admin_pass2')))) {
+ if ((isFormSent('add_first_admin')) && ((!isPostRequestElementSet('admin_login')) || (!isPostRequestElementSet('admin_password1')) || (strlen(postRequestElement('admin_password1')) < getConfig('minium_admin_pass_length')) || (!isPostRequestElementSet('admin_password2')) || (strlen(postRequestElement('admin_password2')) < getConfig('minium_admin_pass_length')) || (postRequestElement('admin_password1') != postRequestElement('admin_password2')))) {
setPostRequestElement('add_first_admin', '***');
} // END - if
// Clear error message
$errorMessage = '';
+ $ret = 'init';
+ // Is form for first admin sent?
if ((isFormSent('add_first_admin')) && (postRequestElement('add_first_admin') != '***')) {
// Hash the password with the old function because we are here in install mode
- $hashedPass = md5(postRequestElement('admin_pass1'));
+ $hashedPass = md5(postRequestElement('admin_password1'));
// Kill maybe existing session variables
destroyAdminSession();
// Init array elements
$content['login_message'] = '';
- $content['pass1_message'] = '';
- $content['pass2_message'] = '';
+ $content['password1_message'] = '';
+ $content['password2_message'] = '';
$content['error_message'] = '';
// Yet-another notice-fix
if ((isFormSent('add_first_admin')) && (postRequestElement('add_first_admin') == '***')) {
// Init variables
$loginMessage = '';
- $pass1Message = '';
- $pass2Message = '';
+ $password1Message = '';
+ $password2Message = '';
// No login entered?
if (empty($content['admin_login'])) {
} // END - if
// No password 1 entered or to short?
- if (!isPostRequestElementSet('admin_pass1')) {
- $pass1Message = '{--ADMIN_NO_PASSWORD1--}';
- } elseif (strlen(postRequestElement('admin_pass1')) < getConfig('minium_admin_pass_length')) {
- $pass1Message = '{--ADMIN_SHORT_PASSWORD1--}';
+ if (!isPostRequestElementSet('admin_password1')) {
+ $password1Message = '{--ADMIN_NO_PASSWORD1--}';
+ } elseif (strlen(postRequestElement('admin_password1')) < getConfig('minium_admin_pass_length')) {
+ $password1Message = '{--ADMIN_SHORT_PASSWORD1--}';
}
// No password 2 entered or to short?
- if (!isPostRequestElementSet('admin_pass2')) {
- $pass2Message = '{--ADMIN_NO_PASSWORD2--}';
- } elseif (strlen(postRequestElement('admin_pass2')) < getConfig('minium_admin_pass_length')) {
- $pass2Message = '{--ADMIN_SHORT_PASSWORD2--}';
+ if (!isPostRequestElementSet('admin_password2')) {
+ $password2Message = '{--ADMIN_NO_PASSWORD2--}';
+ } elseif (strlen(postRequestElement('admin_password2')) < getConfig('minium_admin_pass_length')) {
+ $password2Message = '{--ADMIN_SHORT_PASSWORD2--}';
}
// Both didn't match?
- if (postRequestElement('admin_pass1') != postRequestElement('admin_pass2')) {
+ if (postRequestElement('admin_password1') != postRequestElement('admin_password2')) {
// No match
- if (empty($pass1Message)) $pass1Message = '{--ADMIN_PASSWORD1_MISMATCH--}';
- if (empty($pass2Message)) $pass2Message = '{--ADMIN_PASSWORD2_MISMATCH--}';
+ if (empty($password1Message)) $password1Message = '{--ADMIN_PASSWORD1_MISMATCH--}';
+ if (empty($password2Message)) $password2Message = '{--ADMIN_PASSWORD2_MISMATCH--}';
} // END - if
// Output error messages
$content['login_message'] = loadTemplate('admin_login_msg', TRUE, $loginMessage);
- $content['pass1_message'] = loadTemplate('admin_login_msg', TRUE, $pass1Message);
- $content['pass2_message'] = loadTemplate('admin_login_msg', TRUE, $pass2Message);
+ $content['password1_message'] = loadTemplate('admin_login_msg', TRUE, $password1Message);
+ $content['password2_message'] = loadTemplate('admin_login_msg', TRUE, $password2Message);
$content['error_message'] = loadTemplate('admin_login_msg', TRUE, $errorMessage);
} // END - if
// Is the form sent?
if (isFormSent('add')) {
// Check all
- if ((isPostRequestElementSet('login')) && (isPostRequestElementSet('email')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')) && (postRequestElement('pass1') == postRequestElement('pass2'))) {
+ if ((isPostRequestElementSet('login')) && (isPostRequestElementSet('email')) && (isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2')) && (postRequestElement('password1') == postRequestElement('password2'))) {
// Add admin when not added already
- if (addAdminAccount(postRequestElement('login'), generateHash(postRequestElement('pass1')), postRequestElement('email')) == 'done') {
+ if (addAdminAccount(postRequestElement('login'), generateHash(postRequestElement('password1')), postRequestElement('email')) == 'done') {
// Do not ouput any form!
$FORM = FALSE;
case 'edit': // Edit sponsor account
$PASS = TRUE;
- if ((postRequestElement('pass1') != postRequestElement('pass2')) || ((!isPostRequestElementSet('pass1')) && (!isPostRequestElementSet('pass1')))) {
+ if ((postRequestElement('password1') != postRequestElement('password2')) || ((!isPostRequestElementSet('password1')) && (!isPostRequestElementSet('password1')))) {
// Remove passwords
- unsetPostRequestElement('pass1');
- unsetPostRequestElement('pass2');
+ unsetPostRequestElement('password1');
+ unsetPostRequestElement('password2');
$PASS = FALSE;
} // END - if
postRequestElement('gender' , '{%pipe,translateGender=' . postRequestElement('gender') . '%}');
postRequestElement('warning_interval', '{%pipe,createFancyTime=' . postRequestElement('warning_interval') . '%}');
- if ($PASS === FALSE) setPostRequestElement('pass1', '{--SPONSOR_PASS_UNCHANGED--}');
+ if ($PASS === FALSE) setPostRequestElement('password1', '{--SPONSOR_PASS_UNCHANGED--}');
// Load email template and send the mail away
$message = loadEmailTemplate('admin_sponsor_edit', postRequestArray(), FALSE);
} elseif (isFormSent('edit')) {
// Ok, change the account...
$updateUser = FALSE; $add = '';
- if ((!isPostRequestElementSet('pass1')) && (!isPostRequestElementSet('pass2'))) {
+ if ((!isPostRequestElementSet('password1')) && (!isPostRequestElementSet('password2'))) {
// Don't change the password
$updateUser = TRUE;
- } elseif ((postRequestElement('pass1') == postRequestElement('pass2'))) {
+ } elseif ((postRequestElement('password1') == postRequestElement('password2'))) {
// Change the password
$updateUser = TRUE;
- $add = ",`password`='" . generateHash(postRequestElement('pass1')) . "'";
+ $add = ",`password`='" . generateHash(postRequestElement('password1')) . "'";
}
if ($updateUser === TRUE) {
addYouAreHereLink('guest', __FILE__);
// Get all extension files
-$extensions = getArrayFromDirectory(
- 'templates/' . getLanguage() . '/html/ext/',
- 'ext_',
- false,
- false,
- array(),
- '.tpl',
- '@(\.|\.\.)$@',
- false
-);
+$extensions = loadAllExtensionsByTemplate();
// Now iterate through all and load that template file
$OUT = '';
setPostRequestElement('family', '');
} // END - if
- if ((postRequestElement('pass1') == '!') && (postRequestElement('pass2') == '!')) {
+ if ((postRequestElement('password1') == '!') && (postRequestElement('password2') == '!')) {
registerOutputFailedMessage('ENTER_BOTH_PASSWORDS');
- } elseif (postRequestElement('pass1') == '!') {
+ } elseif (postRequestElement('password1') == '!') {
registerOutputFailedMessage('ENTER_PASSWORD1');
- } elseif (postRequestElement('pass2') == '!') {
+ } elseif (postRequestElement('password2') == '!') {
registerOutputFailedMessage('ENTER_PASSWORD2');
}
} // END - if
// Did he enter his password twice?
- if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
- if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
+ if (((!isPostRequestElementSet('password1')) || (!isPostRequestElementSet('password2'))) || ((postRequestElement('password1') != postRequestElement('password2')) && (isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2')))) {
+ if ((postRequestElement('password1') != postRequestElement('password2')) && (isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2'))) {
// Passwords missmatch
array_push($formErrors, '{--SPONSOR_PASSWORDS_MISMATCH--}');
} else {
- if (!isPostRequestElementSet('pass1')) {
+ if (!isPostRequestElementSet('password1')) {
// Password 1 is empty
array_push($formErrors, '{--SPONSOR_PASSWORD1_EMPTY--}');
}
- if (!isPostRequestElementSet('pass2')) {
+ if (!isPostRequestElementSet('password2')) {
// Password 2 is empty
array_push($formErrors, '{--SPONSOR_PASSWORD2_EMPTY--}');
}
}
- } elseif (strlen(postRequestElement('pass1')) < getPassLen()) {
+ } elseif (strlen(postRequestElement('password1')) < getPassLen()) {
// Password is to short!
array_push($formErrors, '{--SPONSOR_PASSWORD_TOO_SHORT--}');
}
displayMessage('{--MEMBER_EMAIL_IS_ALREADY_REGISTERED--}');
} else {
// Generate hash
- $hash = generateHash(postRequestElement('pass1'), substr($content['password'], 0, -40));
- if ((($hash == $content['password']) || (postRequestElement('pass1') == postRequestElement('pass2'))) && (isPostRequestElementSet('pass1'))) {
+ $hash = generateHash(postRequestElement('password1'), substr($content['password'], 0, -40));
+ if ((($hash == $content['password']) || (postRequestElement('password1') == postRequestElement('password2'))) && (isPostRequestElementSet('password1'))) {
// Only on simple changes normal mode is active = no email or password changed
$mode = 'normal';
$AND = '';
} elseif (md5(postRequestElement('pass_old')) != getSession('sponsorpass')) {
// Entered password didn't match password in DB
$message = '{--SPONSOR_CURRENT_PASSWORD_DIDNOT_MATCH_DB--}';
- } elseif ((isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')) && (postRequestElement('pass1') != postRequestElement('pass2'))) {
+ } elseif ((isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2')) && (postRequestElement('password1') != postRequestElement('password2'))) {
// Both new passwords did not match
$message = '{--SPONSOR_BOTH_NEW_PASSWORDS_DIDNOT_MATCH--}';
- } elseif ((!isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
+ } elseif ((!isPostRequestElementSet('password1')) && (isPostRequestElementSet('password2'))) {
// No password one entered
$message = '{--SPONSOR_PASSWORD_ONE_EMPTY--}';
- } elseif ((isPostRequestElementSet('pass1')) && (!isPostRequestElementSet('pass2'))) {
+ } elseif ((isPostRequestElementSet('password1')) && (!isPostRequestElementSet('password2'))) {
// No password two entered
$message = '{--SPONSOR_PASSWORD_TWO_EMPTY--}';
- } elseif ((isPostRequestElementSet('pass1')) && (strlen(postRequestElement('pass1')) < getPassLen())) {
+ } elseif ((isPostRequestElementSet('password1')) && (strlen(postRequestElement('password1')) < getPassLen())) {
// Too short password
$message = '{--SPONSOR_PASSWORD_TOO_SHORT--}';
} else {
$PASS_AND = ''; $PASS_DATA = '';
// Check if the sponsor wants to change his/her password
- if ((postRequestElement('pass1') == postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (postRequestElement('pass1') != postRequestElement('pass_old'))) {
+ if ((postRequestElement('password1') == postRequestElement('password2')) && (isPostRequestElementSet('password1')) && (postRequestElement('password1') != postRequestElement('pass_old'))) {
// Change current password
$PASS_AND = ",`password`='%s'";
- $PASS_DATA = md5(postRequestElement('pass1'));
+ $PASS_DATA = md5(postRequestElement('password1'));
} // END - if
// Unsecure data which we don't want here
// JavaScripts don't like entities, dollar signs and timings
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
$GLOBALS['template_eval']['html'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '");';
+ } elseif (isAjaxOutputMode()) {
+ // AJAX (JSON content)
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
+ $GLOBALS['template_eval']['html'][$template] = '$ret = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '";';
} else {
// Prepare eval() command, other output doesn't like entities, maybe
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
$ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['template_content']['html'][$template] . '<!-- Template ' . $template . ' - End //-->';
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
$GLOBALS['template_eval']['html'][$template] = '$ret = "' . getColorSwitchCode($template) . compileRawCode(escapeQuotes($ret), FALSE, TRUE, TRUE, $compileCode) . '";';
+ } elseif (isAjaxOutputMode()) {
+ // AJAX (JSON content)
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
+ $GLOBALS['template_eval']['html'][$template] = '$ret = "' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['template_content']['html'][$template]), FALSE, TRUE, TRUE, $compileCode) . '";';
} else {
// JavaScript again
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
$GLOBALS['template_content']['email'][$template] = readFromFile($FQFN);
// Run code
+ //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Reached!');
$GLOBALS['template_eval']['email'][$template] = '$newContent = decodeEntities("' . compileRawCode(escapeQuotes($GLOBALS['template_content']['email'][$template])) . '");';
} elseif (!empty($template)) {
// Template file not found
if ((isset($GLOBALS['template_eval']['email'][$template])) && ($GLOBALS['template_eval']['email'][$template] != '404')) {
// Eval the code
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - BEFORE EVAL');
- ///* DEBUG: */ print('<pre>'.htmlentities($GLOBALS['template_eval']['email'][$template]).'</pre>');
+ //* DEBUG: */ print('<pre>'.htmlentities($GLOBALS['template_eval']['email'][$template]).'</pre>');
eval($GLOBALS['template_eval']['email'][$template]);
//* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - AFTER EVAL');
} // END - if
$hash = encodeHashForCookie(getUserData('password'));
// Does the hash match or should we change it?
- if (($hash == getSession('u_hash')) || (postRequestElement('pass1') == postRequestElement('pass2'))) {
+ if (($hash == getSession('u_hash')) || (postRequestElement('password1') == postRequestElement('password2'))) {
// Load the data
$content = getUserDataArray();
// Determine whether we are installing
if (!isset($GLOBALS['__mailer_installing'])) {
// Check URL (css.php/js.php need this)
- $GLOBALS['__mailer_installing'] = isGetRequestElementSet('installing');
+ $GLOBALS['__mailer_installing'] = (isGetRequestElementSet('installing') || ((isGetRequestElementSet('level')) && (getRequestElement('level') == 'install')));
} // END - if
// Return result
return json_encode($data, JSON_FORCE_OBJECT);
}
+// Get all extension files
+function loadAllExtensionsByTemplate () {
+ // Get all
+ $extensions = getArrayFromDirectory(
+ 'templates/' . getLanguage() . '/html/ext/',
+ 'ext_',
+ false,
+ false,
+ array(),
+ '.tpl',
+ '@(\.|\.\.)$@',
+ false
+ );
+
+ // Return them
+ return $extensions;
+}
+
// [EOF]
?>
var defaultTabId = null;
var footerElements = new Array();
var changedElements = new Array();
+var data = new Array();
var formChanged = false;
var saveChangesId = null;
var lastErrorMessage = null;
var el = document.getElementById(prefix + '_' + element);
// Is element set?
- if (el == null || el == undefined) {
+ if ((el == null) || (el == undefined)) {
throw new '"' + prefix + '_' + element + '" does not exist.';
+ } else if ((el.style.display == undefined) || (el.style.display == '')) {
+ throw new '"' + prefix + '_' + element + '" has no style.display element.';
}
// Default is visible
- var isVisible = ((el.style.display == undefined) || ((el.style.display != 'none') && (el.style.display != '')));
+ var isVisible = (el.style.display != 'none');
+ //* DEBUG: */ alert(prefix + '_' + element + ':' + el.style.display + '=' + isVisible);
// Return status
return isVisible;
// Marks a tab navigation entry
function markTabNavigation (prefix, tab) {
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
// Enables a given footer navigation element
function enableFooterNavigationPage (element) {
- // Remove the 'disabled' class and attribute
+ // Is it 'finish'?
if (element == 'finish') {
+ // Then without '_page' suffix
enableElement('input#finish');
} else {
+ // Regular element with '_page' suffix
enableElement('input#' + element + '_page');
+
+ // Disable 'finish' element
disableElement('input#finish');
}
}
function resetFooterNavigation () {
// Remove the 'disabled' class and attribute
for (var i = 0; i < footerElements.length; i++) {
- $('input#' + footerElements[i] + '_page').addClass('disabled');
- $('input#' + footerElements[i] + '_page').attr('disabled', 'disabled');
- $('input#' + footerElements[i] + '_page').blur();
+ disableElement('input#' + footerElements[i] + '_page');
} // END - for
+
+ // Disable this element
+ disableElement('input#finish');
}
// Getter for AJAX content
function getAjaxContent () {
// Is it defined?
- if ($('body').data('ajax_content') == undefined) {
+ if (data['ajax_content'] == undefined) {
// Not set
throw new 'ajax_content requested but not set.';
} // END - if
// Return it
- return $('body').data('ajax_content');
+ return data['ajax_content'];
+}
+
+// Setter for AJAX content
+function setAjaxContent (ajax_content) {
+ data['ajax_content'] = ajax_content;
}
// "Setter" for AJAX content but does decode the content
setAjaxContent(decoded);
}
-// Setter for AJAX content
-function setAjaxContent (ajax_content) {
- $('body').data('ajax_content', ajax_content);
-}
-
// Getter for AJAX success
function getAjaxSuccess () {
- return $('body').data('ajax_success');
+ return data['ajax_success'];
}
// Setter for AJAX success
function setAjaxSuccess (success) {
- $('body').data('ajax_success', success);
+ data['ajax_success'] = success;
}
// Set AJAX reply and decode JSON if requested
function setAjaxReply (reply, isJson) {
// Is it JSON URL-encoded content?
+ //* DEBUG: */ alert('setAjaxReply(): reply=' + reply + ',isJson=' + isJson);
if ((isJson != undefined) && (isJson == true)) {
// Decode URL-encoding (for some reason it must be here ...)
var localReply = decodeUrlEncoding(reply);
data: 'level=' + level + '&do=' + doValue + extra,
dataType: 'json',
async: false,
+ timeout: 10000,
// Called on success
success: function (ajax_content) {
});
// Return status
+ //* DEBUG: */ alert(getAjaxSuccess() + ':' + level + ',' + doValue + ',' + extra + ',' + isJson);
return getAjaxSuccess();
}
// Enables footer navigation buttons
function enableFooterNavigation (prefix, tabId) {
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
// Requests an AJAX content
function requestAjaxContent (prefix, htmlId, tabId, footerNavigation) {
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
// Register click-event for error window
$('#' + prefix + '_error_close').click(function () {
// Close the window
- closeErrorWindow(prefix);
+ closeErrorWindow(prefix, true, false);
});
// Register click-event for warning window
$('#' + prefix + '_warning_close').click(function () {
// Close the window
//* DEBUG: */ alert('displayTestWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
- closeWarningWindow(prefix);
+ closeWarningWindow(prefix, true, false);
});
// Request it from the AJAX backend
function displayChangedWarningWindow (prefix, button) {
// Fade out warning window, if open
//* DEBUG: */ alert('displayChangedWarningWindow(): prefix=' + prefix + ',button=' + button + ' - calling closeWarningWindow()');
- closeWarningWindow(prefix);
+ closeWarningWindow(prefix, true, false);
// Fade error out for eye-candy, if open
- closeErrorWindow(prefix);
+ closeErrorWindow(prefix, true, false);
// Fade it out for eye-candy
- closeProcessWindow(prefix);
+ closeProgressWindow(prefix, true, false);
// Abort here if warningDisplayed is still true
if (isElementVisible(prefix, 'warning')) {
// Displays the error window for given prefix and content
function displayErrorWindow (prefix, ajax_content) {
// Fade out warning window, if open
- //* DEBUG: */ alert('displayErrorWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
- closeWarningWindow(prefix);
+ //* DEBUG: */ alert('displayErrorWindow(): prefix=' + prefix + ',ajax_content=' + ajax_content.reply_content + ' - calling closeWarningWindow()');
+ closeWarningWindow(prefix, true, false);
// Fade it out for eye-candy
- closeErrorWindow(prefix);
+ closeErrorWindow(prefix, true, false);
// Fade it out for eye-candy
- closeProcessWindow(prefix);
+ closeProgressWindow(prefix, true, false);
// Abort here if errorDisplayed is still true
if (isElementVisible(prefix, 'error')) {
});
}
-// Displays the process window for given prefix and content
-function displayProcessWindow (prefix, ajax_content) {
+// Displays the progress window for given prefix and content
+function displayProgressWindow (prefix, ajax_content) {
// Fade out warning window, if open
- //* DEBUG: */ alert('displayProcessWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
- closeWarningWindow(prefix);
+ //* DEBUG: */ alert('displayProgressWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
+ closeWarningWindow(prefix, true, false);
// Fade it out for eye-candy
- closeErrorWindow(prefix);
+ closeErrorWindow(prefix, true, false);
// Fade it out for eye-candy
- closeProcessWindow(prefix);
+ closeProgressWindow(prefix, true, false);
- // Abort here if processDisplayed is still true
- if (isElementVisible(prefix, 'process')) {
+ // Abort here if progressDisplayed is still true
+ if (isElementVisible(prefix, 'progress')) {
// Make sure this doesn't happen
return;
} // END - if
- // Copy the response text to the process variable
+ // Copy the response text to the progress variable
if (ajax_content.reply_content != undefined) {
// Set HTML content
- setProcessContent(prefix, ajax_content.reply_content);
+ setProgressContent(prefix, ajax_content.reply_content);
} else {
- setProcessContent(prefix, ajax_content);
+ setProgressContent(prefix, ajax_content);
}
- // Fade the process in
- $('#' + prefix + '_process').fadeIn('slow', function() {
+ // Fade the progress in
+ $('#' + prefix + '_progress').fadeIn('slow', function() {
// Do nothing for now
});
}
-// Sets "process content"
-function setProcessContent (prefix, content) {
+// Sets "progress content"
+function setProgressContent (prefix, content) {
// Set HTML content
- $('#' + prefix + '_process_content').html(content);
+ $('#' + prefix + '_progress_content').html(content);
}
// Waits until the window has been closed
-function closeErrorLocked () {
+function closeErrorLocked (prefix) {
// Has all been loaded?
if (!isElementVisible(prefix, 'error')) {
// Then release ready()
$.holdReady(false);
} else {
// Recursive call again
- window.setTimeout('closeErrorLocked()', 10);
+ window.setTimeout('closeErrorLocked(' + prefix + ')', 10);
}
}
// Waits until the window has been closed
-function closeProcessLocked () {
+function closeProgressLocked (prefix) {
// Has all been loaded?
- if (!isElementVisible(prefix, 'process')) {
+ if (!isElementVisible(prefix, 'progress')) {
// Then release ready()
$.holdReady(false);
} else {
// Recursive call again
- window.setTimeout('closeProcessLocked()', 10);
+ window.setTimeout('closeProgressLocked(' + prefix + ')', 10);
}
}
// Shall this animation be "synchronized"?
if (waitClose == true) {
// Wait for the window has been closed
- closeErrorLocked();
+ closeErrorLocked(prefix);
} // END - if
} // END - if
}
-// Closes an process window
-function closeProcessWindow (prefix, waitClose, resetCurrentTabId) {
- // Is the process displayed?
- if (isElementVisible(prefix, 'process')) {
+// Closes an progress window
+function closeProgressWindow (prefix, waitClose, resetCurrentTabId) {
+ // Is the progress displayed?
+ if (isElementVisible(prefix, 'progress')) {
// Shall we wait ("sync") until the animation has completed?
if (waitClose == true) {
// Hold the ready status
} // END - if
// Yes, then fade it out
- $('#' + prefix + '_process').fadeOut('fast', function() {
+ $('#' + prefix + '_progress').fadeOut('fast', function() {
// Set current tab id to default
if (resetCurrentTabId == true) {
setCurrentTabId(defaultTabId);
// Shall this animation be "synchronized"?
if (waitClose == true) {
// Wait for the window has been closed
- closeProcessLocked();
+ closeProgressLocked(prefix);
} // END - if
} // END - if
}
// Waits until the window has been closed
-function closeWarningLocked () {
+function closeWarningLocked (prefix) {
// Has all been loaded?
if (!isElementVisible(prefix, 'warning')) {
// Then release ready()
$.holdReady(false);
} else {
// Recursive call again
- window.setTimeout('closeWarningLocked()', 10);
+ window.setTimeout('closeWarningLocked(' + prefix + ')', 10);
}
}
if (waitClose == true) {
// Wait for the window has been closed
//* DEBUG: */ alert('prefix=' + prefix + ',waitClose=' + waitClose + ' - LOCKED!');
- closeWarningLocked();
+ closeWarningLocked(prefix);
} // END - if
} // END - if
}
return;
} // END - if
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
});
}
-// Processes the content from AJAX call
-function processAjaxResponseContent (prefix, ajax_content) {
+// Progresses the content from AJAX call
+function progressAjaxResponseContent (prefix, ajax_content) {
// By default all is failed
var isResponseDone = false;
// Saves changes by sending the data to the AJAX backend script
function saveChanges (prefix) {
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
// Get the content
var ajax_content = getAjaxContent();
- // Process the returned content
- if (processAjaxResponseContent(prefix, ajax_content) == true) {
+ // Progress the returned content
+ if (progressAjaxResponseContent(prefix, ajax_content) == true) {
// Mark all elements as unchanged
markAllElementsAsUnchanged();
displayErrorWindow(prefix, '<div class="ajax_error_message">' + ajax_content.message + '</div>');
} else {
// This didn't work, why?
- displayErrorWindow(prefix, '<div class="ajax_error_message">processAjaxResponseContent() failed, please fix this.<br />\n' + lastErrorMessage + '</div>');
+ displayErrorWindow(prefix, '<div class="ajax_error_message">progressAjaxResponseContent() failed, please fix this.<br />\n' + lastErrorMessage + '</div>');
}
}
// Saves changed settings and continues with given tab
function doSaveChangesContinue (prefix, htmlId, tab) {
- // Is process working?
- if (isElementVisible(prefix, 'process')) {
+ // Is progress working?
+ if (isElementVisible(prefix, 'progress')) {
// Then exit silently
return;
} // END - if
*/
// Installation steps array
-var installSteps = new Array();
+var installationSteps = new Array();
// Failed step
var failedStep = '';
var counterSuccess = 0;
// Init all installation steps
-installSteps[0] = 'import_tables_sql';
-installSteps[1] = 'import_menu_sql';
-installSteps[2] = 'write_local_config';
-installSteps[3] = 'install_extensions';
+installationSteps[0] = 'import_tables_sql';
+installationSteps[1] = 'import_menu_sql';
+installationSteps[2] = 'install_extensions';
+
+// Always keep as last step
+installationSteps[installationSteps.length] = 'write_local_config';
// Switches instaler by redirecting
function switchInstaller (installer) {
// Switch installer
- document.location.href='install.php?installer=' + installer;
+ document.location.href = 'install.php?installer=' + installer;
}
// User has clicked on 'finish'
function doFinishInstallation () {
// First disable all buttons button
- disableElement('input#next_page');
- disableElement('input#previous_page');
- disableElement('input#finish');
+ resetFooterNavigation();
- // Display process window
- displayProcessWindow('install', '');
+ // Display progress window
+ displayProgressWindow('install', 'Init ...');
// Start installation loop delayed
- window.setTimeout("doInstallationLoop()", 500);
+ window.setTimeout('doInstallationLoop()', 500);
- // Is success counter same as array size
- if (counterSuccess != installSteps.length) {
- // Display error message
- displayErrorWindow('install', getAjaxContent());
+ // Wait here
+ window.setTimeout('doWait()', 500);
+}
+
+// Do wait
+function doWait () {
+ // Is still something to do?
+ if ((failedStep == '') && (counterSuccess != installationSteps.length)) {
+ // Wait one round more
+ window.setTimeout('doWait()', 500);
+ } else if ((failedStep == '') && (counterSuccess == installationSteps.length)) {
+ // Close window
+ closeProgressWindow('install', true, false);
+
+ // Redirect to old 'finished' page
+ document.location.href = 'admin.php';
+ } else if (failedStep != '') {
+ // Something happens that should not happen!
+ displayErrorWindow('install', 'failedStep=' + failedStep);
}
}
+// Update progress bar
+function updateProgressBar () {
+ // Increment counter
+ counterSuccess++;
+
+ // Do only update <= 100% values
+ if (counterSuccess <= installationSteps.length) {
+ // Update progress bar
+ $('#progressbar').progressbar({
+ value: (counterSuccess / installationSteps.length * 100)
+ });
+ } // END - if
+}
+
// Does the "installation loop"
function doInstallationLoop () {
// For-loop for all installation steps
- for (var i = 0; i < installSteps.length; i++) {
+ for (var i = 0; i < installationSteps.length; i++) {
// Output message
- outputInstallationStepMessage(installSteps[i]);
+ outputInstallationStepMessage(installationSteps[i]);
// Initialize next step
- if (!sendInstallationStepRequest(installSteps[i]) == true) {
+ if (!sendInstallationStepRequest(i) == true) {
// Failed step, so remember it for later display
- failedStep = installSteps[i];
+ failedStep = installationSteps[i];
// Stop here
break;
- }
-
- // Did went okay
- counterSuccess++;
+ } // END - if
// Wait a little
+ $('body').delay(500);
+
+ // Update progress bar
+ updateProgressBar();
} // END - for
+
+ // Is success counter same as array size
+ if (counterSuccess != installationSteps.length) {
+ // Display error message
+ displayErrorWindow('install', getAjaxContent() + ':' + counterSuccess + '/' + installationSteps.length + ':' + failedStep);
+ } // END - if
}
// Sends an "installation step" request out
-function sendInstallationStepRequest (step) {
+function sendInstallationStepRequest (i) {
+ // Is it set?
+ if (installationSteps[i] == undefined) {
+ // Not set installation step, so don't send it out
+ throw new 'installationSteps[' + i + '] is not set.';
+ } // END - if
+
// Send out the request
- return sendAjaxRequest('install', 'do_step', '&step=' + step, true);
+ return sendAjaxRequest('install', 'do_step', '&step=' + installationSteps[i], true);
}
// Outputs a "step message"
function outputInstallationStepMessage (step) {
// Set content
- setProcessContent('install', step);
+ // @TODO Progress bar is out-of-order: + '<div id="progressbar"></div>'
+ setProgressContent('install', step);
}
indexTranslation[2] = 'database_config';
indexTranslation[3] = 'smtp_config';
indexTranslation[4] = 'other_config';
-indexTranslation[5] = 'overview';
-indexTranslation[6] = 'finish';
+indexTranslation[5] = 'extensions';
+indexTranslation[6] = 'overview';
-// 'next page' linking, key is current page, value is the next page
-var nextPage = new Array();
+// Always last ...
+indexTranslation[indexTranslation.length] = 'finish';
+
+// 'next/previous page' linking, key is current page, value is the next page
+var nextPage = new Array();
+var previousPage = new Array();
// Add all 'next page' entries
nextPage['welcome'] = 'base_data';
nextPage['base_data'] = 'database_config';
nextPage['database_config'] = 'smtp_config';
nextPage['smtp_config'] = 'other_config';
-nextPage['other_config'] = 'overview';
+nextPage['other_config'] = 'extensions';
+nextPage['extensions'] = 'overview';
nextPage['overview'] = 'finish';
// 'previous page' linking, key is current page, value is the previous page
previousPage['database_config'] = 'base_data';
previousPage['smtp_config'] = 'database_config';
previousPage['other_config'] = 'smtp_config';
-previousPage['overview'] = 'other_config';
+previousPage['extensions'] = 'other_config';
+previousPage['overview'] = 'extensions';
previousPage['finish'] = 'overview';
------------------------------
{--SPONSOR_WARNING_INTERVAL--}: $content[warning_interval]
------------------------------
-{--PASS_1--}: $content[pass1]
+{--PASS_1--}: $content[password1]
------------------------------
Mit freundlichen Grüßen,
{--ZIP--}: {%user,zip,bigintval=$userid%}
{--CITY--}: {%user,city=$userid%}
{--EMAIL--}: {%user,email=$userid%}
-{--PASS_1--}: $content[pass1]
+{--PASS_1--}: $content[password1]
------------------------------------------
IP-Nummer: {%server,remote_addr%} (Real: {%server,real_ip_address%})
------------------------------------------
<tr>
<td align="right">{--ADMIN_ADMINS_ENTER_PASSWORD1--}:</td>
<td>
- <input class="form_field" type="password" name="pass1" size="10" maxlength="255" />
+ <input class="form_field" type="password" name="password1" size="10" maxlength="255" />
</td>
</tr>
<tr>
<td class="bottom" align="right">{--ADMIN_ADMINS_ENTER_PASSWORD2--}:</td>
<td class="bottom">
- <input class="form_field" type="password" name="pass2" size="10" maxlength="255" />
+ <input class="form_field" type="password" name="password2" size="10" maxlength="255" />
</td>
</tr>
<tr>
{--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass1" size="10" maxlength="255" />
- <input type="password" class="form_field" name="pass2" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="255" />
</td>
</tr>
<tr>
<div class="table_row">
<label class="admin_label" for="tester_user_email">{--ADMIN_ADD_TESTER_USER_PASSWORD1--}</label>
- <input type="password" class="form_field" name="pass1" value="{?tester_user_password?}" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" value="{?tester_user_password?}" size="10" maxlength="255" />
</div>
<div class="table_row">
<label class="admin_label" for="tester_user_email">{--ADMIN_ADD_TESTER_USER_PASSWORD2--}</label>
- <input type="password" class="form_field" name="pass2" value="{?tester_user_password?}" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" value="{?tester_user_password?}" size="10" maxlength="255" />
</div>
</fieldset>
<input type="text" class="form_field" name="email[$content[id]]" value="$content[email]" size="25" maxlength="255" />
</td>
<td align="center" class="{%template,ColorSwitch%} bottom right">
- <input type="password" class="form_field" name="pass1[$content[id]]" size="10" maxlength="255" />
- <input type="password" class="form_field" name="pass2[$content[id]]" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1[$content[id]]" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2[$content[id]]" size="10" maxlength="255" />
</td>
<td align="center" class="{%template,ColorSwitch%} bottom right">
$content[access_mode]
{--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass1" size="10" maxlength="255" />
- <input type="password" class="form_field" name="pass2" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="255" />
</td>
</tr>
<tr>
<tr>
<td align="right">{--ADMIN_ENTER_PASSWORD1--}:</td>
<td>
- <input type="password" class="form_field" name="pass1" size="5" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="5" maxlength="255" />
</td>
</tr>
<tr>
<td class="bottom" align="right">{--ADMIN_ENTER_PASSWORD2--}:</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass2" size="5" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="5" maxlength="255" />
</td>
</tr>
<tr>
<tr>
<td align="right">{--ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD1--}:</td>
<td>
- <input type="password" class="form_field" name="admin_pass1" size="20" maxlength="255" />
+ <input type="password" class="form_field" name="admin_password1" size="20" maxlength="255" />
</td>
</tr>
- $content[pass1_message]
+ $content[password1_message]
<tr>
<td align="right">{--ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD2--}:</td>
<td>
- <input type="password" class="form_field" name="admin_pass2" size="20" maxlength="255" />
+ <input type="password" class="form_field" name="admin_password2" size="20" maxlength="255" />
</td>
</tr>
- $content[pass2_message]
+ $content[password2_message]
<tr>
<td align="center" colspan="2" class="table_footer top">
<input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
{--ADMIN_ENTER_NEW_PASSWORD1--}
</td>
<td class="bottom">
- <input type="password" class="form_field" name="admin_pass1" size="20" maxlength="255" />
+ <input type="password" class="form_field" name="admin_password1" size="20" maxlength="255" />
</td>
</tr>
<tr>
{--ADMIN_ENTER_NEW_PASSWORD2--}
</td>
<td class="bottom">
- <input type="password" class="form_field" name="admin_pass2" size="20" maxlength="255" />
+ <input type="password" class="form_field" name="admin_password2" size="20" maxlength="255" />
</td>
</tr>
<tr>
<div class="para">
-Diese Erweiterung bietet Ihnen die Möglichkeit an, Lead-Code von
-Sponsornetzwerken in die Mitgliederanmeldung einzubinden. Dazu müssen
-Sie derzeit den Lead-Code in das Template <u>lead_code.tpl</u> einbinden
-(mehrere Lead-Codes sind auch möglich!).
+ Diese Erweiterung bietet Ihnen die Möglichkeit an, Lead-Code von
+ Sponsornetzwerken in die Mitgliederanmeldung einzubinden. Dazu müssen
+ Sie derzeit den Lead-Code in das Template <u>lead_code.tpl</u> einbinden
+ (mehrere Lead-Codes sind auch möglich!).
</div>
<div class="para">
-Meistens müssen Sie irgentwelche eindeutigen Daten an den Lead-Code
-übergeben. Dies können z.B. doe User-Id und/oder die Email-Adresse
-sein. Beides wird von diesem Script derzeit auch unterstützt.
+ Meistens müssen Sie irgentwelche eindeutigen Daten an den Lead-Code
+ übergeben. Dies können z.B. doe User-Id und/oder die
+ Email-Adresse sein. Beides wird von diesem Script derzeit auch
+ unterstützt.
</div>
<div class="para">
-Wenn Sie die User-Id übertragen möchten, so verwenden Sie die
-Template-Variable <u>lead_userid</u>, möchten Sie die Email-Adresse von der
-Anmeldung übertragen, verwenden Sie <u>lead_email</u>. Dazu ein
-Beispielcode:
+ Wenn Sie die User-Id übertragen möchten, so verwenden Sie die
+ Template-Variable <u>lead_userid</u>, möchten Sie die Email-Adresse
+ von der Anmeldung übertragen, verwenden Sie <u>lead_email</u>. Dazu
+ ein Beispielcode:
</div>
<div class="para">
<img border="0" alt="Lead" width="1" height="1"
- src="http://some-sponsor-network/lead-image.php?campaign=xxx&user_data=$content[lead_userid]_$content[lead_email]" />
+ src="http://some-sponsor-network/lead-image.php?campaign=xxx&amp;user_data=$content[lead_userid]_$content[lead_email]" />
</div>
<div class="para">
-Sollten Sie dazu noch Fragen haben, so kommen Sie doch einfach <a target="_blank"
- href="http://forum.mxchange.org" title="Direkt-Link zum Support-Forum">in das
-Forum</a>. Ich beantworte Ihnen gerne Ihre Fragen dazu und helfe Ihnen bei
-Schwierigkeiten weiter.
+ Sollten Sie dazu noch Fragen haben, so kommen Sie doch einfach <a
+ rel="external" target="_blank" href="http://forum.mxchange.org"
+ title="Direkt-Link zum Support-Forum">in das Forum</a>. Ich beantworte
+ Ihnen gerne Ihre Fragen dazu und helfe Ihnen bei Schwierigkeiten weiter.
</div>
-<div class="para">
- Mit dieser Erweiterung können Sie Ihren Mitgliedern eine Auszahlung
- ihrer Internet-Währung <a href="http://www.primusportal.de/r/Quix0r"
- target="_blank" rel="external">Primera</a> auf ihr Primera-Account
- überweisen lassen. Sie als Primera-Anbieter brauchen dazu
- selbstverständlich ein Primera-Account. Mehr dazu auf
- <a target="_blank" rel="external"
- href="http://www.primusportal.de/r/Quix0r">www.primusportal.de</a>. Wenn
- Sie möchten, können Sie auch ganz zu Primera wechseln. Dazu
- geben Sie unter <a target="_blank" rel="external"
- href="{OPEN_CONFIG}URL{CLOSE_CONFIG}/modules.php?module=admin&what=config_other">Sonstige
- Einstellungen</a>, "Währung Ihres
- {OPEN_CONFIG}mt_word2{CLOSE_CONFIG}" einfach das Wort <strong>Primera</strong> ein.
-</div>
+<!-- @DEPRECATED //-->
{--PASS_1--}, {--PASS_2--}:
</td>
<td class="register_right">
- <input type="password" class="form_field" name="pass1" size="10" maxlength="100" />
- <input type="password" class="form_field" name="pass2" size="10" maxlength="100" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="100" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="100" />
</td>
</tr>
{--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass1" size="10" maxlength="255" />
- <input type="password" class="form_field" name="pass2" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="255" />
</td>
</tr>
<tr>
--- /dev/null
+<div align="center">
+<table border="0" cellspacing="0" cellpadding="0">
+<tr>
+ <td align="center" class="header_column bottom right" width="30"><strong>{--ID_SELECT--}</strong></td>
+ <td align="center" class="header_column bottom right"><strong>{--ADMIN_EXTENSION_NAME--}</strong></td>
+ <td align="center" class="header_column bottom" width="90"><strong>{--ADMIN_EXTENSION_VERSION--}</strong></td>
+</tr>
+$content
+<tr>
+ <td colspan="3" class="table_footer">
+ <div class="notice">
+ {--INSTALLER_EXTENSIONS_NOTICE--}
+ </div>
+ </td>
+</tr>
+</table>
+</div>
--- /dev/null
+<tr>
+ <td class="{%template,ColorSwitch%} bottom right" align="center">
+ <input type="checkbox" title="{%message,INSTALLER_MARK_EXTENSION=$content[ext_name]%}" class="admoin_normal" id="ext_$content[ext_name]" name="sel[$content[ext_name]]" value="1" onchange="return allowSaveChanges('ext_$content[ext_name]')"$content[checked]$content[disabled]/>
+ </td>
+ <td class="{%template,ColorSwitch%} bottom right">
+ <strong>$content[ext_name]</strong>
+ </td>
+ <td class="{%template,ColorSwitch%} bottom">
+ <strong>$content[ext_version]</strong>
+ </td>
+</tr>
+
+<tr>
+ <td class="{%template,ColorSwitch%} bottom" colspan="3" align="center">
+ $content[description]
+ </td>
+</tr>
</div>
</div>
-<div id="install_error" class="ajax_error">
+<div id="install_error" class="ajax_error" style="display: none;">
<div class="ajax_error_title">
<strong>{--INSTALLER_AJAX_ERROR_TITLE--}</strong>
</div>
</div>
</div>
-<div id="install_warning" class="ajax_warning">
+<div id="install_warning" class="ajax_warning" style="display: none;">
<div class="ajax_warning_title">
<strong>{--INSTALLER_AJAX_WARNING_TITLE--}</strong>
</div>
</div>
</div>
-<div id="install_process" class="ajax_process">
- <div class="ajax_process_title">
+<div id="install_progress" class="ajax_progress" style="display: none;">
+ <div class="ajax_progress_title">
<strong>{--INSTALLER_AJAX_FINISH_TITLE--}</strong>
</div>
- <div class="ajax_process_close">
- <strong id="install_process_close" style="padding-left:1.5px;cursor:wait">X</strong>
+ <div class="ajax_progress_close">
+ <strong id="install_progress_close" style="padding-left:1.5px;cursor:wait">X</strong>
</div>
<div style="clear:both"></div>
- <div class="ajax_process_content" id="install_process_content">
+ <div class="ajax_progress_content" id="install_progress_content">
<!-- Content will be inserted here by AJAX //-->
</div>
</div>
// This must be the last one
scripts[scripts.length] = '{%url,js=js.php?js=install_ajax&install_page=$content[install_page]%}';
-// Do this only when all is ready
// Load all scripts
if (loadScripts(scripts) == true) {
// Wait for loadScripts() finishing loading all scripts
<li id="install_database_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_LINK--}</a></li>
<li id="install_smtp_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_LINK--}</a></li>
<li id="install_other_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_LINK--}</a></li>
+ <li id="install_extensions" class="tab_enabled"><a id="install_extensions_link" class="tabnav_enabled" href="#" title="{--INSTALLER_TAB_NAVIGATION_EXTENSIONS_TITLE--}">{--INSTALLER_TAB_NAVIGATION_EXTENSIONS_LINK--}</a></li>
<li id="install_overview" class="tab_enabled"><a id="install_overview_link" class="tabnav_enabled" href="#" title="{--INSTALLER_TAB_NAVIGATION_OVERVIEW_TITLE--}">{--INSTALLER_TAB_NAVIGATION_OVERVIEW_LINK--}</a></li>
</ul>
<tr>
<td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD1--}</td>
<td align="left">
- <input type="password" class="form_field" name="mysql[pass1]" size="25" />
+ <input type="password" class="form_field" name="mysql[password1]" size="25" />
</td>
</tr>
<tr>
<td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD2--}</td>
<td align="left">
- <input type="password" class="form_field" name="mysql[pass2]" size="25" />
+ <input type="password" class="form_field" name="mysql[password2]" size="25" />
</td>
</tr>
<tr>
<tr>
<td align="right" class="install_right">{--INSTALLER_SMTP_PASSWORD1--}</td>
<td align="left">
- <input type="password" class="form_field" name="smtp_pass1" size="25" value="$content[smtp_pass1]" />
+ <input type="password" class="form_field" name="smtp_password1" size="25" value="$content[smtp_password1]" />
</td>
</tr>
<tr>
<td align="right" class="install_right">{--INSTALLER_SMTP_PASSWORD2--}</td>
<td align="left">
- <input type="password" class="form_field" name="smtp_pass2" size="25" value="$content[smtp_pass2]" />
+ <input type="password" class="form_field" name="smtp_password2" size="25" value="$content[smtp_password2]" />
</td>
</tr>
<tr>
<input type="hidden" name="mysql[prefix]" value="$content[mysql_prefix]" />
<input type="hidden" name="mysql[type]" value="$content[table_type]" />
<input type="hidden" name="mysql[login]" value="$content[mysql_login]" />
- <input type="hidden" name="mysql[pass1]" value="$content[mysql_pass1]" />
- <input type="hidden" name="mysql[pass2]" value="$content[mysql_pass2]" />
+ <input type="hidden" name="mysql[password1]" value="$content[mysql_password1]" />
+ <input type="hidden" name="mysql[password2]" value="$content[mysql_password2]" />
<input type="submit" class="form_submit" value="{--INSTALLER_NEXT_PAGE--}" />
</td>
</tr>
--- /dev/null
+<div align="center">
+<div class="install_title">
+ {--INSTALLER_PAGE_EXTENSIONS_TITLE--}
+</div>
+
+<div class="para dashed" style="overflow: scroll; height: 400px;">
+ <form>
+ {%pipe,generateInstallerExtensionTable%}
+ </form>
+</div>
+</div>
// Wait for loadScripts() finishing loading all scripts
$().ready(function () {
// Process window
- $("#install_process").draggable({opacity: 0.85});
+ $("#install_progress").draggable({opacity: 0.85});
// Warning window
$("#install_warning").draggable({opacity: 0.85});
//-----------------------------------------
// Drag'N'Drop
//-----------------------------------------
- $('#install_process').draggable({
+ $('#install_progress').draggable({
opacity: 0.85
});
<tr>
<td align="right">{--PASS_1--}:</td>
<td>
- <input type="password" class="form_field" name="pass1" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="255" />
</td>
</tr>
<tr>
<td class="bottom" align="right">{--PASS_2--}:</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass2" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="255" />
</td>
</tr>
{--SPONSOR_ENTER_PASSWORDS--}:
</td>
<td class="bottom">
- <input type="password" class="form_field" name="pass1" size="10" maxlength="255" />
- <input type="password" class="form_field" name="pass2" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password1" size="10" maxlength="255" />
+ <input type="password" class="form_field" name="password2" size="10" maxlength="255" />
</td>
</tr>
<tr>
color: #e0e0e0;
}
-.ajax_error, .ajax_warning, .ajax_process {
+.ajax_error, .ajax_warning, .ajax_progress {
border: 1px solid #ffffff;
z-index: 200;
min-height: 10px;
background-color: #999900;
}
-.ajax_process {
+.ajax_progress {
background-color: #009900;
}
-.ajax_error_title, .ajax_warning_title, .ajax_process_title {
+.ajax_error_title, .ajax_warning_title, .ajax_progress_title {
border: 1px solid #ffffff;
padding: 3px;
color: #ffffff;
background-color: #bbbb00;
}
-.ajax_process_title {
+.ajax_progress_title {
background-color: #0000dd;
}
-.ajax_error_close, .ajax_warning_close, .ajax_process_close {
+.ajax_error_close, .ajax_warning_close, .ajax_progress_close {
border: 1px solid #ffffff;
float: right;
width: 10px;
background-color: #bbbb00;
}
-.ajax_process_close {
+.ajax_progress_close {
color: #c0c0c0;
background-color: #0000dd;
cursor: wait;
}
-.ajax_error_content, .ajax_warning_content, .ajax_process_content {
+.ajax_error_content, .ajax_warning_content, .ajax_progress_content {
width: 470px;
border: 1px solid #ffffff;
margin-top: 5px;
text-align: left;
font-style: italic;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align:
+ left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}
color: #e0e0e0;
}
-.ajax_error, .ajax_warning, .ajax_process {
+.ajax_error, .ajax_warning, .ajax_progress {
border: 1px solid #ffffff;
z-index: 200;
min-height: 10px;
background-color: #999900;
}
-.ajax_process {
+.ajax_progress {
background-color: #0000aa;
}
-.ajax_error_title, .ajax_warning_title, .ajax_process_title {
+.ajax_error_title, .ajax_warning_title, .ajax_progress_title {
border: 1px solid #ffffff;
padding: 3px;
color: #ffffff;
background-color: #bbbb00;
}
-.ajax_process_title {
+.ajax_progress_title {
background-color: #0000dd;
}
-.ajax_error_close, .ajax_warning_close, .ajax_process_close {
+.ajax_error_close, .ajax_warning_close, .ajax_progress_close {
border: 1px solid #ffffff;
float: right;
width: 10px;
background-color: #bbbb00;
}
-.ajax_process_close {
+.ajax_progress_close {
color: #c0c0c0;
background-color: #0000dd;
cursor: wait;
.ajax_error_message {
}
-.ajax_error_content, .ajax_warning_content, .ajax_process_content {
+.ajax_error_content, .ajax_warning_content, .ajax_progress_content {
width: 470px;
border: 1px solid #ffffff;
margin-top: 5px;
}
.ajax_bug_table {
- background-color: #cc0000;
+ background-color: #aa0000;
margin: 0px;
max-width: 100%;
min-width: 400px;
}
.ajax_bug_table_header {
- background-color: #cc0000;
+ background-color: #aa0000;
color: #ffffff;
}
text-align: left;
font-style: italic;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align: left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}
color: #e0e0e0;
}
-.ajax_error, .ajax_warning, .ajax_process {
+.ajax_error, .ajax_warning, .ajax_progress {
border: 1px solid #ffffff;
z-index: 200;
min-height: 10px;
background-color: #999900;
}
-.ajax_process {
+.ajax_progress {
background-color: #009900;
}
-.ajax_error_title, .ajax_warning_title, .ajax_process_title {
+.ajax_error_title, .ajax_warning_title, .ajax_progress_title {
border: 1px solid #ffffff;
padding: 3px;
color: #ffffff;
background-color: #bbbb00;
}
-.ajax_process_title {
+.ajax_progress_title {
background-color: #0000dd;
}
-.ajax_error_close, .ajax_warning_close, .ajax_process_close {
+.ajax_error_close, .ajax_warning_close, .ajax_progress_close {
border: 1px solid #ffffff;
float: right;
width: 10px;
background-color: #bbbb00;
}
-.ajax_process_close {
+.ajax_progress_close {
color: #c0c0c0;
background-color: #0000dd;
cursor: wait;
.ajax_error_message {
}
-.ajax_error_content, .ajax_warning_content, .ajax_process_content {
+.ajax_error_content, .ajax_warning_content, .ajax_progress_content {
width: 470px;
border: 1px solid #ffffff;
margin-top: 5px;
text-align: left;
font-style: italic;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align: left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}
color: #e0e0e0;
}
-.ajax_error, .ajax_warning, .ajax_process {
+.ajax_error, .ajax_warning, .ajax_progress {
border: 1px solid #ffffff;
z-index: 200;
min-height: 10px;
background-color: #999900;
}
-.ajax_process {
+.ajax_progress {
background-color: #0000aa;
}
-.ajax_error_title, .ajax_warning_title, .ajax_process_title {
+.ajax_error_title, .ajax_warning_title, .ajax_progress_title {
border: 1px solid #ffffff;
padding: 3px;
color: #ffffff;
background-color: #bbbb00;
}
-.ajax_process_title {
+.ajax_progress_title {
background-color: #0000dd;
}
-.ajax_error_close, .ajax_warning_close, .ajax_process_close {
+.ajax_error_close, .ajax_warning_close, .ajax_progress_close {
border: 1px solid #ffffff;
float: right;
width: 10px;
background-color: #bbbb00;
}
-.ajax_process_close {
+.ajax_progress_close {
color: #c0c0c0;
background-color: #0000dd;
cursor: wait;
.ajax_error_message {
}
-.ajax_error_content, .ajax_warning_content, .ajax_process_content {
+.ajax_error_content, .ajax_warning_content, .ajax_progress_content {
width: 470px;
border: 1px solid #ffffff;
margin-top: 5px;
text-align: left;
font-style: italic;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align: left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}
.good {
color: #00aa00;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align: left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}
.good {
color: #00aa00;
}
+
+.ui-progressbar {
+ height:2em;
+ text-align: left;
+ overflow: hidden;
+}
+
+.ui-progressbar .ui-progressbar-value {
+ margin: -1px;
+ height:100%;
+}