Missing SVN properties set
[mailer.git] / inc / libs / network_functions.php
index 818af211e33f6d9c84bf20ce0738c317956a659e..e90f6340229a7e983c64b1b92569ef7e399003a6 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 11/04/2009 *
- * ===============                              Last change: 11/04/2009 *
+ * Mailer v0.2.1-FINAL                                Start: 11/04/2009 *
+ * ===================                          Last change: 11/04/2009 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : network_functions.php                            *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Funktionen fuer ext-network                      *
  * -------------------------------------------------------------------- *
- * $Revision:: 1194                                                   $ *
- * $Date:: 2009-10-27 18:24:18 +0100 (Tue, 27 Oct 2009)               $ *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
- * $Author:: quix0r                                                   $ *
+ * $Author::                                                          $ *
  * Needs to be in all Files and every File needs "svn propset           *
  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
@@ -117,6 +117,28 @@ LIMIT 1",
        return $networkData;
 }
 
+// Updates given network (id) with data from array
+function doNetworkUpdateDataByArray ($id, $networkData) {
+       // 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
+
+       // Just call our inner method
+       return adminSaveSettings($networkData, '_network_data', sprintf("`network_id`=%s", bigintval($id)), array(), false, false);
+}
+
+// Removes given network entry
+function doAdminRemoveNetworkEntry ($table, $column, $id, $limit = 1) {
+       // Remove the entry
+       SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_network_%s` WHERE `%s`=%s LIMIT %s",
+               array($table, $column, $id, $limit), __FILE__, __LINE__);
+
+       // Return affected rows
+       return SQL_AFFECTEDROWS();
+}
+
 //------------------------------------------------------------------------------
 //                             Call-back functions
 //------------------------------------------------------------------------------
@@ -161,7 +183,7 @@ function doAdminNetworkProcessHandlenetworkForm () {
        if (countPostSelection() > 0) {
                // Something has been selected, so start displaying one by one
                $SW = 2; $OUT = '';
-               foreach (postRequestElement('sel') as $id=>$sel) {
+               foreach (postRequestElement('sel') as $id => $sel) {
                        // Is this selected?
                        if ($sel == 1) {
                                // Load this network's data
@@ -172,16 +194,29 @@ function doAdminNetworkProcessHandlenetworkForm () {
                                        // Add color
                                        $networkData['sw'] = $SW;
 
-                                       // Make selection box for network_request_type
-                                       $networkData['network_request_type'] = generateOptionList(
-                                               '/ARRAY/',
-                                               array('GET','POST'),
-                                               array(getMessage('ADMIN_NETWORK_REQUEST_TYPE_GET'), getMessage('ADMIN_NETWORK_REQUEST_TYPE_POST')),
-                                               $networkData['network_request_type']
-                                       );
+                                       if (isPostRequestElementSet('edit')) {
+                                               // Make selection box for network_request_type
+                                               $networkData['network_request_type'] = generateOptionList(
+                                                       '/ARRAY/',
+                                                       array('GET','POST'),
+                                                       array(getMessage('ADMIN_NETWORK_REQUEST_TYPE_GET'), getMessage('ADMIN_NETWORK_REQUEST_TYPE_POST')),
+                                                       $networkData['network_request_type']
+                                               );
 
-                                       // Add row template and switch color
-                                       $OUT .= loadTemplate('admin_edit_networks_row', true, $networkData);
+                                               // Add row template for editing
+                                               $OUT .= loadTemplate('admin_edit_networks_row', true, $networkData);
+                                       } elseif (isPostRequestElementSet('del')) {
+                                               // Translate the request type
+                                               $networkData['network_request_type'] = getMessage('ADMIN_NETWORK_REQUEST_TYPE_' . $networkData['network_request_type']);
+
+                                               // Add row template for deleting
+                                               $OUT .= loadTemplate('admin_del_networks_row', true, $networkData);
+                                       } else {
+                                               // Problem!
+                                               debug_report_bug('Cannot detect edit/del.');
+                                       }
+
+                                       // Switch colors
                                        $SW = 3 - $SW;
                                } // END - if
                        } // END - if
@@ -190,7 +225,14 @@ function doAdminNetworkProcessHandlenetworkForm () {
                // If we have no rows, we don't need to display the edit form
                if (!empty($OUT)) {
                        // Output main template
-                       loadTemplate('admin_edit_networks', false, $OUT);
+                       if (isPostRequestElementSet('edit')) {
+                               loadTemplate('admin_edit_networks', false, $OUT);
+                       } elseif (isPostRequestElementSet('del')) {
+                               loadTemplate('admin_del_networks', false, $OUT);
+                       } else {
+                               // Problem!
+                               debug_report_bug('Cannot detect edit/del.');
+                       }
 
                        // Don't display the list/add new form
                        $GLOBALS['network_display'] = false;
@@ -201,5 +243,77 @@ function doAdminNetworkProcessHandlenetworkForm () {
        } // END - if
 }
 
+// Changes given networks
+function doAdminNetworkProcessChangenetworkForm () {
+       // Do we have selections?
+       if (countPostSelection() > 0) {
+               // By default nothing is updated
+               $updated = 0;
+
+               // Something has been selected, so start updating them
+               foreach (postRequestElement('sel') as $id => $sel) {
+                       // Update this entry?
+                       if ($sel == 1) {
+                               // Init data array
+                               $networkData = array();
+
+                               // Transfer whole array, except 'sel'
+                               foreach (postRequestArray() as $key => $entry) {
+                                       // Skip 'sel' and submit button
+                                       if (in_array($key, array('sel', 'change'))) continue;
+
+                                       // Do we have this enty?
+                                       if (!isset($entry[$id])) {
+                                               // Not found, needs fixing
+                                               debug_report_bug('No entry in key=' . $key . ', id=' . $id . ' found.');
+                                       } // END - if
+
+                                       // Add this entry
+                                       $networkData[$key] = $entry[$id];
+                               } // END - foreach
+
+                               // Update the network data
+                               $updated += doNetworkUpdateDataByArray($id, $networkData);
+                       } // END - if
+               } // END - foreach
+
+               // Do we have updates?
+               if ($updated > 0) {
+                       // Updates done
+                       loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_NETWORK_UPDATED'), $updated));
+               } else {
+                       // Nothing changed
+                       loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_NOTHING_CHANGED'));
+               }
+       } // END - if
+}
+
+// Removes given networks
+function doAdminNetworkProcessRemovenetworkForm () {
+       // Do we have selections?
+       if (countPostSelection() > 0) {
+               // By default nothing is removed
+               $removed = 0;
+
+               // Something has been selected, so start updating them
+               foreach (postRequestElement('sel') as $id => $sel) {
+                       // Update this entry?
+                       if ($sel == 1) {
+                               // Remove this entry
+                               $removed += doAdminRemoveNetworkEntry('data', 'network_id', $id);
+                       } // END - if
+               } // END - foreach
+
+               // Do we have removes?
+               if ($removed > 0) {
+                       // Removals done
+                       loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_NETWORK_REMOVED'), $removed));
+               } else {
+                       // Nothing removed
+                       loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_NOTHING_REMOVED'));
+               }
+       } // END - if
+}
+
 // [EOF]
 ?>