Example #1
0
function nc_trash_recovery_sub($trash_ids)
{
    $nc_core = nc_Core::get_object();
    $db = $nc_core->db;
    if (!is_array($trash_ids)) {
        $trash_ids = array($trash_ids);
    }
    $trash_ids = array_map('intval', $trash_ids);
    $sub_name = $nc_core->input->fetch_get_post('sub_name');
    $sub_catalogue = $nc_core->input->fetch_get_post('sub_catalogue');
    $sub_checked = $nc_core->input->fetch_get_post('sub_checked');
    $sub_keyword = $nc_core->input->fetch_get_post('sub_keyword');
    $sub_parent = $nc_core->input->fetch_get_post('sub_parent');
    $trash_data = $nc_core->db->get_results("\n  SELECT `t`.`Sub_Class_ID`, `t`.`Class_ID` , `t`.`Subdivision_ID`, t.`XML_Filename`,\n        `sub`.`Subdivision_Name`, `cc`.`Sub_Class_Name`\n  FROM `Trash_Data` as `t`\n  LEFT JOIN `Sub_Class` as `cc` ON `t`.`Sub_Class_ID` = `cc`.`Sub_Class_ID`\n  LEFT JOIN `Subdivision` as `sub` ON `sub`.`Subdivision_ID` =  `t`.`Subdivision_ID`\n  WHERE t.Trash_ID IN (" . join(',', $trash_ids) . ")\n  AND `sub`.`Subdivision_ID` IS NULL\n  GROUP BY `t`.`Subdivision_ID`", ARRAY_A);
    $t = nc_trash_load_sub_cc($trash_data);
    $subdivisions = $t['subs'];
    $sub_classes = $t['ccs'];
    $cc_sub = $t['cc_sub'];
    if (!empty($sub_name)) {
        foreach ($sub_name as $id => $name) {
            $db->query("INSERT INTO `Subdivision` SET `Subdivision_ID` = '" . intval($id) . "',\n                                         `Catalogue_ID` = '" . intval($sub_catalogue[$id]) . "',\n                                         `Subdivision_Name` = '" . $db->escape($name) . "',\n                                         `Checked` = '" . intval($sub_checked[$id]) . "',\n                                         `Parent_Sub_ID` = '" . intval($sub_parent[$id]) . "',\n                                         `EnglishName` = '" . $sub_keyword[$id] . "' ");
            // обновим Hidden_URL
            $hidden_url = GetHiddenURL($sub_parent[$id]);
            UpdateHiddenURL($hidden_url ? $hidden_url : "/", $sub_parent[$id], $sub_catalogue[$id]);
            $ccs = $cc_sub[$id];
            foreach ($ccs as $cc_id) {
                $db->query("INSERT INTO `Sub_Class` SET `Sub_Class_ID` = '" . intval($cc_id) . "',\n                                           `Catalogue_ID` = '" . intval($sub_catalogue[$id]) . "',\n                                           `Subdivision_ID` = '" . intval($id) . "',\n                                           `Class_ID` = '" . intval($sub_classes[$cc_id]['class_id']) . "',\n                                           `Sub_Class_Name` = '" . $db->escape($sub_classes[$cc_id]['name']) . "',\n                                           `Checked` = '" . intval($sub_checked[$id]) . "',\n                                           `EnglishName` = '" . $sub_keyword[$id] . "' ");
            }
        }
    }
    return count($sub_name);
}
Example #2
0
     if ($errorMessage !== false) {
         $errorStart = strpos($buffer, "<div class='nc_print_status_text'>");
         $errorEnd = strpos($buffer, "</div>", $errorStart);
         $error = substr($buffer, $errorStart, $errorEnd - $errorStart);
         $isNaked = 1;
         nc_print_status($error, 'error');
     } else {
         echo 'OK';
         // перезагрузить страницу, так как изменение почти всех настроек
         // раздела (вкл/выкл, приоритет, название, ключевое слово, макет
         // дизайна и егонастройки) приводят к обширным и сложно предсказуемым
         // изменениям различных частей страницы (title, стили, содержимое
         // меню, заголовки и т.п.)
         echo "\nReloadPage=1";
         if ($oldHiddenURL != GetHiddenURL($SubdivisionID)) {
             echo "\nNewHiddenURL=" . GetHiddenURL($SubdivisionID);
         }
     }
     exit;
 }
 BeginHtml($Title8, $Title1 . $Delimeter . $sh->Link . $Delimeter . $Title8, "http://" . $DOC_DOMAIN . "/management/sites/sections/settings/");
 $UI_CONFIG = new ui_config_subdivision_settings($SubdivisionID, $view);
 try {
     if (nc_subdivision_save($view)) {
         $UI_CONFIG = new ui_config_subdivision_settings($SubdivisionID, $view);
         nc_print_status(CONTROL_CONTENT_SUBDIVISION_SUCCESS_EDIT, 'ok');
     }
 } catch (Exception $e) {
     nc_print_status($e->getMessage(), 'error');
 }
 nc_subdivision_show_edit_form($SubdivisionID, $view);
