예제 #1
0
/**
* Создает новую категорию.
*
* @param    array   $frm    Данные для создания категории
*/
function AddCategory($frm)
{
    global $session;
    session_start();
    $objResponse = new xajaxResponse();
    $name = $frm['commune_fld_add_category_name'];
    $is_only_for_admin = $frm['commune_fld_add_category_only_for_admin'];
    $commune_id = $frm['commune_id'];
    $om = $frm['om'];
    $uid = get_uid(false);
    if ($uid) {
        $status = commune::GetUserCommuneRel($commune_id, $uid);
    }
    if ($status['is_moderator'] == 1 || $status['is_admin'] == 1 || $status['is_author'] == 1 || hasPermissions('communes')) {
        $error = 0;
        $name = trim(strip_tags(stripslashes($name)));
        if ($name == '' || strlen($name) > commune::MAX_CATEGORY_NAME_SIZE) {
            $error = 1;
            $objResponse->script("alert('Название раздела не может быть пустым и должно содержать не более " . commune::MAX_CATEGORY_NAME_SIZE . ' ' . ending(commune::MAX_CATEGORY_NAME_SIZE, ' символ', ' символа', ' символов') . "');");
            $objResponse->script('communeObj.initCategories();');
        }
        if (commune::issetCategory($name, $commune_id)) {
            $error = 1;
            $objResponse->script("alert('Раздел с таким названием уже существует.');");
            $objResponse->script('communeObj.initCategories();');
        }
        if (!$error) {
            commune::addCategory($name, $is_only_for_admin, $commune_id);
            $objResponse->script("xajax_ShowCategoriesList({$commune_id},1,{$om});");
            //$objResponse->script("CommuneCancelAddCategory();");
            $objResponse->script('communeObj.initCategories();');
            $objResponse->assign('editmsg', 'innerHTML', __commPrntCommentForm($commune_id, $om));
            $objResponse->script('xajax_CheckDraftsCommune(); initWysiwyg();');
        }
    }
    return $objResponse;
}