Even more rewrites/fixes from EL branch (please report any broken part after you...
[mailer.git] / inc / libs / network_functions.php
index 8220abf5c184426331081c1781955d64759300db..b33bfea63ba7edea3f7d49082ede2fad9a7fb682 100644 (file)
@@ -132,39 +132,46 @@ function isNetworkRequestParameterValid ($key, $type, $networkId) {
 }
 
 // "Getter" for a network's data by provided id number
-function getNetworkDataById ($id) {
+function getNetworkDataById ($id, $column = '') {
        // Ids lower one are not accepted
        if ($id < 1) {
                // Not good, should be fixed
                debug_report_bug('Network id ' . $id . ' is smaller than 1.');
        } // END - if
 
-       // By default we have no data
-       $networkData = array();
+       // Is it cached?
+       if (!isset($GLOBALS['network_data'][$id])) {
+               // By default we have no data
+               $GLOBALS['network_data'][$id] = array();
 
-       // Query for the network data
-       $result = SQL_QUERY_ESC("SELECT
+               // Query for the network data
+               $result = SQL_QUERY_ESC("SELECT
        `network_id`, `network_short_name`, `network_title`, `network_reflink`, `network_data_seperator`, `network_row_seperator`, `network_request_type`, `network_charset`
 FROM
        `{?_MYSQL_PREFIX?}_network_data`
 WHERE
        `network_id`=%s
 LIMIT 1",
-               array(bigintval($id)), __FUNCTION__, __LINE__);
+                       array(bigintval($id)), __FUNCTION__, __LINE__);
 
-       // Do we have an entry?
-       if (SQL_NUMROWS($result) == 1) {
-               // Then get it
-               $networkData = SQL_FETCHARRAY($result);
+               // Do we have an entry?
+               if (SQL_NUMROWS($result) == 1) {
+                       // Then get it
+                       $GLOBALS['network_data'][$id] = SQL_FETCHARRAY($result);
+               } // END - if
 
-               // Solve disabled
+               // Free result
+               SQL_FREERESULT($result);
        } // END - if
 
-       // Free result
-       SQL_FREERESULT($result);
-
        // Return result
-       return $networkData;
+       if (empty($column)) {
+               // Return array
+               return $GLOBALS['network_data'][$id];
+       } else {
+               // Return column
+               return $GLOBALS['network_data'][$id][$column];
+       }
 }
 
 // "Getter" for a network type data by provided id number
@@ -176,7 +183,7 @@ function getNetworkTypeDataById ($id) {
        } // END - if
 
        // By default we have no data
-       $networkTypeData = array();
+       $GLOBALS['network_type_data'][$id] = array();
 
        // Query for the network data
        $result = SQL_QUERY_ESC("SELECT
@@ -191,14 +198,14 @@ LIMIT 1",
        // Do we have an entry?
        if (SQL_NUMROWS($result) == 1) {
                // Then get it
-               $networkTypeData = SQL_FETCHARRAY($result);
+               $GLOBALS['network_type_data'][$id] = SQL_FETCHARRAY($result);
        } // END - if
 
        // Free result
        SQL_FREERESULT($result);
 
        // Return result
-       return $networkTypeData;
+       return $GLOBALS['network_type_data'][$id];
 }
 
 // "Getter" for a network request parameter data by provided id number
@@ -300,7 +307,10 @@ ORDER BY
                $rows = array();
                while ($row = SQL_FETCHARRAY($result)) {
                        // Is this valid, then add it
-                       if ((is_array($row)) && (isset($row['network_id']))) $rows[] = $row;
+                       if ((is_array($row)) && (isset($row['network_id']))) {
+                               // Add entry
+                               $rows[$row['network_id']] = $row;
+                       } // END - if
                } // END - while
 
                // Generate the selection box
@@ -317,6 +327,50 @@ ORDER BY
        return $content;
 }
 
+// Generator (somewhat getter) for a list of network types for given network id
+function generateAdminNetworkTypeList ($networkId) {
+       // Init content
+       $content = '';
+
+       // Query all types of this network
+       $result = SQL_QUERY_ESC("SELECT
+       `network_type_id`, `network_type_handle`
+FROM
+       `{?_MYSQL_PREFIX?}_network_types`
+WHERE
+       `network_id`=%s
+ORDER BY
+       `network_type_handle` ASC",
+               array(
+                       bigintval($networkId)
+               ), __FILE__, __LINE__);
+
+       // Do we have entries?
+       if (SQL_NUMROWS($result) > 0) {
+               // List all entries
+               $rows = array();
+               while ($row = SQL_FETCHARRAY($result)) {
+                       // Is this valid, then add it
+                       if ((is_array($row)) && (isset($row['network_type_id']))) {
+                               // Add entry
+                               $rows[$row['network_type_id']] = $row;
+                       } // END - if
+               } // END - while
+
+               // Generate the selection box
+               $content = generateSelectionBoxFromArray($rows, 'network_type', 'network_type_id');
+       } else {
+               // Nothing selected
+               $content = loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_ENTRIES_404'));
+       }
+
+       // Free the result
+       SQL_FREERESULT($result);
+
+       // Return content
+       return $content;
+}
+
 // Generator (somewhat getter) for network type options
 function generateNetworkTypeOptions ($id) {
        // Is this an array, then we just came back from edit/delete actions
@@ -331,7 +385,10 @@ function generateNetworkTypeOptions ($id) {
                        'network_type_handle',
                        $id,
                        '',
-                       sprintf("WHERE `network_id`=%s", getRequestParameter('network'))
+                       sprintf(
+                               "WHERE `network_id`=%s",
+                               bigintval(getRequestParameter('network'))
+                       )
                );
        } // END - if
 
@@ -352,8 +409,8 @@ function generateNetworkRequestKeyOptions ($key) {
                                'hash',
                                'password',
                                'reload',
-                               'max_stay',
-                               'min_stay',
+                               'maximum_stay',
+                               'minimum_stay',
                                'currency',
                                'type',
                                'remain',
@@ -363,20 +420,20 @@ function generateNetworkRequestKeyOptions ($key) {
                                'extra'
                        ),
                        array(
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_ID--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_SID--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_HASH--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_PASSWORD--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_RELOAD--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_MAXIMUM_STAY--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_MINIMUM_STAY--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_CURRENCY--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_TYPE--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_REMAIN--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_REWARD--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_SIZE--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_EROTIC--}',
-                               '{--ADMIN_NETWORK_REQUEST_PARAMS_EXTRA--}'
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_ID--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_SID--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_HASH--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_PASSWORD--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_RELOAD--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_MAXIMUM_STAY--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_MINIMUM_STAY--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_CURRENCY--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_TYPE--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_REMAIN--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_REWARD--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_SIZE--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_EROTIC--}',
+                               '{--ADMIN_NETWORK_REQUEST_PARAMETER_EXTRA--}'
                        ),
                        $key,
                        '', '',
@@ -388,6 +445,27 @@ function generateNetworkRequestKeyOptions ($key) {
        return $GLOBALS['network_request_param_key'][$key];
 }
 
+// Generator (somewhat getter) for (return) array translation
+function generateNetworkArrayTranslationOptions ($default) {
+       // Is it cached?
+       if (!isset($GLOBALS['network_array_translation'][$default])) {
+               // Generate and cache it
+               $GLOBALS['network_array_translation'][$default] = generateOptionList(
+                       'network_request_params',
+                       'network_param_id',
+                       'request_param_key',
+                       $default,
+                       '',
+                       sprintf("WHERE `network_id`='%s'", bigintval(getRequestParameter('network'))),
+                       $GLOBALS['network_array_translation_disabled'],
+                       'ADMIN_NETWORK_REQUEST_PARAMETER_'
+               );
+       } // END - if
+
+       // Return content
+       return $GLOBALS['network_array_translation'][$default];
+}
+
 //------------------------------------------------------------------------------
 //                             Call-back functions
 //------------------------------------------------------------------------------
@@ -447,7 +525,10 @@ function doAdminNetworkProcessHandlenetworkForm () {
                                                // Make selection box for network_request_type
                                                $networkData['network_request_type'] = generateOptionList(
                                                        '/ARRAY/',
-                                                       array('GET','POST'),
+                                                       array(
+                                                               'GET',
+                                                               'POST'
+                                                       ),
                                                        array(
                                                                getMessage('ADMIN_NETWORK_REQUEST_TYPE_GET'),
                                                                getMessage('ADMIN_NETWORK_REQUEST_TYPE_POST')
@@ -636,7 +717,7 @@ function doAdminNetworkProcessHandlerequestparamsForm () {
                        $GLOBALS['network_display'] = false;
                } else {
                        // Nothing selected/found
-                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMS_NOTHING_FOUND'));
+                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_FOUND'));
                }
        } // END - if
 }
@@ -728,7 +809,7 @@ function doAdminNetworkProcessAddnetworktypeForm () {
        unsetPostRequestParameter('ok');
 
        // Add id
-       setPostRequestParameter('network_id', getRequestParameter('network'));
+       setPostRequestParameter('network_id', bigintval(getRequestParameter('network')));
 
        // Is network_type_banner_url set?
        if (postRequestParameter('network_type_banner_url') == '') {
@@ -849,10 +930,10 @@ function doAdminNetworkProcessChangenetworkparamForm () {
                // Do we have updates?
                if ($updated > 0) {
                        // Updates done
-                       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_NETWORK_REQUEST_PARAMS_UPDATED', $updated));
+                       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_NETWORK_REQUEST_PARAMETER_UPDATED', $updated));
                } else {
                        // Nothing changed
-                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMS_NOTHING_CHANGED'));
+                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_CHANGED'));
                }
        } // END - if
 }
@@ -903,10 +984,10 @@ function doAdminNetworkProcessRemovenetworkparamForm () {
                // Do we have removes?
                if ($removed > 0) {
                        // Removals done
-                       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_NETWORK_REQUEST_PARAMS_REMOVED', $removed));
+                       loadTemplate('admin_settings_saved', false, getMaskedMessage('ADMIN_NETWORK_REQUEST_PARAMETER_REMOVED', $removed));
                } else {
                        // Nothing removed
-                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMS_NOTHING_REMOVED'));
+                       loadTemplate('admin_settings_unsaved', false, getMessage('ADMIN_NETWORK_REQUEST_PARAMETER_NOTHING_REMOVED'));
                }
        } // END - if
 }
@@ -926,7 +1007,7 @@ function doAdminNetworkProcessAddnetworkparamForm () {
        unsetPostRequestParameter('ok');
 
        // Add id
-       setPostRequestParameter('network_id', getRequestParameter('network'));
+       setPostRequestParameter('network_id', bigintval(getRequestParameter('network')));
 
        // Is request_param_default set?
        if (postRequestParameter('request_param_default') == '') {
@@ -953,5 +1034,22 @@ function doAdminNetworkProcessAddnetworkparamForm () {
        }
 }
 
+// Do expression code for this extension
+function doExpressionNetwork ($data) {
+       // Construct replacer
+       $replacer = sprintf(
+               "\" . %s(%s, '%s') . \"",
+               $data['callback'],
+               $data['matches'][4][$data['key']],
+               $data['extra_func']
+       );
+
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Return it
+       return $code;
+}
+
 // [EOF]
 ?>