/** * Обновление категории. * * @param array $frm Данные категории */ function UpdateCategory($frm) { global $session; session_start(); $objResponse = new xajaxResponse(); $id = $frm['category_id']; $name = $frm['commune_fld_edit_category_name']; $is_only_for_admin = $frm['commune_fld_edit_category_only_for_admin']; $commune_id = $frm['commune_id']; $om = $frm['om']; $uid = get_uid(false); if ($uid) { $status = commune::GetUserCommuneRel($commune_id, $uid); } else { return $objResponse; } if ($status['is_moderator'] == 1 || $status['is_admin'] == 1 || $status['is_author'] == 1 || hasPermissions('communes')) { $error = 0; $name = trim(strip_tags(stripslashes($name))); $allow = "1234567890\t\n !.\"',.!@%^#\$;:-<>"; $str = 'abcdefghijklmnopqrstuvwxyz'; $cir = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; $allow .= $str . strtoupper($str) . $cir; $tS = ''; for ($i = 0; $i < strlen($name); ++$i) { $ch = $name[$i]; if (strpos($allow, $ch) !== FALSE) { $tS .= $ch; } } $name = $tS; if ($name == '' || strlen($name) > 30) { $error = 1; $objResponse->script("alert('Название раздела не может быть пустым и должно содержать не более 30 символов " . strlen($name) . "');"); } $edit_id = commune::issetCategory($name, $commune_id); if ($edit_id && (int) $edit_id !== (int) $id) { $error = 1; $objResponse->script("alert('Раздел с таким названием уже существует.');"); } if (!$error) { commune::updateCategory($id, $name, $is_only_for_admin, $commune_id); $objResponse->script("xajax_ShowCategoriesList({$commune_id},1,{$om});"); $objResponse->assign('editmsg', 'innerHTML', __commPrntCommentForm($commune_id, $om)); } $objResponse->script('communeObj.initCategories'); } return $objResponse; }