Мне кажется, что для восприятия примера Копирование значений полей элементов в свойства требуется значительно большее содержание дзена в крови, чем это дано среднему земному гуманоиду. Понизить планку можно с помощью такого кода:
Код
/*
* Пример вызова функции:
* CopyFromFieldsToPropertiesValues(22, array('DATE_ACTIVE_FROM','DATE_ACTIVE_TO'), array('DATE_BEGIN','DATE_END'));
*/
function CopyFromFieldsToPropertiesValues ($iblockId, $arFromFieldNames, $arToPropertyNames)
{
// Подключение модуля инфоблоков:
if (!CModule::IncludeModule('iblock')) die('Модуль iblock не установлен');
// Проверка входных параметров:
if (!is_array($arFromFieldNames))
throw new \Bitrix\Main\ArgumentTypeException('arFromFieldNames', 'array');
if (!is_array($arToPropertyNames))
throw new \Bitrix\Main\ArgumentTypeException('arToPropertyNames', 'array');
if (count($arFromFieldNames) != count($arToPropertyNames))
throw new \Bitrix\Main\ArgumentException('Число свойств не равно числу полей', 'arToPropertyNames');
$iblockId = intval($iblockId);
if ($iblockId == 0)
throw new \Bitrix\Main\ArgumentException('Нулевое значение Id инфоблока', 'iblockId');
if (count($arFromFieldNames) <= 0) return;
// Запросим ID и требуемые поля для всех элементов указанного инфоблока:
$dbElements = CIBlockElement::GetList(
array(), // arOrder (Без сортировки)
array('IBLOCK_ID' => $iblockId), // arFilter (Все элементы инфоблока с указанным ID)
false, // arGroupBy (Не группировать)
false, // arNavStartParams (Без постраничной навигации)
array_merge(array('ID'), $arFromFieldNames) // arSelectFields (Нам нужны ID и требуемые поля)
);
// Перебираем результаты:
while ($arElement = $dbElements->Fetch())
{
// Подготовим массив для SetPropertyValuesEx():
$arPropertyValues = array();
foreach ($arToPropertyNames as $key => $propertyName)
{
$arPropertyValues[$propertyName] = $arElement[$arFromFieldNames[$key]];
}
// Изменяем требуемые свойства для найденного элемента:
CIBlockElement::SetPropertyValuesEx(
$arElement['ID'], // ELEMENT_ID
$iblockId, // IBLOCK_ID
$arPropertyValues // PROPERTY_VALUES
//, array() // FLAGS
);
/*
// Вместо вызова SetPropertyValuesEx() можно установить каждое свойство отдельным вызовом SetPropertyValues().
// В этом случае нам не нужно создавать массив $arPropertyValues, но будет выполнено больше запросов к базе данных:
foreach ($arToPropertyNames as $key => $propertyName)
{
// Установим значение каждого требуемого свойства из полученных результатов:
CIBlockElement::SetPropertyValues(
$arElement['ID'], // ELEMENT_ID
$iblockId, // IBLOCK_ID
$arElement[$arFromFieldNames[$key]], // PROPERTY_VALUES
$propertyName // PROPERTY_CODE
);
}
*/
}
if (!isset($arPropertyValues))
throw new Exception('Не найдены поля инфоблока с ID='.$iblockId);
}
Курс Технология Композитный сайт предназначен для разработчиков сайтов на платформе Bitrix Framework. Для его прохождения необходимо сдать тесты курса Разработчик Bitrix Framework. После изучения курса вам будет предложено пройти тесты на сертификацию. При успешной сдаче линейки тестов на странице Моё обучение можно просмотреть результат обучения и загрузить сертификат в формате PDF.
Т.е. нужно повторно сдать тесты на Разработчик Bitrix Framework, чтоб получить сертификат Композитного сайта или пока для Композитного сайта нет тестов?
Антон Антоненко, Нет, не нужно. Если вы сдали все тесты по Разработчик Bitrix Framework, то вам будут доступен тест по Композитному сайту. Как только он будет вывешен. А это будет скоро.
FreeArcher пишет: Добрый день! Подскажите если возможность куры скачать в формате PDF или ещё как-то, т.е. нужно одной портянкой, чтобы можно было распечатать целиком?
Добрый. На странице с курсами есть для каждого курса ссылка на скачивание в формате .chm. Также на станице курса есть иконка "Все материалы курса" в верхнем левом углу, позволяющая вывести весь курс на одну страницу.