switch($modx->event->name){
case 'mSyncOnBeforeImport':
switch($mode){
case 'catalog':
$document = new DOMDocument();
$modx->log(4,$filename);
$document->load($filename);
$documentElement = $document->documentElement;
$tovari = $documentElement->getElementsByTagName('Товары')->item(0);
$arrUsedId = array();
$arrTovar = $tovari->getElementsByTagName('Товар');
for ( $i = $arrTovar->length; --$i >= 0; ) {
$tovar = $arrTovar->item($i);
$modx->log(4,'id'.$tovar->getElementsByTagName('Ид')->nodeValue);
$modx->log(4,'id#'.strstr((string)$tovar->getElementsByTagName('Ид')->nodeValue,'#',true));
//перебор всех попавшихся id
foreach($arrUsedId as $id)
if((strpos($tovar->getElementsByTagName('Ид')->nodeValue,$id) === false)){
//удаляем товар если id товара совпадает с одним их тех что уже когда-то был
$tovar->parentNode->removeChild($tovar);
break;
}
else{
//проверяем есть ли разделение решёткой т.к. только товары которые имеют в ид решётку имеют модификации
if(!(strpos($tovar->getElementsByTagName('Ид')->nodeValue,'#') === false)){
//добавляем ид товара до решётки
array_push($arrUsedId,strstr((string)$tovar->getElementsByTagName('Ид')->nodeValue,'#',true));
}
else{
//если нет решётки всёравно добавляем)
array_push($arrUsedId,(string)$tovar->getElementsByTagName('Ид')->nodeValue);
}
}
}
file_put_contents($filename, $document->saveXML());
break;
case 'offers':
break;
}
break;
php, mSyncOnBeforeImport и XML
Версия MODX: Все
Есть XML файл выгрузки товаров с 1С. Мне нужно написать свой обработчик под свои нужды. Могу ли я как-то менять XML файл?
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Комментарии (0)