X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-list_cats.php;h=919e203a054c10c25657ff9fad3febd72a3374ac;hp=d7d6dd1e4218f0b3f2dcb0049a248c12be3cc1c8;hb=49acdb7a7adbcf25a8e8683b5581bfcec72b23bd;hpb=63f159414369b5ea19a8ca75d8cd8033c45d8341 diff --git a/inc/modules/admin/what-list_cats.php b/inc/modules/admin/what-list_cats.php index d7d6dd1e42..919e203a05 100644 --- a/inc/modules/admin/what-list_cats.php +++ b/inc/modules/admin/what-list_cats.php @@ -1,15 +1,15 @@ {%pipe,translateGender=' . $content['gender'] . '%} ' . $content['surname'] . ' ' . $content['family'] . ''; - - // Ok, list categories of this user - $result_cats = SQL_QUERY("SELECT `id`,`cat` FROM `{?_MYSQL_PREFIX?}_cats` ORDER BY `sort` ASC", __FILE__, __LINE__); - - if (!SQL_HASZERONUMS($result_cats)) { - // List categories - $count = 1; $OUT = ''; - while ($row = SQL_FETCHARRAY($result_cats)) { - // Merge both arrays - $content = merge_array($content, $row); - - // Check user's selection - // @TODO Rewrite this to countSum.....() function - $result_user = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s AND `cat_id`=%s LIMIT 1", - array(bigintval(getRequestElement('userid')), bigintval($content['id'])), __FILE__, __LINE__); - - // Set selection - $selection = '{--NO--}'; - if (SQL_NUMROWS($result_user) == 1) { - $selection = '{--YES--}'; - } // END - if - - // Add more elements - $content['count'] = $count; - $content['sel'] = $selection; - - // Load row template and count up - $OUT .= loadTemplate('admin_list_user_cats_row', true, $content); - $count++; - } // END - while - - // Free memory - SQL_FREERESULT($result_cats); - - // Remember all rows in the array - $content['rows'] = $OUT; - - // Load main template - loadTemplate('admin_list_user_cats', false, $content); +// Init variable to avoid a notice +$CATS = ''; + +if (isFormSent('add')) { + // Default message + $content = '{--CATEGORY_ALREADY_EXISTS--}'; + + // Add a new category + $result = sqlQueryEscaped("SELECT `id` FROM `{?_MYSQL_PREFIX?}_cats` WHERE `cat`='%s' LIMIT 1", + array(postRequestElement('catname')), __FILE__, __LINE__); + + if (ifSqlHasZeroNumRows($result)) { + // Category does not exists, we simply add it... + sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_cats` (`cat`, `visible`, `sort`) VALUES ('%s','%s','%s')", + array( + postRequestElement('catname'), + postRequestElement('visible'), + bigintval(postRequestElement('parent') + 1) + ), __FILE__, __LINE__); + + // Category has been added + $content = '{--CATEGORY_ADDED--}'; + } // END - if + + // Free memory + sqlFreeResult($result); + + // Display message + displayMessage($content); +} elseif ((isFormSent()) && (ifPostContainsSelections('id'))) { + // Change or delete categories... + $TEXT = ''; + foreach (postRequestElement('id') as $id => $cat) { + // Secure id + $id = bigintval($id); + + // Is the entry set? + if (!empty($cat)) { + switch (getRequestElement('do')) { + case 'edit': // Change categories + sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_cats` SET `cat`='%s',`visible`='%s',`sort`=%s WHERE `id`=%s LIMIT 1", + array( + $cat, + postRequestElement('visible', $id), + postRequestElement('sort', $id), + $id + ), __FILE__, __LINE__); + $TEXT = '{--ADMIN_CATEGORIES_SAVED--}'; + break; + + case 'delete': // Delete categories + sqlQueryEscaped("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_cats` WHERE `id`=%s LIMIT 1", + array($id), __FILE__, __LINE__); + sqlQueryEscaped("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s", + array($id), __FILE__, __LINE__); + $TEXT = '{--ADMIN_CATEGORIES_DELETED--}'; + break; + } // END - switch } else { - // No categories selected! :-( - loadTemplate('admin_list_user_cats_404', false, $content); + // Entry not saved + $TEXT .= '{%message,ADMIN_CATEGORY_NOT_SAVED=' . $id . '%}'; } - } else { - // User not found - displayMessage('{%message,ADMIN_MEMBER_404=' . $content['userid'] . '%}'); - } + } // END - foreach + + if (isset($TEXT)) { + // Display message + displayMessage($TEXT); + } // END - if +} elseif ((isFormSent('delete')) && (ifPostContainsSelections())) { + // Delete categories + $OUT = ''; + foreach (postRequestElement('sel') as $id => $value) { + // Load row template and switch colors + $OUT .= loadTemplate('admin_delete_cats_row', TRUE, $id); + } // END - foreach + + // Load main template + loadTemplate('admin_delete_cats', FALSE, $OUT); +} elseif ((isFormSent('edit')) && (ifPostContainsSelections())) { + // Edit categories + $OUT = ''; + foreach (postRequestElement('sel') as $id => $value) { + // Load data from the category + $result = sqlQueryEscaped("SELECT `id`, `visible`, `sort` FROM `{?_MYSQL_PREFIX?}_cats` WHERE `id`=%s LIMIT 1", + array(bigintval($id)), __FILE__, __LINE__); + $content = sqlFetchArray($result); + + // Free result + sqlFreeResult($result); + + // Prepare data for the row template + $content['visible_selection'] = addSelectionBox('yn', $content['visible'], 'visible', $content['id']); + + // Load row template and switch colors + $OUT .= loadTemplate('admin_edit_cats_row', TRUE, $content); + } // END - foreach + + // Load main template + loadTemplate('admin_edit_cats', FALSE, $OUT); } else { - // Output selection form with all confirmed user accounts listed - addMemberSelectionBox(); + // Init variable here + $CATS = ''; + + // Load all categories + $result = sqlQuery("SELECT + `id`, + `cat`, + `visible`, + `sort` +FROM + `{?_MYSQL_PREFIX?}_cats` +ORDER BY + `sort` ASC", __FILE__, __LINE__); + + if (!ifSqlHasZeroNumRows($result)) { + // Init variables + $OUT = ''; + + // List already existing categories for editing + while ($content = sqlFetchArray($result)) { + // Put cat descriptions into variable for the selection box + if (strlen($content['cat']) > 40) $content['cat'] = substr($content['cat'], 0, 37) . '...'; + $CATS .= ''; + + // Load row template and switch color + $OUT .= loadTemplate('admin_list_cats_row', TRUE, $content); + } // END - while + + // Free memory + sqlFreeResult($result); + + // Load main template + loadTemplate('admin_list_cats', FALSE, $OUT); + } // END - if + + // Remember in array + $content['cats'] = $CATS; + + // Form to add a new category + loadTemplate('admin_add_cat', FALSE, $content); } // [EOF]