Мне кажется, что для восприятия примера Копирование значений полей элементов в свойства требуется значительно большее содержание дзена в крови, чем это дано среднему земному гуманоиду. Понизить планку можно с помощью такого кода:
Код
/*
* Пример вызова функции:
* 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. Также на станице курса есть иконка "Все материалы курса" в верхнем левом углу, позволяющая вывести весь курс на одну страницу.
Предположу, что в курсе Технология Композитный сайт на странице >ссылка< допущена ошибка в формулировке :
Цитата
Так как технология Композитный сайт оперирует файлами, то удобнее всего для отдачи их использовать NGINX, а не PHP. Для этого достаточно настроить NGINX примерно так:
Может быть, "NGINX, а не Apache (или аналог)", например.
В вопросе теста по курсу Технология Композитный сайт
Цитата
В динамической зоне до загрузки актуального контента нужно отображать слово Загрузка с особым отображением (например, особым шрифтом). Какими способами для этого можно добиться?
есть любопытный вариант: - "Использовать картинку с написанием этого слова в качестве аргумента для createFrame()->begin();."
Похоже, что только с ним возможно полное прохождение теста. Но в документации учебного курсао возможности использования изображения в качестве аргумента не нашел ни слова.
Алексей Панов, Вы ошибаетесь. Этот вопрос не имеет статуса обязательного для сдачи. Тест можно пройти и без ответа на него, если вы набрали нужное количества баллов. По поводу упоминания изображения в качестве аргумента. Мы вообще-то рассчитывали что этот тест будут сдавать люди понимающие. Если можно использовать картинку в качестве аргумента "вообще", то в данном случае тоже можно, если запрет не оговорён. А он не оговорён.
Под "полным прохождением" я подразумевал 100% результат.
Цитата
Если можно использовать картинку в качестве аргумента "вообще"
ИМХО это слишком абстрактно. Одно дело, если данный функционал уже был бы описан в официальном API и можно было бы посмотреть откуда "Ноги растут", а другое, когда функционал не описан ни в учебных курсах, ни в API и без просмотра исходных кодов разобраться в ее происхождении не вариант.