One more underscore to make it more readable
[mailer.git] / inc / libs / network_functions.php
index 05c7927de4707b35932ecacd154a8426eee25bba..3e03193f13607976c293c4b38bf4e23d089a1fd5 100644 (file)
@@ -108,6 +108,9 @@ function doNetworkHandleForm () {
        } elseif (!isGetRequestElementSet('do')) {
                // Skip any further requests
                return;
+       } elseif ((getHttpRequestMethod() != 'POST') && (getRequestElement('do') != 'export')) {
+               // Do not process non-POST requests that are not 'do=export'
+               return;
        }
 
        // Process the request
@@ -188,84 +191,42 @@ function getNetworkActivatedColumn ($whereAnd = 'WHERE', $table = '') {
 
 // Checks whether the given network type is already used (valid)
 function isNetworkTypeHandleValid ($type, $networkId) {
-       // Query for it
-       $result = SQL_QUERY_ESC("SELECT `network_type_id` FROM `{?_MYSQL_PREFIX?}_network_types` WHERE `network_id`=%s AND `network_type_handler`='%s' LIMIT 1",
-               array(
-                       $networkId,
-                       $type
-               ), __FUNCTION__, __LINE__);
-
-       // Does it exist?
-       $isValid = (SQL_NUMROWS($result) == 1);
-
-       // Free result
-       SQL_FREERESULT($result);
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$networkId][$type])) {
+               // Does it exist?
+               $GLOBALS[__FUNCTION__][$networkId][$type] = (countSumTotalData(bigintval($networkId), 'network_types', 'network_type_id', 'network_id', TRUE, sprintf(" AND `network_type_handler`='%s'", SQL_ESCAPE($type))) == 1);
+       } // END - if
 
        // Return result
-       return $isValid;
+       return $GLOBALS[__FUNCTION__][$networkId][$type];
 }
 
 // Checks whether the given network request parameter is already used (valid)
-function isNetworkRequestElementValid ($key, $type, $networkId) {
-       // Query for it
-       $result = SQL_QUERY_ESC("SELECT `network_request_param_id` FROM `{?_MYSQL_PREFIX?}_network_request_params` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_request_param_key`='%s' LIMIT 1",
-               array(
-                       $networkId,
-                       $type,
-                       $key
-               ), __FUNCTION__, __LINE__);
-
-       // Does it exist?
-       $isValid = (SQL_NUMROWS($result) == 1);
-
-       // Free result
-       SQL_FREERESULT($result);
-
-       // Return result
-       return $isValid;
-}
-
-// Checks whether the given vcheck request parameter is already used (valid)
-function isNetworkVcheckElementValid ($key, $networkId) {
-       // Query for it
-       $result = SQL_QUERY_ESC("SELECT `network_vcheck_param_id` FROM `{?_MYSQL_PREFIX?}_network_vcheck_params` WHERE `network_id`=%s AND `network_vcheck_param_key`='%s' LIMIT 1",
-               array(
-                       $networkId,
-                       $key
-               ), __FUNCTION__, __LINE__);
-
-       // Does it exist?
-       $isValid = (SQL_NUMROWS($result) == 1);
-
-       // Free result
-       SQL_FREERESULT($result);
+function isNetworkRequestElementValid ($key, $networkTypeId, $networkId) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key])) {
+               // Does it exist?
+               $GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key] = (countSumTotalData(bigintval($networkId), 'network_request_params', 'network_request_param_id', 'network_id', TRUE, sprintf(" AND `network_type_id`=%s AND `network_request_param_key`='%s'", bigintval($networkTypeId), SQL_ESCAPE($key))) == 1);
+       } // END - if
 
        // Return result
-       return $isValid;
+       return $GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key];
 }
 
 // Checks whether the given network API array translation
-function isNetworkArrayTranslationValid ($key, $type, $networkId) {
-       // Query for it
-       $result = SQL_QUERY_ESC("SELECT `network_array_id` FROM `{?_MYSQL_PREFIX?}_network_array_translation` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_array_index`='%s' LIMIT 1",
-               array(
-                       $networkId,
-                       $type,
-                       $key
-               ), __FUNCTION__, __LINE__);
-
-       // Does it exist?
-       $isValid = (SQL_NUMROWS($result) == 1);
-
-       // Free result
-       SQL_FREERESULT($result);
+function isNetworkArrayTranslationValid ($key, $networkTypeId, $networkId) {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key])) {
+               // Does it exist?
+               $GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key] = (countSumTotalData(bigintval($networkId), 'network_array_translation', 'network_array_id', 'network_id', TRUE, sprintf(" AND `network_type_id`=%s AND `network_array_index`='%s'", bigintval($networkTypeId), SQL_ESCAPE($key))) == 1);
+       } // END - if
 
        // Return result
