Example #1
0
        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');
            }
Example #2
0
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;
}