X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fadmin-inc.php;h=161865e8aeead83d04ff75560eb51fcf00c14ca0;hb=6fb7e6d43cd1abb525ab3ac32c40dab995e709b2;hp=3ad1d6182a7b9b82a17fa5528e03b129e747ddc6;hpb=20741b93fd58620af677a7f1039ffd16ea6ec689;p=mailer.git diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index 3ad1d6182a..161865e8ae 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -296,7 +296,7 @@ ORDER BY $OUT .= '['; } } else { - $OUT .= ''; + $OUT .= ''; } $OUT .= $title; @@ -308,7 +308,7 @@ ORDER BY $OUT .= ']'; } } else { - $OUT .= ''; + $OUT .= ''; } $OUT .= ' @@ -316,7 +316,9 @@ ORDER BY // Check for menu entries $result_what = SQL_QUERY_ESC("SELECT - `what`,`title`,`descr` + `what`, + `title`, + `descr` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE @@ -359,7 +361,7 @@ ORDER BY $OUT .= '['; } } else { - $OUT .= ''; + $OUT .= ''; } $OUT .= $title_what; @@ -371,7 +373,7 @@ ORDER BY $OUT .= ']'; } } else { - $OUT .= ''; + $OUT .= ''; } $OUT .= ' '; @@ -389,7 +391,7 @@ ORDER BY // Free memory SQL_FREERESULT($result_main); $OUT .= ''; - } + } // END - if // Is there a cache instance again? // Return or output content? @@ -400,21 +402,68 @@ ORDER BY } } -// Create member selection box -function addMemberSelectionBox ($def = 0, $add_all = false, $return = false, $none = false, $field = 'userid') { +// Create an admin selection box form +function addAdminSelectionBox ($adminId = NULL, $special = '') { + // Default is email as "special column" + $ADD = ',`email` AS `special`'; + + // Is a special column given? + if (!empty($special)) { + // Additional column for SQL query + $ADD = ',`' . $special . '` AS `special`'; + } // END - if + + // Query all entries + $result = SQL_QUERY('SELECT + `id`,`login`' . $ADD . ' +FROM + `{?_MYSQL_PREFIX?}_admins` +ORDER BY + `login` ASC', __FUNCTION__, __LINE__); + + // Init output + $OUT = ''; + + // Load all entries + while ($content = SQL_FETCHARRAY($result)) { + // Add the entry + $OUT .= loadTemplate('select_admins_option', true, $content); + } // END - if + + // Free memory + SQL_FREERESULT($result); + + // Add form to content + $content['form_selection'] = $OUT; + + // Output form + loadTemplate('select_admins_box', false, $content); +} + +// Create a member selection box +function addMemberSelectionBox ($userid = NULL, $add_all = false, $return = false, $none = false, $field = 'userid') { // Output selection form with all confirmed user accounts listed - $result = SQL_QUERY("SELECT `userid`,`surname`,`family` FROM `{?_MYSQL_PREFIX?}_user_data` ORDER BY `userid` ASC", __FUNCTION__, __LINE__); + $result = SQL_QUERY('SELECT + `userid`,`surname`,`family` +FROM + `{?_MYSQL_PREFIX?}_user_data` +ORDER BY + `userid` ASC', __FUNCTION__, __LINE__); // Default output $OUT = ''; // USe this only for adding points (e.g. adding refs really makes no sence ;-) ) - if ($add_all === true) $OUT = ' {--ALL_MEMBERS--}'; - elseif ($none === true) $OUT = ' {--SELECT_NONE--}'; + if ($add_all === true) { + $OUT = ' {--ALL_MEMBERS--}'; + } elseif ($none === true) { + $OUT = ' {--SELECT_NONE--}'; + } + // Load all entries while ($content = SQL_FETCHARRAY($result)) { $OUT .= ''; } // END - while @@ -424,7 +473,7 @@ function addMemberSelectionBox ($def = 0, $add_all = false, $return = false, $no if ($return === false) { // Remeber options in constant $content['form_selection'] = $OUT; - $content['what'] = getWhat(); + $content['what'] = '{%pipe,getWhat%}'; // Load template loadTemplate('admin_form_selection_box', false, $content); @@ -828,14 +877,21 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e // Filter all data foreach ($content as $key => $value) { // Search index - $idx = array_search($key, $columns, true); + $idx = searchXmlArray($key, $columns, 'column'); + + // Skip any missing entries + if ($idx === false) { + // Skip this one + //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'key=' . $key . ' - SKIPPED!'); + continue; + } // END - if //Â Do we have a userid? //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]); if ($key == $userIdColumn[0]) { // Add it again as raw id //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]); - $content[$userIdColumn[0]] = bigintval($value); + $content[$userIdColumn[0]] = makeZeroToNull($value); $content[$userIdColumn[0] . '_raw'] = $content[$userIdColumn[0]]; } // END - if @@ -846,13 +902,24 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e $GLOBALS['admin_list_builder_id_value'] = $value; } // END - if - // Handle the call in external function - //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value); - $content[$key] = handleExtraValues( - $filterFunctions[$idx], - $value, - $extraValues[$idx] - ); + // Do we have a call-back function and extra-value pair? + if ((isset($filterFunctions[$idx])) && (isset($extraValues[$idx]))) { + // Handle the call in external function + //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value); + $content[$key] = handleExtraValues( + $filterFunctions[$idx], + $value, + $extraValues[$idx] + ); + } elseif ((isset($columns[$idx]['name'])) && (isset($filterFunctions[$columns[$idx]['name']])) && (isset($extraValues[$columns[$idx]['name']]))) { + // Handle the call in external function + //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$columns[$idx]['name']] . ',value=' . $value); + $content[$key] = handleExtraValues( + $filterFunctions[$columns[$idx]['name']], + $value, + $extraValues[$columns[$idx]['name']] + ); + } } // END - foreach // Then list it @@ -1068,7 +1135,8 @@ function adminEditEntriesConfirm ($tableName, $columns = array(), $filterFunctio // All valid entries? (We hope so here!) //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'idColumn='.print_r($idColumn,true).',tableName'.print_r($tableName,true).',columns='.print_r($columns,true).',filterFunctions='.print_r($filterFunctions,true).',extraValues='.print_r($extraValues,true).',editNow='.print_r($editNow,true).',userIdColumn='.print_r($userIdColumn,true).',rawUserId='.print_r($rawUserId,true).''); - if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) { + //if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) { + if (true) { // Shall we change here or list for editing? if ($editNow[0] === true) { // Change them all @@ -1232,7 +1300,7 @@ function adminAddEntries ($tableName, $columns = array(), $filterFunctions = arr $sqlValues = array(); // Add columns and values - foreach ($columns as $key=>$columnName) { + foreach ($columns as $key => $columnName) { // Copy entry to final arrays $sqlColumns[$key] = $columnName; $sqlValues[$key] = postRequestElement($columnName); @@ -1246,7 +1314,7 @@ function adminAddEntries ($tableName, $columns = array(), $filterFunctions = arr } // END - foreach // Build the SQL query - $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`, `', $sqlColumns) . "`) VALUES ('" . implode("','", $sqlValues) . "')"; + $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES ('" . implode("','", $sqlValues) . "')"; // Run the SQL query SQL_QUERY($SQL, __FUNCTION__, __LINE__); @@ -1274,30 +1342,12 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab // This is the minimum query, so at least columns and tableName must have entries $SQL = 'SELECT '; - foreach ($columns as $columnArray) { - // Init SQL part - $sqlPart = ''; - // Do we have a table/alias - if (!empty($columnArray['table'])) { - // Pre-add it - $sqlPart .= $columnArray['table'] . '.'; - } // END - if - // Add column - $sqlPart .= '`' . $columnArray['column'] . '`'; - - // Is a function and alias set? - if ((!empty($columnArray['function'])) && (!empty($columnArray['alias']))) { - // Add both - $sqlPart = $columnArray['function'] . '(' . $sqlPart . ') AS `' . $columnArray['alias'] . '`'; - } // END - if - - // Add finished SQL part to the query - $SQL .= $sqlPart . ','; - } // END - foreach + // Get the sql part back from given array + $SQL .= getSqlPartFromXmlArray($columns); // Remove last commata and add FROM statement - $SQL = substr($SQL, 0, -1) . ' FROM `{?_MYSQL_PREFIX?}_' . $tableName[0] . '`'; + $SQL .= ' FROM `{?_MYSQL_PREFIX?}_' . $tableName[0] . '`'; // Do we have entries from whereColumns to add? if (count($whereColumns) > 0) { @@ -1324,7 +1374,7 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab if (count($orderByColumns) > 0) { // Add them as well $SQL .= ' ORDER BY '; - foreach ($orderByColumns as $orderByColumn=>$array) { + foreach ($orderByColumns as $orderByColumn => $array) { // Get keys (table/alias) and values (sorting itself) $table = trim(implode('', array_keys($array))); $sorting = trim(implode('', array_keys($array))); @@ -1358,7 +1408,7 @@ function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTempla $OUT = ''; while ($content = SQL_FETCHARRAY($result)) { // "Translate" content - foreach ($callbackColumns as $columnName=>$callbackFunction) { + foreach ($callbackColumns as $columnName => $callbackFunction) { // Fill the callback arguments $args = array($content[$columnName]); @@ -1389,7 +1439,7 @@ function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTempla SQL_FREERESULT($result); } -// Checks proxy settins by fetching check-updates3.php from www.mxchange.org +// Checks proxy settins by fetching check-updates3.php from mxchange.org function adminTestProxySettings ($settingsArray) { // Set temporary the new settings mergeConfig($settingsArray); @@ -1426,7 +1476,7 @@ function sendAdminPasswordResetLink ($email) { SQL_FREERESULT($result); // Generate hash for reset link - $content['hash'] = generateHash(getUrl() . getEncryptSeperator() . $content['id'] . getEncryptSeperator() . $content['login'] . getEncryptSeperator() . $content['password'], substr($content['password'], getSaltLength())); + $content['hash'] = generateHash(getUrl() . getEncryptSeparator() . $content['id'] . getEncryptSeparator() . $content['login'] . getEncryptSeparator() . $content['password'], substr($content['password'], getSaltLength())); // Remove some data unset($content['id']); @@ -1457,7 +1507,7 @@ function adminResetValidateHashLogin ($hash, $login) { $content = SQL_FETCHARRAY($result); // Generate hash again - $hashFromData = generateHash(getUrl() . getEncryptSeperator() . $content['id'] . getEncryptSeperator() . $login . getEncryptSeperator() . $content['password'], substr($content['password'], getSaltLength())); + $hashFromData = generateHash(getUrl() . getEncryptSeparator() . $content['id'] . getEncryptSeparator() . $login . getEncryptSeparator() . $content['password'], substr($content['password'], getSaltLength())); // Does both match? $valid = ($hash == $hashFromData); @@ -1563,7 +1613,7 @@ function adminCreateUserLink ($userid) { // Generate a "link" for the given admin id (admin_id) function generateAdminLink ($adminId) { // No assigned admin is default - $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}'; + $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}'; // Zero? = Not assigned if (bigintval($adminId) > 0) { @@ -1582,7 +1632,7 @@ function generateAdminLink ($adminId) { } } else { // Maybe deleted? - $adminLink = '{%message,ADMIN_ID_404=' . $adminId . '%}'; + $adminLink = '{%message,ADMIN_ID_404=' . $adminId . '%}'; } } // END - if @@ -1711,7 +1761,7 @@ function addEmailNavigation ($numPages, $offset, $show_form, $colspan, $return=f $NAV .= ''; } - // Add seperator if we have not yet reached total pages + // Add separator if we have not yet reached total pages if ($page < $numPages) { // Add it $NAV .= '|'; @@ -1751,7 +1801,7 @@ function adminProcessMenuEditForm ($type, $subMenu) { case 'edit': // Edit menu if (postRequestElement('sel_what', $sel) == '') { // Update with 'what'=null - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s', `action`='%s', `what`=NULL WHERE ".$AND." AND `id`=%s LIMIT 1", + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s',`action`='%s',`what`=NULL WHERE ".$AND." AND `id`=%s LIMIT 1", array( $type, $menu, @@ -1760,7 +1810,7 @@ function adminProcessMenuEditForm ($type, $subMenu) { ), __FILE__, __LINE__); } else { // Update with selected 'what' - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s', `action`='%s', `what`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1", + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `title`='%s',`action`='%s',`what`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1", array( $type, $menu, @@ -1777,7 +1827,7 @@ function adminProcessMenuEditForm ($type, $subMenu) { break; case 'status': // Change status of menus - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `visible`='%s', `locked`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1", + SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_%s_menu` SET `visible`='%s',`locked`='%s' WHERE ".$AND." AND `id`=%s LIMIT 1", array($type, postRequestElement('visible', $sel), postRequestElement('locked', $sel), $sel), __FILE__, __LINE__); break;
'.print_r($idColumn,true).'
'.print_r($tableName,true).'
'.print_r($columns,true).'
'.print_r($filterFunctions,true).'
'.print_r($extraValues,true).'
'.print_r($editNow,true).'
'.print_r($userIdColumn,true).'
'.print_r($rawUserId,true).'