-       return $isValid;
+       return $GLOBALS[__FUNCTION__][$networkId][$networkTypeId][$key];
 }
 
 // "Getter" for a network's data by provided id number
-function getNetworkDataById ($networkId, $column = '') {
+function getNetworkDataFromId ($networkId, $column = '') {
        // Ids lower one are not accepted
        if (!isValidId($networkId)) {
                // Not good, should be fixed
@@ -434,7 +395,7 @@ LIMIT 1',
 }
 
 // "Getter" for all network type data by provided id number
-function getNetworkTypeDataById ($networkId) {
+function getNetworkTypeDataFromId ($networkId) {
        // Ids lower one are not accepted
        if (!isValidId($networkId)) {
                // Not good, should be fixed
@@ -480,7 +441,7 @@ ORDER BY
 }
 
 // "Getter" for a network request parameter data by provided id number
-function getNetworkRequestParamsDataById ($networkRequestId) {
+function getNetworkRequestParamsDataFromId ($networkRequestId) {
        // Ids lower one are not accepted
        if (!isValidId($networkRequestId)) {
                // Not good, should be fixed
@@ -519,7 +480,7 @@ LIMIT 1',
 }
 
 // "Getter" for a network array translation data by provided id number
-function getNetworkArrayTranslationsDataById ($networkTranslationId) {
+function getNetworkArrayTranslationsDataFromId ($networkTranslationId) {
        // Ids lower one are not accepted
        if (!isValidId($networkTranslationId)) {
                // Not good, should be fixed
@@ -627,6 +588,7 @@ function getFullNetworkConfigurationByTypeId ($networkTypeId) {
        `nac`.`network_api_referral_link`,
        `nac`.`network_api_referral_button`,
        `nac`.`network_api_remaining_requests`,
+       `nac`.`network_api_visual_pay_check`,
        `nts`.`network_type_reload_time_unit`,
        `ntc`.`network_max_reload_time`,
        `ntc`.`network_min_waiting_time`,
@@ -684,7 +646,7 @@ function doAdminRemoveNetworkEntry ($table, $column, $id, $limit = 1) {
 }
 
 // Generates a list of networks for given script and returns it
-function generateAdminNetworkList ($separated = FALSE, $includeConfigured = TRUE, $includeUnconfigured = TRUE, $extraName = '') {
+function generateAdminNetworkList ($separated = FALSE, $includeConfigured = TRUE, $includeUnconfigured = TRUE, $extraName = '', $addSql = '') {
        // Init output
        $content = '';
 
@@ -700,7 +662,7 @@ function generateAdminNetworkList ($separated = FALSE, $includeConfigured = TRUE
        `network_active`
 FROM
        `{?_MYSQL_PREFIX?}_network_data`
-' . getNetworkActivatedColumn() . '
+' . getNetworkActivatedColumn('WHERE') . '
 ORDER BY
        `network_short_name` ASC', __FUNCTION__, __LINE__);
 
@@ -715,6 +677,7 @@ ORDER BY
                                if (((($includeConfigured === FALSE) && (isNetworkApiConfigured($row['network_id']))) || (($includeUnconfigured === FALSE) && (!isNetworkApiConfigured($row['network_id'])))) && ($separated === FALSE)) {
                                        // Skip this entry
                                        continue;
+                               // @TODO Unfinished: } elseif ((!empty($addSql)) && (
                                } // END - if
 
                                // Add entry
@@ -743,14 +706,14 @@ ORDER BY
                        $content = generateSelectionBoxFromArray($rows, 'network_id', 'network_id', '', $extraName, 'network');
                } else {
                        // Generate two small, first configured
-                       $content = generateAdminNetworkList(FALSE, TRUE, FALSE, '_configured');
+                       $content = generateAdminNetworkList(FALSE, TRUE, FALSE, '_configured', $addSql);
 
                        // Then add unconfigured
-                       $content .= generateAdminNetworkList(FALSE, FALSE, TRUE, '_unconfigured');
+                       $content .= generateAdminNetworkList(FALSE, FALSE, TRUE, '_unconfigured', $addSql);
                }
        } else {
                // Nothing selected
-               $content = loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_ENTRIES_404--}');
+               $content = displayErrorMessage('{--ADMIN_ENTRIES_404--}');
        }
 
        // Free the result
@@ -796,7 +759,7 @@ ORDER BY
                $content = generateSelectionBoxFromArray($rows, 'network_type', 'network_type_id');
        } else {
                // Nothing selected
-               $content = loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_ENTRIES_404--}');
+               $content = displayErrorMessage('{--ADMIN_ENTRIES_404--}');
        }
 
        // Free the result
@@ -813,19 +776,19 @@ function generateAdminDistinctNetworkTypeList () {
 
        // Query all types of this network
        $result = SQL_QUERY('SELECT
-       t.`network_type_id`,
-       t.`network_type_handler`,
-       d.`network_title`
+       `t`.`network_type_id`,
+       `t`.`network_type_handler`,
+       `d`.`network_title`
 FROM
-       `{?_MYSQL_PREFIX?}_network_types` AS t
+       `{?_MYSQL_PREFIX?}_network_types` AS `t`
 LEFT JOIN
-       `{?_MYSQL_PREFIX?}_network_data` AS d
+       `{?_MYSQL_PREFIX?}_network_data` AS `d`
 ON
-       t.`network_id`=d.`network_id`
+       `t`.`network_id`=`d`.`network_id`
 ' . getNetworkActivatedColumn('WHERE', 'd') . '
 ORDER BY
-       d.`network_short_name` ASC,
-       t.`network_type_handler` ASC', __FUNCTION__, __LINE__);
+       `d`.`network_short_name` ASC,
+       `t`.`network_type_handler` ASC', __FUNCTION__, __LINE__);
 
        // Are there entries?
        if (!SQL_HASZERONUMS($result)) {
@@ -843,7 +806,7 @@ ORDER BY
                $content = generateSelectionBoxFromArray($rows, 'network_type', 'network_type_id', '', '_title');
        } else {
                // Nothing selected
-               $content = loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_ENTRIES_404--}');
+               $content = displayErrorMessage('{--ADMIN_ENTRIES_404--}');
        }
 
        // Free the result
@@ -912,9 +875,9 @@ function generateNetworkTypesAvailableOptions ($defaultType = NULL) {
                                'skyscraper',
                                'skyscraper_click',
                                'skyscraper_view',
-                               'halfbanner',
-                               'halfbanner_click',
-                               'halfbanner_view',
+                               'half_banner',
+                               'half_banner_click',
+                               'half_banner_view',
                                'layer',
                                'layer_click',
                                'layer_view',
@@ -1006,40 +969,6 @@ function generateNetworkRequestKeyOptions () {
        return $GLOBALS[__FUNCTION__];
 }
 
-// Generates an options list for vcheck request keys
-function generateNetworkVcheckKeyOptions () {
-       // Is it cached?
-       if (!isset($GLOBALS[__FUNCTION__])) {
-               // Generate and cache it
-               $GLOBALS[__FUNCTION__] = generateOptions(
-                       '/ARRAY/',
-                       array(
-                               'network_key',
-                               'site_id',
-                               'payment',
-                               'remote_address',
-                               'campaign_id',
-                               'status',
-                               'reason',
-                               'type',
-                               'network_name',
-                               'extra_value1',
-                               'extra_value2',
-                               'extra_value3',
-                               'extra_value4',
-                       ),
-                       array(),
-                       '',
-                       '', '',
-                       $GLOBALS['network_vcheck_params_disabled'],
-                       'translateNetworkVcheckParameterKey'
-               );
-       } // END - if
-
-       // Return content
-       return $GLOBALS[__FUNCTION__];
-}
-
 // Generator (somewhat getter) for (return) array translation
 function generateNetworkTranslationOptions ($default = '') {
        // Is it cached?
@@ -1141,7 +1070,7 @@ function generateNetworkMediaOutputOptions ($mediaOutput) {
 }
 
 // Checks if the given network is configured by looking its API configuration entry up
-function isNetworkApiConfigured ($networkId) {
+function isNetworkApiConfigured ($networkId, $addSql = '') {
        // Is there cache?
        if (!isset($GLOBALS[__FUNCTION__][$networkId])) {
                // Check for an entry in network_api_config
@@ -1183,6 +1112,12 @@ function handleNetworkPaymentCheckRequest () {
        reportBug(__FUNCTION__, __LINE__, 'Not yet implemented.');
 }
 
+// Handles the network-delete-url request
+function handleNetworkDeleteUrlRequest () {
+       // @TODO Implement this function, don't forget to set HTTP status back to '200 OK' if everything went fine
+       reportBug(__FUNCTION__, __LINE__, 'Not yet implemented.');
+}
+
 // Handle a single request parameter key by given network type handler id and "internal" key
 function handleRequestParameterKey ($networkTypeId, $networkRequestKey) {
        // Construct call-back function name
@@ -1227,7 +1162,7 @@ function logNetworkResponseHeaders ($networkId, $networkTypeId, $headers, $type)
        assert(in_array($type, array('MANUAL', 'CRON')));
 
        // Is debug logging enabled or status code not 200 OK?
-       if ((getConfig('network_logging_debug') == 'Y') || (!isHttpStatusOkay($response[0]))) {
+       if ((getConfig('network_logging_debug') == 'Y') || (!isHttpStatusOkay($headers[0]))) {
                // Add entry
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_network_header_logging` (`network_id`, `network_type_id`, `network_http_status_code`, `network_http_headers`, `network_logging_type`) VALUES(%s, %s, '%s', '%s', '%s')",
                        array(
@@ -1358,7 +1293,7 @@ function countNetworkApiRequest ($networkData) {
  */
 function generateMetworkReferralLinkById ($networkId) {
        // Simple output (no need for template!)
-       $output = '<a href="{%network,getNetworkDataById,network_reflink=' . $networkId . '%}" target="_blank" title="{%network,getNetworkDataById,network_title=' . $networkId . '%}">{%network,getNetworkDataById,network_title=' . $networkId . '%}</a>';
+       $output = '<a href="{%network,getNetworkDataFromId,network_reflink=' . $networkId . '%}" target="_blank" title="{%network,getNetworkDataFromId,network_title=' . $networkId . '%}">{%network,getNetworkDataFromId,network_title=' . $networkId . '%}</a>';
 
        // Return it
        return $output;
@@ -1440,21 +1375,6 @@ function translateNetworkRequestParameterKey ($param) {
        return '{--' . $messageId . '--}';
 }
 
-// Translates vheck request parameter
-function translateNetworkVcheckParameterKey ($param) {
-       // Generate id
-       $messageId = 'ADMIN_NETWORK_VCHECK_PARAMETER_' . strtoupper($param) . '';
-
-       // Is the message id there?
-       if (!isMessageIdValid($messageId)) {
-               // Not valid param
-               reportBug(__FUNCTION__, __LINE__, 'param=' . $param . ' is invalid.');
-       } // END - if
-
-       // Return message id
-       return '{--' . $messageId . '--}';
-}
-
 // Translate text-encoding
 function translateNetworkTextEncoding ($encoding) {
        // Generate id
@@ -1899,7 +1819,7 @@ function doAdminNetworkProcessAddNetwork () {
        // We can say here, the form is sent, so check if the network is already added
        if (isNetworkNameValid(postRequestElement('network_short_name'))) {
                // Already there
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_ALREADY_ADDED=' . postRequestElement('network_short_name') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_ALREADY_ADDED=' . postRequestElement('network_short_name') . '%}');
                return FALSE;
        } // END - if
 
@@ -1907,7 +1827,7 @@ function doAdminNetworkProcessAddNetwork () {
        SQL_QUERY(getInsertSqlFromArray(postRequestArray(), 'network_data'), __FUNCTION__, __LINE__);
 
        // Add the id for output only
-       setPostRequestElement('network_id', SQL_INSERTID());
+       setPostRequestElement('network_id', SQL_INSERT_ID());
 
        // Output message
        if (!SQL_HASZEROAFFECTED()) {
@@ -1915,7 +1835,7 @@ function doAdminNetworkProcessAddNetwork () {
                loadTemplate('admin_network_added', FALSE, postRequestArray());
        } else {
                // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_DATA_NOT_ADDED=' . postRequestElement('network_short_name') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_DATA_NOT_ADDED=' . postRequestElement('network_short_name') . '%}');
        }
 }
 
@@ -1929,7 +1849,7 @@ function doAdminNetworkProcessHandleNetworks () {
                        // Is this selected?
                        if ($sel == 1) {
                                // Load this network's data
-                               $networkData = getNetworkDataById($networkId);
+                               $networkData = getNetworkDataFromId($networkId);
 
                                // Is there found the network?
                                if (count($networkData) > 0) {
@@ -1939,7 +1859,7 @@ function doAdminNetworkProcessHandleNetworks () {
                        } // END - if
                } // END - foreach
 
-               // If we have no rows, we don't need to display the edit form
+               // If there are no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Init array with generic element
                        $content = array(
@@ -1953,7 +1873,7 @@ function doAdminNetworkProcessHandleNetworks () {
                        $GLOBALS['network_display'] = FALSE;
                } else {
                        // Nothing selected/found
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_NOTHING_FOUND--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_NOTHING_FOUND--}');
                }
        } // END - if
 }
@@ -1963,7 +1883,7 @@ function doAdminNetworkProcessHandleNetworkTypes () {
        // Is there selections?
        if (ifPostContainsSelections()) {
                // Load network data
-               $networkData = getNetworkDataById(getRequestElement('network_id'));
+               $networkData = getNetworkDataFromId(getRequestElement('network_id'));
 
                // Something has been selected, so start displaying one by one
                $OUT = '';
@@ -1989,7 +1909,7 @@ function doAdminNetworkProcessHandleNetworkTypes () {
                        } // END - if
                } // END - foreach
 
-               // If we have no rows, we don't need to display the edit form
+               // If there are no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Prepare array with generic elements
                        $content = array(
@@ -2011,7 +1931,7 @@ function doAdminNetworkProcessHandleNetworkTypes () {
                        $GLOBALS['network_display'] = FALSE;
                } else {
                        // Nothing selected/found
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_FOUND--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_FOUND--}');
                }
        } // END - if
 }
@@ -2024,7 +1944,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                $GLOBALS['network_request_params_disabled'] = array();
 
                // Load network data
-               $networkData = getNetworkDataById(getRequestElement('network_id'));
+               $networkData = getNetworkDataFromId(getRequestElement('network_id'));
 
                // Something has been selected, so start displaying one by one
                $OUT = '';
@@ -2032,7 +1952,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                        // Is this selected?
                        if ($sel == 1) {
                                // Load this network's data
-                               $networkRequestData = getNetworkRequestParamsDataById($networkId);
+                               $networkRequestData = getNetworkRequestParamsDataFromId($networkId);
 
                                // Is there found the network?
                                if (count($networkRequestData) > 0) {
@@ -2053,7 +1973,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                        } // END - if
                } // END - foreach
 
-               // If we have no rows, we don't need to display the edit form
+               // If there are no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Prepare array with generic elements
                        $content = array(
@@ -2075,7 +1995,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                        $GLOBALS['network_display'] = FALSE;
                } else {
                        // Nothing selected/found
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_FOUND--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_FOUND--}');
                }
        } // END - if
 }
@@ -2122,7 +2042,7 @@ function doAdminNetworkProcessChangeNetworks () {
                        displayMessage('{%message,ADMIN_NETWORK_UPDATED=' . $updated . '%}');
                } else {
                        // Nothing changed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_NOTHING_CHANGED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_NOTHING_CHANGED--}');
                }
        } // END - if
 }
@@ -2149,7 +2069,7 @@ function doAdminNetworkProcessRemoveNetworks () {
                        displayMessage('{%message,ADMIN_NETWORK_REMOVED=' . $removed . '%}');
                } else {
                        // Nothing removed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_NOTHING_REMOVED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_NOTHING_REMOVED--}');
                }
        } // END - if
 }
@@ -2159,7 +2079,7 @@ function doAdminNetworkProcessAddNetworkType () {
        // Is the network type handle already used with given network?
        if (isNetworkTypeHandleValid(postRequestElement('network_type_handler'), getRequestElement('network_id'))) {
                // Already added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_TYPE_HANDLER_ALREADY_ADDED=' . postRequestElement('network_type_handler') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_TYPE_HANDLER_ALREADY_ADDED=' . postRequestElement('network_type_handler') . '%}');
 
                // ... so abort here
                return FALSE;
@@ -2189,7 +2109,7 @@ function doAdminNetworkProcessAddNetworkType () {
                loadTemplate('admin_network_type_added', FALSE, postRequestArray());
        } else {
                // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_TYPE_HANDLER_NOT_ADDED=' . postRequestElement('network_type_handler') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_TYPE_HANDLER_NOT_ADDED=' . postRequestElement('network_type_handler') . '%}');
        }
 }
 
@@ -2241,7 +2161,7 @@ function doAdminNetworkProcessChangeHandlerTypes () {
                        displayMessage('{%message,ADMIN_NETWORK_TYPE_HANDLER_UPDATED=' . $updated . '%}');
                } else {
                        // Nothing changed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_CHANGED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_CHANGED--}');
                }
        } // END - if
 }
@@ -2294,13 +2214,13 @@ function doAdminNetworkProcessChangeRequestParams () {
                        displayMessage('{%message,ADMIN_NETWORK_REQUEST_PARAMETER_UPDATED=' . $updated . '%}');
                } else {
                        // Nothing changed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_CHANGED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_CHANGED--}');
                }
        } // END - if
 }
 
 // Changes given network array translations
-function doAdminNetworkProcessChangeArrayTranslations () {
+function doAdminNetworkProcessChangeArrayTranslation () {
        // Is there selections?
        if (ifPostContainsSelections()) {
                // By default nothing is updated
@@ -2347,7 +2267,7 @@ function doAdminNetworkProcessChangeArrayTranslations () {
                        displayMessage('{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_UPDATED=' . $updated . '%}');
                } else {
                        // Nothing changed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_ARRAY_TRANSLATION_NOTHING_CHANGED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_ARRAY_TRANSLATION_NOTHING_CHANGED--}');
                }
        } // END - if
 }
@@ -2374,7 +2294,7 @@ function doAdminNetworkProcessRemoveNetworkTypes () {
                        displayMessage('{%message,ADMIN_NETWORK_TYPE_HANDLER_REMOVED=' . $removed . '%}');
                } else {
                        // Nothing removed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_REMOVED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_TYPE_HANDLER_NOTHING_REMOVED--}');
                }
        } // END - if
 }
@@ -2401,7 +2321,7 @@ function doAdminNetworkProcessRemoveNetworkRequestParams () {
                        displayMessage('{%message,ADMIN_NETWORK_REQUEST_PARAMETER_REMOVED=' . $removed . '%}');
                } else {
                        // Nothing removed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_REMOVED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_REMOVED--}');
                }
        } // END - if
 }
@@ -2428,7 +2348,7 @@ function doAdminNetworkProcessRemoveNetworkArrayTranslation () {
                        displayMessage('{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_REMOVED=' . $removed . '%}');
                } else {
                        // Nothing removed
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_ARRAY_TRANSLATION_NOTHING_REMOVED--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_ARRAY_TRANSLATION_NOTHING_REMOVED--}');
                }
        } // END - if
 }
@@ -2438,7 +2358,7 @@ function doAdminNetworkProcessAddRequestParam () {
        // Is the request parameter already used with given network?
        if (isNetworkRequestElementValid(postRequestElement('network_request_param_key'), postRequestElement('network_type_id'), getRequestElement('network_id'))) {
                // Already added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_REQUEST_PARAMETER_ALREADY_ADDED=' . postRequestElement('network_request_param_key') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_REQUEST_PARAMETER_ALREADY_ADDED=' . postRequestElement('network_request_param_key') . '%}');
 
                // ... so abort here
                return FALSE;
@@ -2462,40 +2382,7 @@ function doAdminNetworkProcessAddRequestParam () {
                loadTemplate('admin_network_request_param_added', FALSE, postRequestArray());
        } else {
                // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_REQUEST_PARAMETER_NOT_ADDED=' . postRequestElement('network_request_param_key') . '%}');
-       }
-}
-
-// Adds a vheck request parameter to given network
-function doAdminNetworkProcessAddVcheckParam () {
-       // Is the request parameter already used with given network?
-       if (isNetworkVcheckElementValid(postRequestElement('network_vcheck_param_key'), getRequestElement('network_id'))) {
-               // Already added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_VCHECK_PARAMETER_ALREADY_ADDED=' . postRequestElement('network_vcheck_param_key') . '%}');
-
-               // ... so abort here
-               return FALSE;
-       } // END - if
-
-       // Add id
-       setPostRequestElement('network_id', bigintval(getRequestElement('network_id')));
-
-       // Is network_vcheck_param_default set?
-       if (!isPostRequestElementSet('network_vcheck_param_default')) {
-               // Remove empty value to get a NULL for an optional entry
-               unsetPostRequestElement('network_vcheck_param_default');
-       } // END - if
-
-       // Add the whole vcheck to database
-       SQL_QUERY(getInsertSqlFromArray(postRequestArray(), 'network_vcheck_params'), __FUNCTION__, __LINE__);
-
-       // Output message
-       if (!SQL_HASZEROAFFECTED()) {
-               // Successfully added
-               loadTemplate('admin_network_vcheck_param_added', FALSE, postRequestArray());
-       } else {
-               // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_VCHECK_PARAMETER_NOT_ADDED=' . postRequestElement('network_vcheck_param_key') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_REQUEST_PARAMETER_NOT_ADDED=' . postRequestElement('network_request_param_key') . '%}');
        }
 }
 
@@ -2504,7 +2391,7 @@ function doAdminNetworkProcessAddNetworkArrayTranslation () {
        // Is the request parameter already used with given network?
        if (isNetworkArrayTranslationValid(postRequestElement('network_array_index'), postRequestElement('network_type_id'), getRequestElement('network_id'))) {
                // Already added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_ALREADY_ADDED=' . postRequestElement('network_array_index') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_ALREADY_ADDED=' . postRequestElement('network_array_index') . '%}');
 
                // ... so abort here
                return FALSE;
@@ -2532,7 +2419,7 @@ function doAdminNetworkProcessAddNetworkArrayTranslation () {
                loadTemplate('admin_network_array_translation_added', FALSE, postRequestArray());
        } else {
                // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_NOT_ADDED=' . postRequestElement('network_array_index') . '%}');
+               displayErrorMessage('{%message,ADMIN_NETWORK_ARRAY_TRANSLATION_NOT_ADDED=' . postRequestElement('network_array_index') . '%}');
        }
 }
 
@@ -2544,7 +2431,7 @@ function doAdminNetworkProcessHandleArrayTranslations () {
                $GLOBALS['network_array_translation_disabled'] = array();
 
                // Load network data
-               $networkData = getNetworkDataById(getRequestElement('network_id'));
+               $networkData = getNetworkDataFromId(getRequestElement('network_id'));
 
                // Something has been selected, so start displaying one by one
                $OUT = '';
@@ -2552,7 +2439,7 @@ function doAdminNetworkProcessHandleArrayTranslations () {
                        // Is this selected?
                        if ($sel == 1) {
                                // Load this network's data
-                               $networkTranslationsData = getNetworkArrayTranslationsDataById($networkId);
+                               $networkTranslationsData = getNetworkArrayTranslationsDataFromId($networkId);
 
                                // Is there found the network?
                                if (count($networkTranslationsData) > 0) {
@@ -2573,7 +2460,7 @@ function doAdminNetworkProcessHandleArrayTranslations () {
                        } // END - if
                } // END - foreach
 
-               // If we have no rows, we don't need to display the edit form
+               // If there are no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Prepare array with generic elements
                        $content = array(
@@ -2595,7 +2482,7 @@ function doAdminNetworkProcessHandleArrayTranslations () {
                        $GLOBALS['network_display'] = FALSE;
                } else {
                        // Nothing selected/found
-                       loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_FOUND--}');
+                       displayErrorMessage('{--ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_FOUND--}');
                }
        } // END - if
 }
@@ -2605,11 +2492,14 @@ function doAdminNetworkProcessNetworkApiConfig () {
        // Add id
        setPostRequestElement('network_id', bigintval(getRequestElement('network_id')));
 
-       // Is network_api_referral_button set?
-       if (!isPostRequestElementSet('network_api_referral_button')) {
-               // Remove empty value to get a NULL for an optional entry
-               unsetPostRequestElement('network_api_referral_button');
-       } // END - if
+       // NULL empty values
+       foreach (array('network_api_site_id', 'network_api_referral_button', 'network_api_visual_pay_check') as $key) {
+               // Is it set?
+               if (!isPostRequestElementSet($key)) {
+                       // Remove empty value to get a NULL for an optional entry
+                       unsetPostRequestElement($key);
+               } // END - if
+       } // END - foreach
 
        // Is there already an entry?
        if (isNetworkApiConfigured(getRequestElement('network_id'))) {
@@ -2629,7 +2519,7 @@ function doAdminNetworkProcessNetworkApiConfig () {
                displayMessage('{--ADMIN_CONFIG_NETWORK_API_SAVED--}');
        } else {
                // Not added
-               loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_CONFIG_NETWORK_API_NOT_SAVED--}');
+               displayErrorMessage('{--ADMIN_CONFIG_NETWORK_API_NOT_SAVED--}');
        }
 }
 
@@ -2707,7 +2597,7 @@ function doAdminNetworkProcessAddHandlerTypesConfig ($displayMessage = TRUE, $co
                        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--}');
+                       displayErrorMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}');
                }
        } else {
                // Get SQL query for new entry
@@ -2724,7 +2614,7 @@ function doAdminNetworkProcessAddHandlerTypesConfig ($displayMessage = TRUE, $co
                                displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}');
                        } else {
                                // Not added
-                               loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_SAVED--}');
+                               displayErrorMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_SAVED--}');
                        }
                } else {
                        // Return amount of affected rows (1 or 2)
@@ -2803,7 +2693,7 @@ function doAdminNetworkProcessEditHandlerTypesConfig ($displayMessage = TRUE, $c
                        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--}');
+                       displayErrorMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}');
                }
        } else {
                // Get SQL query for new entry
@@ -2820,7 +2710,7 @@ function doAdminNetworkProcessEditHandlerTypesConfig ($displayMessage = TRUE, $c
                                displayMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_SAVED--}');
                        } else {
                                // Not added
-                               loadTemplate('admin_settings_unsaved', FALSE, '{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}');
+                               displayErrorMessage('{--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_HANDLER_NOT_CHANGED--}');
                        }
                } else {
                        // Return amount of affected rows (1 or 2)
@@ -2878,8 +2768,6 @@ function doAdminNetworkProcessExport () {
                'list_network_types'             => 'types',
                // Network request parameter
                'list_network_request_params'    => 'request_params',
-               // Vcheck request parameter
-               'list_network_vcheck_params'     => 'vcheck_params',
                // Network API response array index translation
                'list_network_array_translation' => 'array_translation',
        );
@@ -3091,61 +2979,6 @@ ORDER BY
        loadTemplate('admin_export_network_request_params', FALSE, $SQL);
 }
 
-// Exports (and displays) the table 'network_vcheck_params'
-function doAdminNetworkExportVcheckParams () {
-       // 'network_id' must be set
-       if (!isGetRequestElementSet('network_id')) {
-               // Only network vcheck parameters of one network will be exported per time
-               reportBug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
-       } // END - if
-
-       // Get all network types of given network
-       $result = SQL_QUERY_ESC('SELECT
-       `network_id`,
-       `network_vcheck_param_key`,
-       `network_vcheck_param_value`,
-       `network_vcheck_param_default`
-FROM
-       `{?_MYSQL_PREFIX?}_network_vcheck_params`
-WHERE
-       `network_id`=%s
-ORDER BY
-       `network_vcheck_param_id` ASC',
-               array(
-                       bigintval(getRequestElement('network_id'))
-               ), __FUNCTION__, __LINE__);
-
-       // Start an empty SQL query
-       $SQL = 'INSERT INTO `&#123;&#63;_MYSQL_PREFIX&#63;&#125;_network_vcheck_params` (`network_id`, `network_vcheck_param_key`, `network_vcheck_param_value`, `network_vcheck_param_default`) VALUES' . PHP_EOL;
-
-       // Load all entries
-       while ($content = SQL_FETCHARRAY($result)) {
-               // Add row
-               $SQL .= '(' .
-                       $content['network_id'] . ", '" .
-                       $content['network_vcheck_param_key'] . "', '" .
-                       $content['network_vcheck_param_value'] . "', ";
-               
-               // Is the column NULL?
-               if (is_null($content['network_vcheck_param_default'])) {
-                       // Column is NULL
-                       $SQL .= "NULL),\n";
-               } else {
-                       // Column is set
-                       $SQL .= chr(39) . $content['network_vcheck_param_default'] . "'),\n";
-               }
-       } // END - while
-
-       // Remove last commata and close braces
-       $SQL = substr($SQL, 0, -2);
-
-       // Free result
-       SQL_FREERESULT($result);
-
-       // Output the SQL query
-       loadTemplate('admin_export_network_vcheck_params', FALSE, $SQL);
-}
-
 // Exports (and displays) the table 'network_array_translation'
 function doAdminNetworkExportArrayTranslation () {
        // 'network_id' must be set
@@ -3278,7 +3111,7 @@ function doAjaxAdminNetworkListById () {
        }
 
        // Load all network type handlers by given network id and extract only network_type_id
-       $networkTypes = getArrayFromArrayIndex(getNetworkTypeDataById(postRequestElement('network_id')), 'network_type_id');
+       $networkTypes = getArrayFromArrayIndex(getNetworkTypeDataFromId(postRequestElement('network_id')), 'network_type_id');
 
        // Set generated array
        setAjaxReplyContent(encodeJson($networkTypes));