コード例 #1
0
 public static function processLocations()
 {
     $sublets = self::$coll->find();
     $cityStateCounts = [];
     foreach ($sublets as $sublet) {
         if (empty($sublet['address']) || empty($sublet['city']) || empty($sublet['state'])) {
             continue;
         }
         $address = $sublet['address'];
         $city = $sublet['city'];
         $state = $sublet['state'];
         $location = "{$address}, {$city}, {$state}";
         $geocode = GeocodeModel::get($location);
         if (is_null($geocode)) {
             continue;
         }
         $cityState = strtolower(getCityStateFromGeocode($geocode));
         if (isset($cityStateCounts[$cityState])) {
             $cityStateCounts[$cityState]++;
         } else {
             $cityStateCounts[$cityState] = 1;
         }
     }
     arsort($cityStateCounts);
     return $cityStateCounts;
 }
コード例 #2
0
ファイル: Geocode.php プロジェクト: davidliuliuliu/sublite
 private static function getGeocodeJSON($location)
 {
     $geocode = geocodeJSON($location);
     if (is_null($geocode)) {
         return null;
     }
     // Store the geocode for the location.
     GeocodeModel::record($location, $geocode);
     return $geocode;
 }
コード例 #3
0
 public static function processLocations()
 {
     $jobs = self::$coll->find();
     $cityStateCounts = [];
     foreach ($jobs as $job) {
         if (empty($job['location'])) {
             continue;
         }
         $location = $job['location'];
         $geocode = GeocodeModel::get($location);
         if (is_null($geocode)) {
             continue;
         }
         $cityState = strtolower(getCityStateFromGeocode($geocode));
         if (isset($cityStateCounts[$cityState])) {
             $cityStateCounts[$cityState]++;
         } else {
             $cityStateCounts[$cityState] = 1;
         }
     }
     arsort($cityStateCounts);
     return $cityStateCounts;
 }
コード例 #4
0
 public static function init(MongoCollection $coll)
 {
     self::$coll = $coll;
 }
コード例 #5
0
 public static function processByStudent($email)
 {
     $subletLocations = [];
     $jobLocations = [];
     $jobIndustries = [];
     foreach (self::$searches as $time => $search) {
         if (!is_array($search)) {
             continue;
         }
         if ($search['email'] != $email) {
             continue;
         }
         switch ($search['type']) {
             case 'sublets':
                 if (!empty($search['data']['location'])) {
                     $location = strtolower($search['data']['location']);
                     // Location to geocode, to City, State.
                     $geocode = GeocodeModel::get($location);
                     if (is_null($geocode)) {
                         continue;
                     }
                     $cityState = strtolower(getCityStateFromGeocode($geocode));
                     if (isset($subletLocations[$cityState])) {
                         $subletLocations[$cityState]++;
                     } else {
                         $subletLocations[$cityState] = 1;
                     }
                 }
                 break;
             case 'jobs':
                 if (!empty($search['data']['city'])) {
                     $location = strtolower($search['data']['city']);
                     // Location to geocode, to City, State.
                     $geocode = GeocodeModel::get($location);
                     if (is_null($geocode)) {
                         continue;
                     }
                     $cityState = strtolower(getCityStateFromGeocode($geocode));
                     if (isset($jobLocations[$cityState])) {
                         $jobLocations[$cityState]++;
                     } else {
                         $jobLocations[$cityState] = 1;
                     }
                 }
                 if (!empty($search['data']['industry'])) {
                     $industry = strtolower($search['data']['industry']);
                     if (isset($jobIndustries[$industry])) {
                         $jobIndustries[$industry]++;
                     } else {
                         $jobIndustries[$industry] = 1;
                     }
                 }
                 break;
         }
     }
     arsort($subletLocations);
     arsort($jobLocations);
     arsort($jobIndustries);
     return ['subletLocations' => $subletLocations, 'jobLocations' => $jobLocations, 'jobIndustries' => $jobIndustries];
 }
コード例 #6
0
ファイル: index.php プロジェクト: davidliuliuliu/sublite
// Imports the MongoURI for the database.
require_once 'geocode.php';
require_once 'DeciderSublets.php';
require_once 'DeciderJobs.php';
require_once 'DeciderStudent.php';
// Connect to the databases.
$m1 = new MongoClient($dbUri1);
$m2 = new MongoClient($dbUri2);
$db1 = $m1->sublite;
$db2 = $m2->subliteinternships;
$collListings = $db1->listings;
$collJobs = $db2->jobs;
$collCompanies = $db2->companies;
$collGeocodes = $db1->geocodes;
$collGeocodes->createIndex(['location' => 1]);
GeocodeModel::init($collGeocodes);
// Get the search data.
$searches0 = $db2->app->findOne(['_id' => 'searches']);
$searches1 = $db2->app->findOne(['_id' => 'searches1']);
$searches2 = $db2->app->findOne(['_id' => 'searches2']);
$searches = array_merge($searches0, $searches1, $searches2);
ProcessSearch::init($searches);
if (isset($_POST['goal'])) {
    switch ($_POST['goal']) {
        case 'sublets':
            require_once 'decide_sublets.php';
            break;
        case 'jobs':
            require_once 'decide_jobs.php';
            break;
        case 'student':