public static function updateSites($campaignID) { $modelCampaign = Campaign::model()->with('domain')->cache()->findByPk($campaignID); if (!$modelCampaign) { return false; } $db = SafeMySQL::getInstance(); $sql = "SELECT c.`url`,\n c.`campaign_id`,\n c.`country_id`,\n c.`currency_id`\n FROM `campaigns` as c\n WHERE c.`domain_id` = ?i"; $campaigns = $db->getAll($sql, $modelCampaign->domain_id); $rArray = array(); $cIDs = array(); foreach ($campaigns as $campaign) { $cIDs[] = $campaign['campaign_id']; $rArray[$campaign['campaign_id']] = array('main' => array('path' => $campaign['url'], 'campaign_id' => $campaign['campaign_id'], 'country_id' => $campaign['country_id'], 'currency_id' => $campaign['currency_id']), 'products' => array(), 'custom_fields' => array()); $sql = "SELECT `name`, `value`\n FROM `site_variables`\n WHERE (`domain_id`=?i AND`campaign_id`=?i)\n OR (`domain_id`=?i AND `campaign_id` IS NULL)\n OR (`domain_id` IS NULL AND `campaign_id` IS NULL)"; $customFields = $db->getAll($sql, $modelCampaign->domain_id, $campaign['campaign_id'], $modelCampaign->domain_id); if ($customFields) { foreach ($customFields as $field) { $rArray[$campaign['campaign_id']]['custom_fields'][$field['name']] = $field['value']; } } } $sql = "SELECT p.`product_id`,\n p.`prodcat_id`,\n p.`product_name`,\n p.`product_price`,\n p.`product_weight`,\n p.`product_next_id`,\n p.`subscription_days`,\n cp.`campaign_id`\n FROM `products` as p\n JOIN `campaigns_products` as cp USING (`product_id`)\n WHERE cp.`campaign_id` IN (?a)\n AND cp.`enabled` = 1\n AND cp.`upsell_id` IS NULL"; $products = $db->getAll($sql, $cIDs); if ($products) { foreach ($products as $product) { $campaignID = $product['campaign_id']; unset($product['campaign_id']); array_push($rArray[$campaignID]['products'], $product); } } $siteApi = new SiteApi(); if (!$siteApi->createFile(json_encode($rArray))) { //save an error to the log file //.. return false; } $siteApi->domain = $modelCampaign->domain->url; $siteApi->update(); }