public static function updateAgent() { $engine = new self(); if ($engine->getAuthSettings()) { try { $dbRes = YandexCampaignTable::getList(array('filter' => array('<LAST_UPDATE' => DateTime::createFromTimestamp(time() - YandexCampaignTable::CACHE_LIFETIME), '=ENGINE_ID' => $engine->getId()), 'select' => array('CNT'), 'runtime' => array(new ExpressionField('CNT', 'COUNT(*)')))); $res = $dbRes->fetch(); if ($res['CNT'] > 0) { $engine->updateCampaignManual(); } $availableCampaigns = array(); $campaignList = $engine->getCampaignList(); foreach ($campaignList as $campaignInfo) { $availableCampaigns[] = $campaignInfo['CampaignID']; } if (count($availableCampaigns) > 0) { $dbRes = YandexBannerTable::getList(array('group' => array('CAMPAIGN_ID'), 'filter' => array('<LAST_UPDATE' => DateTime::createFromTimestamp(time() - YandexBannerTable::CACHE_LIFETIME), '=ENGINE_ID' => $engine->getId(), '=CAMPAIGN.XML_ID' => $availableCampaigns), 'select' => array('CAMPAIGN_ID'))); $campaignId = array(); while ($res = $dbRes->fetch()) { $campaignId[] = $res['CAMPAIGN_ID']; } if (count($campaignId) > 0) { $engine->updateBannersManual($campaignId); } } } catch (YandexDirectException $e) { } } return __CLASS__ . "::updateAgent();"; }