EndHtml(); exit; } } if (isset($phase)) { switch ($phase) { case 1: # форма для добавления списка BeginHtml($Title9, $Title3 . $Delimeter . $Title9, "http://" . $DOC_DOMAIN . "/management/lists/add/"); $perm->ExitIfNotAccess(NC_PERM_CLASSIFICATOR, NC_PERM_ACTION_ADD, 0, 0, 0); if (+$_REQUEST['isNaked']) { ob_clean(); AddClassificator_modal(); exit; } AddClassificator("", "", 0); break; case 2: # собственно добавление BeginHtml($Title2, $Title2, "http://" . $DOC_DOMAIN . "/management/lists/"); $perm->ExitIfNotAccess(NC_PERM_CLASSIFICATOR, NC_PERM_ACTION_ADD, 0, 0, 1); $NewID = AddClassificatorCompleted($ClassificatorName, $ClassificatorTable, $System, $SortType, $SortDirection); if ($NewID) { header("Location: classificator.php?phase=4&ClassificatorID={$NewID}&isNew=1"); exit; nc_print_status(CLASSIFICATORS_SUCCESS_ADD, 'ok'); OneClassificatorList($NewID, GetSortTypeByID($NewID), GetSortDirectionByID($NewID)); echo "<script>parent.window.frames[0].location.reload();</script>"; } else { nc_print_status(CLASSIFICATORS_ERROR_ADD, 'error'); }
function AddClassificatorCompleted($ClassificatorName, $ClassificatorTable, $System, $SortType, $SortDirection) { global $db, $perm; $System += 0; $SortType += 0; $SortDirection += 0; $ReturnValue = 0; $ClassificatorName = $db->escape($ClassificatorName); $ClassificatorTable = $db->escape($ClassificatorTable); $err_msg = ''; if ($ClassificatorName == "") { $err_msg = CONTENT_CLASSIFICATORS_ERROR_NAME; } else { if ($ClassificatorTable == "") { $err_msg = CONTENT_CLASSIFICATORS_ERROR_KEYWORD; } else { if (strspn(strtolower($ClassificatorTable), "abcdefghijklmnopqrstuvwxyz0123456789_") != strlen($ClassificatorTable)) { $err_msg = CONTENT_CLASSIFICATORS_ERROR_KEYWORDINV; } else { if (strspn(strtolower(substr($ClassificatorTable, 0, 1)), "abcdefghijklmnopqrstuvwxyz") != 1) { $err_msg = CONTENT_CLASSIFICATORS_ERROR_KEYWORDFL; } else { if (IsClassificatorExist($ClassificatorTable)) { $err_msg = CONTENT_CLASSIFICATORS_ERROR_KEYWORDAE; } else { if (IsTableExist($ClassificatorTable)) { $err_msg = CONTENT_CLASSIFICATORS_ERROR_KEYWORDREZ; } } } } } } if ($err_msg) { nc_print_status($err_msg, 'error'); AddClassificator($ClassificatorName, $ClassificatorTable, $System, $SortType, $SortDirection); } else { print "<br>\n"; $Insert = "insert into Classificator (Classificator_Name, Table_Name, System, Sort_Type, Sort_Direction)"; $Insert .= " values ('{$ClassificatorName}','{$ClassificatorTable}','{$System}','{$SortType}', '{$SortDirection}')"; $db->query($Insert); $ReturnValue = $db->insert_id; $Creat = " CREATE TABLE Classificator_{$ClassificatorTable} ("; $Creat .= "{$ClassificatorTable}_ID int(11) NOT NULL auto_increment,"; $Creat .= "{$ClassificatorTable}_Name char(255) DEFAULT '' NOT NULL,"; $Creat .= "{$ClassificatorTable}_Priority int(11) DEFAULT NULL,"; $Creat .= "Value text DEFAULT NULL,"; $Creat .= "Checked int(1) default 1,"; $Creat .= "PRIMARY KEY ({$ClassificatorTable}_ID)"; $Creat .= ")"; global $LinkID; if ((double) mysql_get_server_info($LinkID) >= 4.1) { global $MYSQL_CHARSET; $Creat .= " DEFAULT CHARSET={$MYSQL_CHARSET}"; } $db->query($Creat); } return $ReturnValue; }