X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Flibs%2Fnetwork_functions.php;h=92174639cab7979bfe389342f1e06ff738b10145;hb=15b33f67108fcf717fc56fc9cb931f7c22a69737;hp=90ad1a0efd843cd81169cf92f7402c6de65bd588;hpb=93ccd79d1a3fcb1ee5a101cb6bb670901f154555;p=mailer.git diff --git a/inc/libs/network_functions.php b/inc/libs/network_functions.php index 90ad1a0efd..92174639ca 100644 --- a/inc/libs/network_functions.php +++ b/inc/libs/network_functions.php @@ -1464,7 +1464,7 @@ function doAdminNetworkProcessNetworkApiConfig () { } // Only adds network type configuration if not yet present -function doAdminNetworkProcessAddHandlerTypesConfig () { +function doAdminNetworkProcessAddHandlerTypesConfig ($displayMessage = true) { // Remove the 'ok' part unsetPostRequestElement('ok'); @@ -1488,6 +1488,8 @@ function doAdminNetworkProcessAddHandlerTypesConfig () { $content = array(); $id = 'network_max_reload_time_ye'; $skip = false; + + // Get all POST data $postData = postRequestArray(); // Convert "reload time selections" @@ -1503,31 +1505,75 @@ function doAdminNetworkProcessAddHandlerTypesConfig () { return; } // END - if - // Get SQL query for new entry - $SQL = getInsertSqlFromArray(postRequestArray(), 'network_types_config'); + // Copy 'set all' and remove it from POST data + $setAll = (postRequestElement('set_all') === 'Y'); + unsetPostRequestElement('set_all'); - // Run the query - SQL_QUERY($SQL, __FUNCTION__, __LINE__); + // Shall we set for all? + if ($setAll === true) { + // Get all handlers + $result = SQL_QUERY_ESC('SELECT `network_type_id` FROM `{?_MYSQL_PREFIX?}_network_types` WHERE `network_id`=%s ORDER BY `network_type_id` ASC', + array(bigintval(getRequestElement('network_id'))), __FUNCTION__, __LINE__); - // Output message - if (!SQL_HASZEROAFFECTED()) { - // Successfully added - displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}'); + // Do we have entries? + if (SQL_HASZERONUMS($result)) { + // No, then abort here + displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL_404--}'); + return; + } // END - if + + // Init number of rows + $numRows = 0; + + // Fetch all ids + while (list($typeId) = SQL_FETCHROW($result)) { + // Set it in GET data + setGetRequestElement('network_type_id', $typeId); + + // Call this function again + $numRows += doAdminNetworkProcessAddHandlerTypesConfig(false); + } // END - while + + // Free result + SQL_FREERESULT($result); + + // Output message + if ($numRows > 0) { + // Something has been updated + displayMessage('{%message,ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALL_HANDLER_SAVED=' . bigintval($numRows) . '%}'); + } else { + // Nothing has been saved + loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}'); + } } else { - // Not added - loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_SAVED--}'); + // Get SQL query for new entry + $SQL = getInsertSqlFromArray(postRequestArray(), 'network_types_config'); + + // Run the query + SQL_QUERY($SQL, __FUNCTION__, __LINE__); + + // Shall we display the message? + if ($displayMessage === true) { + // Output message + if (!SQL_HASZEROAFFECTED()) { + // Successfully added + displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}'); + } else { + // Not added + loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_SAVED--}'); + } + } else { + // Return amount of affected rows (1 or 2) + return SQL_AFFECTEDROWS(); + } } } // Only changes network type configuration if not yet present -function doAdminNetworkProcessEditHandlerTypesConfig () { +function doAdminNetworkProcessEditHandlerTypesConfig ($displayMessage = true) { // Remove the 'ok' part unsetPostRequestElement('ok'); - // Add both ids - setPostRequestElement('network_id', bigintval(getRequestElement('network_id'))); - setPostRequestElement('network_type_id', bigintval(getRequestElement('network_type_id'))); - /* * Some parameters are optional, at least one must be given so check a bunch * of parameters. @@ -1559,19 +1605,67 @@ function doAdminNetworkProcessEditHandlerTypesConfig () { return; } // END - if - // Get SQL query for new entry - $SQL = getUpdateSqlFromArray(postRequestArray(), 'network_types_config', 'network_data_id', postRequestElement('network_data_id'), array('network_data_id')); + // Copy 'set all' and remove it from POST data + $setAll = (postRequestElement('set_all') === 'Y'); + unsetPostRequestElement('set_all'); - // Run the query - SQL_QUERY($SQL, __FUNCTION__, __LINE__); + // Shall we set for all? + if ($setAll === true) { + // Get all data entries + $result = SQL_QUERY_ESC('SELECT `network_data_id` FROM `{?_MYSQL_PREFIX?}_network_types_config` WHERE `network_id`=%s ORDER BY `network_type_id` ASC', + array(bigintval(getRequestElement('network_id'))), __FUNCTION__, __LINE__); - // Output message - if (!SQL_HASZEROAFFECTED()) { - // Successfully added - displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}'); + // Do we have entries? + if (SQL_HASZERONUMS($result)) { + // No, then abort here + displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL_404--}'); + return; + } // END - if + + // Init number of rows + $numRows = 0; + + // Fetch all ids + while (list($dataId) = SQL_FETCHROW($result)) { + // Set it in GET data + setPostRequestElement('network_data_id', $dataId); + + // Call this function again + $numRows += doAdminNetworkProcessEditHandlerTypesConfig(false); + } // END - while + + // Free result + SQL_FREERESULT($result); + + // Output message + if ($numRows > 0) { + // Something has been updated + displayMessage('{%message,ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALL_HANDLER_SAVED=' . bigintval($numRows) . '%}'); + } else { + // Nothing has been saved + loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}'); + } } else { - // Not added - loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}'); + // Get SQL query for new entry + $SQL = getUpdateSqlFromArray(postRequestArray(), 'network_types_config', 'network_data_id', postRequestElement('network_data_id'), array('network_data_id')); + + // Run the query + SQL_QUERY($SQL, __FUNCTION__, __LINE__); + + // Shall we display the message? + if ($displayMessage === true) { + // Output message + if (!SQL_HASZEROAFFECTED()) { + // Successfully added + displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}'); + } else { + // Not added + loadTemplate('admin_settings_unsaved', false, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}'); + } + } else { + // Return amount of affected rows (1 or 2) + return SQL_AFFECTEDROWS(); + } } }