2 /************************************************************************
3 * MXChange v0.2.1 Start: 11/04/2009 *
4 * =============== Last change: 11/04/2009 *
6 * -------------------------------------------------------------------- *
7 * File : network_functions.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Functions for ext-network *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Funktionen fuer ext-network *
12 * -------------------------------------------------------------------- *
13 * $Revision:: 1194 $ *
14 * $Date:: 2009-10-27 18:24:18 +0100 (Tue, 27 Oct 2009) $ *
15 * $Tag:: 0.2.1-FINAL $ *
16 * $Author:: quix0r $ *
17 * Needs to be in all Files and every File needs "svn propset *
18 * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
19 * -------------------------------------------------------------------- *
20 * Copyright (c) 2003 - 2009 by Roland Haeder *
21 * For more information visit: http://www.mxchange.org *
23 * This program is free software; you can redistribute it and/or modify *
24 * it under the terms of the GNU General Public License as published by *
25 * the Free Software Foundation; either version 2 of the License, or *
26 * (at your option) any later version. *
28 * This program is distributed in the hope that it will be useful, *
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
31 * GNU General Public License for more details. *
33 * You should have received a copy of the GNU General Public License *
34 * along with this program; if not, write to the Free Software *
35 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
44 // Processes an admin form
45 function doAdminNetworkProcessForm () {
47 if ((!isFormSent()) && (!isPostRequestElementSet('edit')) && (!isPostRequestElementSet('del'))) {
49 loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_FORM_NOT_SENT'));
51 } elseif (!isGetRequestElementSet('do')) {
53 loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_DO_404'));
57 // Create function name
58 $functionName = sprintf("doAdminNetworkProcess%sForm", ucfirst(strtolower(getRequestElement('do'))));
60 // Is the function valid?
61 if (!function_exists($functionName)) {
62 // Invalid function name
63 debug_report_bug('Invalid do ' . getRequestElement('do') . ', function ' . $functionName .' does not exist.');
66 // Call-back the method handling our request
67 call_user_func($functionName);
70 // Checks wether the (short) network name is already used (valid)
71 function isNetworkNameValid ($name) {
73 $result = SQL_QUERY_ESC("SELECT `network_id` FROM `{?_MYSQL_PREFIX?}_network_data` WHERE `network_short_name`='%s' LIMIT 1",
74 array($name), __FUNCTION__, __LINE__);
77 $isValid = (SQL_NUMROWS($result) == 1);
80 SQL_FREERESULT($result);
86 // "Getter" for a network's data by provided id number
87 function getNetworkDataById ($id) {
88 // Ids lower one are not accepted
90 // Not good, should be fixed
91 debug_report_bug('Network id ' . $id . ' is smaller than 1.');
94 // By default we have no data
95 $networkData = array();
97 // Query for the network data
98 $result = SQL_QUERY_ESC("SELECT
99 `network_id`, `network_short_name`, `network_title`, `network_reflink`, `network_data_seperator`, `network_row_seperator`, `network_request_type`, `network_charset`
101 `{?_MYSQL_PREFIX?}_network_data`
105 array(bigintval($id)), __FUNCTION__, __LINE__);
107 // Do we have an entry?
108 if (SQL_NUMROWS($result) == 1) {
110 $networkData = SQL_FETCHARRAY($result);
114 SQL_FREERESULT($result);
120 //------------------------------------------------------------------------------
121 // Call-back functions
122 //------------------------------------------------------------------------------
124 // Callback function to add new network
125 function doAdminNetworkProcessAddnetworkForm () {
126 // We can say here, the form is sent, so check if the network is already added
127 if (isNetworkNameValid(postRequestElement('network_short_name'))) {
129 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_NETWORK_ALREADY_ADDED'), postRequestElement('network_short_name')));
133 // Remove the 'ok' part
134 unsetPostRequestElement('ok');
136 // Add the whole request to database
137 SQL_QUERY("INSERT INTO
138 `{?_MYSQL_PREFIX?}_network_data`
140 `" . implode('`,`', array_keys(postRequestArray())) . "`
142 '" . implode("','", array_values(postRequestArray())) . "'
143 )", __FUNCTION__, __LINE__);
145 // Add the id for output only
146 setRequestPostElement('network_id', SQL_INSERTID());
149 if (SQL_AFFECTEDROWS() == 1) {
150 // Successfully added
151 loadTemplate('admin_network_added', false, postRequestArray());
154 loadTemplate('admin_settings_saved', false, sprintf(getMessage('ADMIN_NETWORK_DATA_NOT_ADDED'), postRequestElement('network_short_name')));
158 // Displays selected networks for editing
159 function doAdminNetworkProcessHandlenetworkForm () {
160 // Do we have selections?
161 if (countPostSelection() > 0) {
162 // Something has been selected, so start displaying one by one
164 foreach (postRequestElement('sel') as $id=>$sel) {
167 // Load this network's data
168 $networkData = getNetworkDataById($id);
170 // Do we have found the network?
171 if (count($networkData) > 0) {
173 $networkData['sw'] = $SW;
175 // Make selection box for network_request_type
176 $networkData['network_request_type'] = addSelectionBox('network_request_type', $networkData['network_request_type'], '', 0, 'admin_select');
178 // Add row template and switch color
179 $OUT .= loadTemplate('admin_edit_networks_row', true, $networkData);
185 // If we have no rows, we don't need to display the edit form
187 // Output main template
188 loadTemplate('admin_edit_networks', false, $OUT);
190 // Don't display the list/add new form
191 $GLOBALS['network_display'] = false;
193 // Nothing selected/found
194 loadTemplate('admin_settings_saved', false, getMessage('ADMIN_NETWORK_NOTHING_FOUND'));