Bitrix Site Manager

CAdvContract::Set

int
CAdvContract::Set(
 array arFields,
 int CONTRACT_ID="",
 char(1) CHECK_RIGHTS="Y"
);

The method Set creates a new contract, or modifies the existing one if a valid contract ID is passed in the second parameter. Returns the ID of the created contract, or the ID of the modified contract.

Parameters

arFields
An array of the contract parameters. The following keys are possible in this array:
  • ACTIVE - active state flag: if "Y", the contract is active, if "N" the contract is inactive;
  • NAME - contract name;
  • DESCRIPTION - contract description;
  • ADMIN_COMMENTS - administrative comment;
  • WEIGHT - contract weight (priority);
  • SORT - sort order;
  • MAX_SHOW_COUNT - the maximum total number of all the contract banner shows;
  • MAX_CLICK_COUNT - the maximum total number of all the contract banner clicks;
  • DATE_SHOW_FROM - the date banner shows commenced;
  • DATE_SHOW_TO - the date banner shows stopped;
  • DEFAULT_STATUS_SID - the default status for creating new banners; it is also set when the visual aspect of the existing ones becomes modified. The following values are possible:
    • PUBLISHED - the banner is approved and published;
    • READY - the banner is being reviewed;
    • REJECTED - the banner is rejected.
  • arrSHOW_PAGE - array of pages and sections of the site on which contract banners are to be shown;
  • arrNOT_SHOW_PAGE - array of pages and sections of the site on which contract banners cannot be shown;
  • arrTYPE - array of available banner types;
  • arrWEEKDAY - array describing time and days of week for the banner show. The following keys are possible in this array:
    • SUNDAY - array of hours on which the banner is to be shown on Sunday (0-23);
    • MONDAY - the same on Monday;
    • TUESDAY - on Tuesday;
    • WEDNESDAY - on Wednesday;
    • THURSDAY - on Thursday;
    • FRIDAY - on Friday;
    • SATURDAY - on Saturday.
  • arrUSER_VIEW - array of the ID of users who can view parameters, banners and charts of a contract;
  • arrUSER_ADD - array of the ID of users who can view contract parameters and manage banners;
  • arrUSER_EDIT - array of the ID of users who can edit header and description of a contract, assign permissions and manage banners.
CONTRACT_ID
The ID of an existing contract. If omitted, a new contract is created.
CHECK_RIGHTS
Flag indicating that the current user permissions should be checked. If "Y", the current user permissions should be checked. If "N", a contract can be created and modified disregarding the current user permissions.

Example


// The following example adds a new contract 
// or modifies the existing one:
<?
if ((strlen($save)>0 || 
    strlen($apply)>0) && 
    $REQUEST_METHOD=="POST")
{
    $arrWEEKDAY = array(
        "SUNDAY"    => $arrSUNDAY,
        "MONDAY"    => $arrMONDAY,
        "TUESDAY"    => $arrTUESDAY,
        "WEDNESDAY"    => $arrWEDNESDAY,
        "THURSDAY"    => $arrTHURSDAY,
        "FRIDAY"    => $arrFRIDAY,
        "SATURDAY"    => $arrSATURDAY
        );
    $arFields = array(
        "ACTIVE"                => $ACTIVE,
        "NAME"                  => $NAME,
        "DESCRIPTION"           => $DESCRIPTION,
        "ADMIN_COMMENTS"        => $ADMIN_COMMENTS,
        "WEIGHT"                => $WEIGHT,
        "SORT"                  => $SORT,
        "MAX_SHOW_COUNT"        => $MAX_SHOW_COUNT,
        "MAX_CLICK_COUNT"       => $MAX_CLICK_COUNT,
        "DATE_SHOW_FROM"        => $DATE_SHOW_FROM,
        "DATE_SHOW_TO"          => $DATE_SHOW_TO,
        "DEFAULT_STATUS_SID"    => $DEFAULT_STATUS_SID,
        "arrSHOW_PAGE"          => split("[\n\r]",$SHOW_PAGE),
        "arrNOT_SHOW_PAGE"      => split("[\n\r]",$NOT_SHOW_PAGE),
        "arrTYPE"               => $arrTYPE,
        "arrWEEKDAY"            => $arrWEEKDAY,
        "arrUSER_VIEW"          => $arrUSER_VIEW,
        "arrUSER_ADD"           => $arrUSER_ADD,
        "arrUSER_EDIT"          => $arrUSER_EDIT
        );
    if ($ID = CAdvContract::Set($arFields, $ID))
    {
        if (strlen($strError)<=0)
        {
            if (strlen($save) > 0)
                LocalRedirect("adv_contract_list.php?lang=".LANG);
            else
                LocalRedirect("adv_contract_edit.php?ID=".$ID."〈=".LANG);
        }
    }
    $DB->PrepareFields("b_adv_contract");
}
?>