function UpdateHiddenURL($parent_url, $parent_sub, $catalogue) { global $nc_core, $db; $parent_sub += 0; $catalogue += 0; $res = $db->get_results("SELECT `EnglishName`, `Subdivision_ID` FROM `Subdivision`\n WHERE `Parent_Sub_ID` = '" . $parent_sub . "' AND `Catalogue_ID` = '" . $catalogue . "'", ARRAY_N); $subCount = $db->num_rows; for ($i = 0; $i < $subCount; $i++) { list($english_name[$i], $sub_id[$i]) = $res[$i]; } for ($i = 0; $i < $subCount; $i++) { $new_parent_url = $parent_url . $english_name[$i] . "/"; $res = $db->query("UPDATE `Subdivision` SET `Hidden_URL` = '" . $new_parent_url . "', `LastUpdated` = `LastUpdated` WHERE `Subdivision_ID` = '" . $sub_id[$i] . "'"); UpdateHiddenURL($new_parent_url, $sub_id[$i], $catalogue); } // execute core action //if ( !empty($sub_id) ) $nc_core->event->execute("updateSubdivision", $catalogue, $sub_id); }
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); }
BeginHtml($Title2, $Title1, "http://" . $DOC_DOMAIN . "/settings/modules/"); nc_print_status(NETCAT_MODULE_INSTALLCOMPLIED, 'ok'); EndHtml(); exit; } else { $module_data = $res; } // load modules env $lang = $nc_core->lang->detect_lang(1); $MODULE_VARS = $nc_core->modules->load_env($lang); if (!isset($phase)) { $phase = 2; } switch ($phase) { case 1: BeginHtml($Title2, $Title1, "http://" . $DOC_DOMAIN . "/settings/modules/"); break; case 2: BeginHtml($Title2, $Title1, "http://" . $DOC_DOMAIN . "/settings/modules/"); SelectParentSub(); break; case 3: BeginHtml($Title2, $Title1, "http://" . $DOC_DOMAIN . "/settings/modules/"); InsertSub(NETCAT_MODULE_SEARCH_ADMIN_EXTENSION_ACTION_SEARCHING, "search", "", 0, 0, 0, 0, 0, $nc_core->get_settings('ComponentID', 'search'), $SubdivisionID, $CatalogueID, "index", 1); UpdateHiddenURL("/", 0, $CatalogueID); $db->query("UPDATE `Module` SET `Installed` = 1 WHERE `Module_ID` = '" . intval($module_data["Module_ID"]) . "'"); echo "<br/><br/>"; nc_print_status(NETCAT_MODULE_INSTALLCOMPLIED, 'ok'); break; } EndHtml();
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; }