Example #3
0
function nc_subdivision_add()
{
    $nc_core = nc_Core::get_object();
    $db = $nc_core->db;
    $CatalogueID = intval($nc_core->input->fetch_get_post('CatalogueID'));
    $ParentSubID = intval($nc_core->input->fetch_get_post('ParentSubID'));
    $Template_ID = intval($nc_core->input->fetch_get_post('Template_ID'));
    $input = $nc_core->input->fetch_get_post();
    // проверка названия раздела
    $Subdivision_Name = trim($nc_core->input->fetch_get_post('Subdivision_Name'));
    if (!$Subdivision_Name) {
        throw new Exception(CONTROL_CONTENT_SUBDIVISION_INDEX_ERROR_THREE_NAME);
    }
    // проверка ключевого слова
    $EnglishName = trim($nc_core->input->fetch_get_post('EnglishName'));
    if (empty($EnglishName)) {
        $EnglishName = nc_transliterate($Subdivision_Name, true);
    }
    // проверка на валидность
    $EnglishName = nc_check_english_name(0, $EnglishName, 1);
    if (!$nc_core->subdivision->validate_english_name($EnglishName)) {
        throw new Exception(CONTROL_CONTENT_SUBDIVISION_SUBCLASS_ERROR_KEYWORD_INVALID);
    }
    // проверка уникальности ключевого слова
    if (!IsAllowedSubdivisionEnglishName($EnglishName, $ParentSubID, 0, $CatalogueID)) {
        throw new Exception(CONTROL_CONTENT_SUBDIVISION_INDEX_ERROR_THREE_KEYWORD);
    }
    // визуальные настройки
    $TemplateSettings = "";
    if ($_POST['is_parent_template'] == 'true') {
        $Template_ID = 0;
    }
    if ($Template_ID) {
        $settings = $nc_core->db->get_var("SELECT `CustomSettings` FROM `Template` WHERE `Template_ID` = '" . $Template_ID . "'");
        if ($settings) {
            require_once $nc_core->ADMIN_FOLDER . "array_to_form.inc.php";
            $a2f = new nc_a2f($settings, 'TemplateSettings');
            if (!$a2f->validate($_POST['TemplateSettings'])) {
                throw new Exception($a2f->get_validation_errors());
            }
            if (isset($_POST['TemplateSettings']) && !empty($_POST['TemplateSettings'])) {
                $a2f->save($_POST['TemplateSettings']);
                $TemplateSettings = $a2f->get_values_as_string();
            }
        }
    }
    // execute core action
    $nc_core->event->execute("addSubdivisionPrep", $CatalogueID, 0);
    // добавление раздела
    $db->query("\n        INSERT INTO `Subdivision`\n            SET `Created` = NOW(),\n                `Subdivision_Name` = '" . $db->escape($Subdivision_Name) . "',\n                `EnglishName` = '" . $db->escape($EnglishName) . "',\n                `Parent_Sub_ID` = '" . $ParentSubID . "',\n                `Catalogue_ID` = '" . $CatalogueID . "',\n                `Checked` = '" . intval($input['Checked']) . "',\n                `Priority` = '" . intval($input['Priority']) . "',\n                `Favorite` = '" . intval($input['Favorite']) . "',\n                `UseMultiSubClass` = 1,\n                `Template_ID` = '" . $Template_ID . "',\n                `TemplateSettings` = '" . $db->escape($TemplateSettings) . "',\n                `UseEditDesignTemplate` = '" . intval($input['UseEditDesignTemplate']) . "',\n                `DisplayType` = '" . $db->escape($nc_core->input->fetch_get_post('DisplayType')) . "'");
    if ($db->is_error) {
        throw new nc_Exception_DB_Error($db->last_query, $db->last_error);
    }
    $SubdivisionID = $db->insert_id;
    // обновим Hidden_URL
    $hidden_url = GetHiddenURL($ParentSubID);
    UpdateHiddenURL($hidden_url ? $hidden_url : "/", $ParentSubID, $CatalogueID);
    $nc_core->event->execute("addSubdivision", $CatalogueID, $SubdivisionID);
    // добавление компонента в разделе
    $Class_ID = intval($input['Class_ID']);
    $Class_Template_ID = intval($input['Class_Template_ID']);
    if ($Class_ID) {
        // визуальные настройки
        $CustomSettings = "";
        $settings_array = $db->get_var("SELECT `CustomSettingsTemplate` FROM `Class`\n      WHERE `Class_ID` = '" . ($Class_Template_ID ? $Class_Template_ID : $Class_ID) . "'");
        if ($settings_array) {
            require_once $nc_core->ADMIN_FOLDER . "array_to_form.inc.php";
            $a2f = new nc_a2f($settings_array, 'CustomSettings');
            if (!$a2f->validate($_POST['CustomSettings'])) {
                $error = $a2f->get_validation_errors();
            } else {
                $a2f->save($_POST['CustomSettings']);
                $CustomSettings = $a2f->get_values_as_string();
            }
        }
        $nc_core->event->execute("addSubClassPrep", $CatalogueID, $SubdivisionID, 0);
        $db->query("INSERT INTO `Sub_Class`\n      (`Subdivision_ID`, `Catalogue_ID`, `Class_ID`, `Sub_Class_Name`, `Checked`, `EnglishName`, `Created`, `CustomSettings`, `Class_Template_ID`)\n       VALUES\n       ('" . $SubdivisionID . "', '" . $CatalogueID . "', '" . $Class_ID . "', '" . $Subdivision_Name . "', 1, '" . $EnglishName . "',  '" . date("Y-m-d H:i:s") . "',  '" . addcslashes($CustomSettings, "'") . "', '" . $Class_Template_ID . "')");
        if ($SubClassID = $db->insert_id) {
            $nc_core->event->execute("addSubClass", $CatalogueID, $SubdivisionID, $SubClassID);
        }
    }
    return $SubdivisionID;
}