X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Fmodules%2Fadmin%2Fwhat-list_cats.php;h=919e203a054c10c25657ff9fad3febd72a3374ac;hp=05e1c856d98047aba2ce17d33a2125f2492f4dfc;hb=49acdb7a7adbcf25a8e8683b5581bfcec72b23bd;hpb=3f51c40f4fede87228216f9285b745a339e3891d diff --git a/inc/modules/admin/what-list_cats.php b/inc/modules/admin/what-list_cats.php index 05e1c856d9..919e203a05 100644 --- a/inc/modules/admin/what-list_cats.php +++ b/inc/modules/admin/what-list_cats.php @@ -1,25 +1,24 @@ ".$sname." ".$fname.""); - - // 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_NUMROWS($result_cats) > 0) { - // List categories - $cnt = 1; $OUT = ''; $SW = 2; - while ($content = SQL_FETCHARRAY($result_cats)) { - // Check user's selection - $result_user = SQL_QUERY_ESC("SELECT `id` FROM `{!_MYSQL_PREFIX!}_user_cats` WHERE `userid`=%s AND `cat_id`=%s LIMIT 1", - array(bigintval(REQUEST_GET('uid')), bigintval($content['id'])), __FILE__, __LINE__); - - // Set selection - $selection = "{--NO--}"; - if (SQL_NUMROWS($result_user) == 1) $selection = "{--YES--}"; - - // Add more elements - $content['sw'] = $SW; - $content['cnt'] = $cnt; - $content['sel'] = $selection; - - // Load row template and switch colors + count up - $OUT .= LOAD_TEMPLATE('admin_list_cats_row', true, $content); - $SW = 3 - $SW; $cnt++; - } // END - while - - // Free memory - SQL_FREERESULT($result); - - // @TODO Rewrite this constant - define('__CATS_ROWS', $OUT); - - // Load main template - LOAD_TEMPLATE('admin_list_cats'); +addYouAreHereLink('admin', __FILE__); + +// 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! :-( - LOAD_TEMPLATE('admin_list_cats_404'); + // Entry not saved + $TEXT .= '{%message,ADMIN_CATEGORY_NOT_SAVED=' . $id . '%}'; } - } else { - // User not found - LOAD_TEMPLATE('admin_settings_saved', false, sprintf(getMessage('ADMIN_MEMBER_404'), constant('__UID'))); - } + } // 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 - ADD_MEMBER_SELECTION_BOX(); + // 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] ?>