- Инфоблок "Расписание экзаменов"
- Свойства для элементов этого инфоблока:
- "Аудитория" тип целое число
- "Преподаватель" тип строка
- и 5 элеметов этого инфоблока с заполнеными полями:
- Название (стандартное поле инфоблока)
- Аудитория
- Преподаватель - Дата начала (стандартное поле инфоблока)
__________________________________________
<?php
CModule::IncludeModule("iblock");
$ib = new CIBlock;
$IBLOCK_TYPE = "newb"; //тип инфоблока
$SITE_ID = "s1"; //сайт
// Настройка доступа
$arAccess = array(
"2" => "R", // Все пользователи
);
if ($contentGroupId) $arAccess[$contentGroupId] = "X"; // Полный доступ
if ($editorGroupId) $arAccess[$editorGroupId] = "W"; // Запись
if ($ownerGroupId) $arAccess[$ownerGroupId] = "X"; // Полный доступ
$arFields = Array(
"ACTIVE" => "Y",
"NAME" => "Расписание экзаменов",
"CODE" => "tm",
"IBLOCK_TYPE_ID" => $IBLOCK_TYPE,
"SITE_ID" => $SITE_ID,
"SORT" => "5",
"GROUP_ID" => $arAccess, // Права доступа
"FIELDS" => array(
// Символьный код разделов
"SECTION_CODE" => array(
"IS_REQUIRED" => "Y",
"DEFAULT_VALUE" => array(
"UNIQUE" => "Y",
"TRANSLITERATION" => "Y",
"TRANS_LEN" => "30",
"TRANS_CASE" => "L",
"TRANS_SPACE" => "-",
"TRANS_OTHER" => "-",
"TRANS_EAT" => "Y",
"USE_GOOGLE" => "N",
),
),
"DETAIL_TEXT_TYPE" => array( // Тип детального описания
"DEFAULT_VALUE" => "html",
),
"SECTION_DESCRIPTION_TYPE" => array(
"DEFAULT_VALUE" => "html",
),
"IBLOCK_SECTION" => array( // Привязка к разделам обязательноа
"IS_REQUIRED" => "N",
),
"LOG_SECTION_ADD" => array("IS_REQUIRED" => "Y"), // Журналирование
"LOG_SECTION_EDIT" => array("IS_REQUIRED" => "Y"),
"LOG_SECTION_DELETE" => array("IS_REQUIRED" => "Y"),
"LOG_ELEMENT_ADD" => array("IS_REQUIRED" => "Y"),
"LOG_ELEMENT_EDIT" => array("IS_REQUIRED" => "Y"),
"LOG_ELEMENT_DELETE" => array("IS_REQUIRED" => "Y"),
),
// Шаблоны страниц
"LIST_PAGE_URL" => "#SITE_DIR#/tm/",
"SECTION_PAGE_URL" => "#SITE_DIR#/tm/#SECTION_CODE#/",
"DETAIL_PAGE_URL" => "#SITE_DIR#/tm/#SECTION_CODE#/#ELEMENT_CODE#/",
"INDEX_SECTION" => "Y", // Индексировать разделы для модуля поиска
"INDEX_ELEMENT" => "Y", // Индексировать элементы для модуля поиска
"VERSION" => 1, // Хранение элементов в общей таблице
"SECTION_PROPERTY" => "Y", // Разделы каталога имеют свои свойства (нужно для модуля интернет-магазина)
);
$ID = $ib->Add($arFields);
if ($ID > 0)
{
echo "инфоблок успешно создан";
}
else
{
echo "ошибка создания инфоблока";
return false;
}
$propid1=0;
$propid2=0;
// Определяем, есть ли у инфоблока свойства
$dbProperties = CIBlockProperty::GetList(array(), array("IBLOCK_ID"=>$ID));
if ($dbProperties->SelectedRowsCount() <= 0)
{
$ibp = new CIBlockProperty;
$arFields = Array(
"NAME" => "Аудитория",
"ACTIVE" => "Y",
"SORT" => -777, // Сортировка
"CODE" => "Number",
"PROPERTY_TYPE" => "N", //
"IBLOCK_ID" => $ID
);
$propId = $ibp->Add($arFields);
if ($propId > 0)
{
$arFields["ID"] = $propId;
$propid1=$propId;
$arCommonProps[$arFields["CODE"]] = $arFields;
echo "— Добавлено свойство ".$arFields["NAME"]."<br />";
}
else
echo "— Ошибка добавления свойства ".$arFields["NAME"]."<br />";
/* сео-свойства */
$arFields = Array(
"NAME" => "Преподаватель",
"ACTIVE" => "Y",
"SORT" => -777,
"CODE" => "Name",
"PROPERTY_TYPE" => "S", // Строка
"IBLOCK_ID" => $ID,
);
$propId = $ibp->Add($arFields);
if ($propId > 0)
{
$arFields["ID"] = $propId;
$propid2=$propId;
$arCommonProps[$arFields["CODE"]] = $arFields;
echo "— Добавлено свойство ".$arFields["NAME"]."<br />";
}
else
echo "Ошибка добавления свойства ".$arFields["NAME"]."<br />";
}
else
echo "Для данного инфоблока уже существуют свойства<br />";
$el = new CIBlockElement;
for($i=0;$i<5;$i++){
$PROP = array();
$PROP[$propid1] = "Преподаватель".$i; //
$PROP[$propid2] = "Аудитория".$i;
$date = "31.05.2016 ".$i.":32:00";
$stmp = MakeTimeStamp($date, "DD.MM.YYYY HH:MI:SS");
$arLoadProductArray = Array(
"MODIFIED_BY" => $USER->GetID(), // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => $ID,
"PROPERTY_VALUES"=> $PROP,
"NAME" => "Предмет #".$i,
"ACTIVE" => "Y", // активен
"PREVIEW_TEXT" => "текст для предмета #".$i,
"DETAIL_TEXT" => "текст для детального просмотра элементa #".$i,
"ACTIVE_FROM" => $date,
"START_DATE"=> $date,
"DATE_ACTIVE_FROM"=>$date
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
echo "New ID: ".$PRODUCT_ID;
else
echo "Error: ".$el->LAST_ERROR;
}
?>