-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Valery Cheban edited this page Jan 13, 2019
·
4 revisions
- Примет разбора сайта с сохранением в инфоблоки, а также с использованием IblockUtils
// test limits
$totalPages = TotisUaParserUtils::GetCountPagerFromList( str_replace('#POROG#', 0, $urlToDetailLinks) );
$porog = [0, $totalPages['totalSkip']];
for ($i = $porog[0]; $i <= $porog[1]; $i+=$totalPages['totalPageLinks']) {
$links = TotisUaParserUtils::GetDetailLinksFromPage( str_replace('#POROG#', $i, $urlToDetailLinks) );
foreach ($links as $link) {
if (! hiIU::checkElementExistsByNameOrCode($mainDomain . $link, $catalogIblockId, 'xml_id')) {
$arGood = TotisUaParserUtils::GetFromDetailPageGoodParts($mainDomain . $link);
if (trim($arGood['PROP_artikle']) == '') {
continue;
}
// save good to iblock
$r = hiIU::addElementToDb([
'IBLOCK_ID' => $catalogIblockId,
'ACTIVE' => 'Y',
'NAME' => $arGood['NAME'],
'PREVIEW_TEXT' => $arGood['PREVIEW_TEXT'],
'PREVIEW_TEXT_TYPE' => 'text',
'DETAIL_PICTURE' => \CFile::MakeFileArray($arGood['DETAIL_PICTURE']),
'XML_ID' => $arGood['XML_ID'],
'CODE' => \Hipot\Utils\UnsortedUtils::TranslitText($arGood['NAME'] . ' ' . $arGood['PROP_artikle'] . ' ' . randString(3)),
'DETAIL_TEXT' => $arGood['DETAIL_TEXT'],
'DETAIL_TEXT_TYPE' => 'html'
]);
if ($r->STATUS == 'OK') {
\CIBlockElement::SetPropertyValuesEx($r->RESULT, $catalogIblockId, [
'BRAND' => hiIU::addToHelperAndReturnElementId($arGood['PROP_manufacturer'], 5),
'COUNTRY' => hiIU::addToHelperAndReturnElementId($arGood['PROP_country'], 6),
'ARTNUMBER' => $arGood['PROP_artikle']
]);
hiIU::setSeoValues($catalogIblockId, $r->RESULT, [
'ELEMENT_META_DESCRIPTION' => $arGood['SEO_DESCRIPTION'],
'ELEMENT_META_TITLE' => $arGood['SEO_TITLE']
]);
}
echo $r->STATUS . ' ' . $r->RESULT . PHP_EOL;
}
}
}
echo 'goods done' . PHP_EOL;