На русской версии сайта каждую неделю активно добавлляются новости, акции и авто добавляются реже, но добавляются.
Требуется сделать модуль, который при добавлении элемента в инфоблок русской версии, копирует этот элемент со всеми заполненными полями в соответствующий ифноблок английской версии и делает этот элемент неактивным (чтобы потом в админку зашел переводчик и после перевода элемента сделал его активным).
Также должны быть предусмотрены настройки, в которых можно:
1) Указывать эти связи инфоблоков: Новости (рус) (iblock_id=1) - Новости (англ) (iblock_id=18)
2) Добавлять и удалять связи (чтобы при появлении новых инфоблоков на сайте, которые нужны в англ версии не приходилось постоянно дописывать модуль).
Слишком индивидуальная задача, чтобы размещать её в маркете. Решается одним обработчиком события OnAfterIBlockElementAdd. Можете обратиться к какому-нибудь разработчику из списка партнеров Битрикса, он вам напишет такой.
Антон Пилецкий написал: Слишком индивидуальная задача, чтобы размещать её в маркете. Решается одним обработчиком события OnAfterIBlockElementAdd. Можете обратиться к какому-нибудь разработчику из списка партнеров Битрикса, он вам напишет такой.
И тем не менее, народ регулярно этого хочет. Только не в виде тупого создания альтернативного элемента инфоблока, а чтобы ещё было переведено каким-нибудь гугль-транслейтом.
Совершенно не одобряю, но осуждать не буду.
(И да, в приличном маркетплейсовом решении должно быть более одного языка)
AddEventHandler("iblock", "OnAfterIBlockElementAdd","CopyElement");
function CopyElement($arFields)
{
if ($arFields["IBLOCK_ID"]=='1') // ID инфоблока откуда копируем
{
$arFields["IBLOCK_ID"]=2; // ID инфоблока куда копируем
$arFields["ACTIVE"]="N"; // Деактивируем
$el = new CIBlockElement;
$el->Add($arFields);
}
}