public function setLatinaPresenterDataFile($var_name = "presente_data", $market_id = 1) { try { $db = $this->Presenter->getDataSource(); $query = $db->fetchAll("SELECT\n\t\t\t\t\t\tp.id as presenter_id\n\t\t\t\t\t\t, p.presenter_sequence_id as presenter_sequence_id\n\t\t\t\t\t\t, geo.lat as lat\n\t\t\t\t\t\t, geo.lng as lng\n\t\t\t\t\t\t, MAX(pt.presentertypes_id) as presntertype_id\n\t\t\t\t\t\t, s.abbrev as state\n\t\t\t\t\t\t, a.city as city\n\t\t\t\t\t\tFROM presenters p\n\t\t\t\t\t\tLEFT JOIN users u on u.id=p.user_id\n\t\t\t\t\t\tLEFT JOIN addresses a on a.user_id=u.id AND a.address_type_id = 1\n\t\t\t\t\t\tLEFT JOIN address_geocodes geo on geo.address_id=a.id\n\t\t\t\t\t\tLEFT JOIN states s on s.id = a.state_id\n\t\t\t\t\t\tLEFT JOIN presenter_types as pt on pt.presenter_id = p.id\n\t\t\t\t\t\tWHERE p.presenter_status_id = " . PresenterStatus::COMPLETE . "\n\t\t\t\t\t\t\tAND p.market_id = {$market_id}\n\t\t\t\t\t\t\t AND p.default_locale = 'es_US'\n\t\t\t\t\t\tGROUP BY p.id\n\t\t\t\t\t\tORDER BY a.id DESC, geo.id DESC"); foreach ($query as $value) { $results[] = array('presenter_id' => $value['p']['presenter_id'], 'lat' => $value['geo']['lat'], 'lng' => $value['geo']['lng'], 'presentertype_id' => $value['0']['presntertype_id'], 'city' => $value['a']['city'], 'state' => $value['s']['state']); } } catch (Exception $e) { $this->out("Error getting list of Presenters."); } //create the file $string = 'var ' . $var_name . ' = {"code":200,"result":'; $string .= json_encode($results); $string .= "};"; if (YOUNIQUE_TESTSERVER === true) { $filename = "test_latina_presenter_data_{$market_id}"; } else { $filename = "latina_presenter_data_{$market_id}"; } try { $s3 = new AmazonS3(array("key" => "AKIAJVCBLQ3VQQS3DJHA", "secret" => "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")); $s3->disable_ssl_verification(); $bucket = "younique-map-data"; if ($s3->if_bucket_exists($bucket)) { $result = $s3->create_object($bucket, $filename, array('body' => $string, 'contentType' => 'text/plain', 'length' => strlen($string), 'acl' => AmazonS3::ACL_PUBLIC)); if ($result->isOK()) { $this->out("Presenter map updated for market " . $market_id); } else { $this->out("AS3 error:" . var_export($result->body->Message, true)); } } else { $this->out("AS3 error:" . "No bucket"); } } catch (Exception $e) { $this->out("AS3 error:" . var_export($e->getMessage(), true)); } }
/** * get s3 file info */ function mgm_get_s3file_info($fileurl) { // system $system_obj = mgm_get_class('system'); // set keys $aws_key = $system_obj->get_setting('aws_key'); $aws_secret_key = $system_obj->get_setting('aws_secret_key'); // Include the SDK require_once MGM_LIBRARY_DIR . 'third_party/awssdk/sdk.class.php'; // s3 object $s3 = new AmazonS3($aws_key, $aws_secret_key); // disable ssl verification if no ssl if (!extension_loaded('openssl')) { $s3->disable_ssl_verification(); } // get urlpath $urlpath = parse_url($fileurl, PHP_URL_PATH); // get parts $url_parts = explode('/', $urlpath); // get bucket from url do { $bucket = array_shift($url_parts); } while (empty($bucket)); // filename, including path $filename = implode('/', $url_parts); // object $s3_info = new stdClass(); // set vars $s3_info->s3 = $s3; $s3_info->bucket = $bucket; $s3_info->filename = $filename; // return return $s3_info; }