Прошу помочь чуть-чуть доработать

Сейчас обновляются цены cron, нужно каждый раз чистить колонку рублевую, хотел бы чтобы обновлялись только те у которых tv price_eur что-то содержит, а остальное не трогалось. Помогите, пожалуйста)
<?php
$ids = $modx->runSnippet('pdoResources', array(
	 'parents'=>0,
	 'templates'=>8,
	 'limit'=>0,
	 'returnIds'=>1
));
$arr = explode(',', $ids);
$rate = $modx->runSnippet('CRcalc', array('input'=>1, 'multiplier'=>'EUR'));
foreach($arr as $id){
	$resource = $modx->getObject('modResource', $id); 
	if($resource->getTVValue('price')) continue;
	$price_eur = $resource->getTVValue('price_eur');
	$price_rub = $price_eur*$rate; 
	$resource->setTVValue('price', $price_rub); 
}
Evgeny
01 марта 2020, 19:26
modx.pro
668
0

Комментарии: 5

Станислав
01 марта 2020, 19:32
0
Может быть вот так
<?php
$ids = $modx->runSnippet('pdoResources', array(
	 'parents'=>0,
	 'templates'=>8,
	 'limit'=>0,
	 'returnIds'=>1
));
$arr = explode(',', $ids);
$rate = $modx->runSnippet('CRcalc', array('input'=>1, 'multiplier'=>'EUR'));
foreach($arr as $id){
	$resource = $modx->getObject('modResource', $id); 
         if ($resource->getTVValue('price_eur') != 0 && $resource->getTVValue('price_eur') != '') { 
	    if($resource->getTVValue('price')) continue;                  
            $price_eur = $resource->getTVValue('price_eur');
            $price_rub = $price_eur*$rate; 
	    $resource->setTVValue('price', $price_rub); 
        }
}
    Evgeny
    01 марта 2020, 20:06
    0
    не перезаписывает поле если уже заполнено tv price(
    убирал if($resource->getTVValue('price')) continue; не помогло
      Станислав
      01 марта 2020, 20:13
      0
      <?php
      $ids = $modx->runSnippet('pdoResources', array(
      	 'parents'=>0,
      	 'templates'=>8,
      	 'limit'=>0,
      	 'returnIds'=>1
      ));
      $arr = explode(',', $ids);
      $rate = $modx->runSnippet('CRcalc', array('input'=>1, 'multiplier'=>'EUR'));
      foreach($arr as $id){
      	$resource = $modx->getObject('modResource', $id); 
               if ($resource->getTVValue('price_eur') != 0 && $resource->getTVValue('price_eur') != '') { 
      	    if($resource->getTVValue('price')) continue;                  
                  $price_eur = $resource->getTVValue('price_eur');
                  $price_rub = $price_eur*$rate; 
      	    $resource->setTVValue('price', $price_rub); 
              } else {
                  if($resource->getTVValue('price')) continue;        
                  $resource->setTVValue('price', $price_rub); 
              }
      }
        Evgeny
        01 марта 2020, 20:50
        0
        неа, всё равно если заполнено поле price то оно не обновляется
          Станислав
          01 марта 2020, 20:55
          0
          whatsapp +79195151313 помогу чем смогу
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5