<td>Telefon:</td> <td><?php echo ""; ?> </td> </tr> </table> <h2>Åpningstider</h2> <?php // Henter inn åpningstider $opening_hours = $db_handler->getOpeningHours($company->getCompanyId()); $opening_hours_day = array("monday" => "Mandag", "tuesday" => "Tirsdag", "wednesday" => "Onsdag", "thursday" => "Torsdag", "friday" => "Fredag", "saturday" => "Lørdag", "sunday" => "Søndag"); // Henter åpent-status $open_now = OpenHandler::getOpenStatus($opening_hours); // Skriver ut om bedriften er åpen nå eller ikke if (isset($open_now)) { if ($open_now) { $open_now_status = "Åpen"; } else { $open_now_status = "Stengt"; } echo "Bedriften er: <b>" . $open_now_status . "</b>."; } ?> <br /><br /> <?php // Skriver ut åpningstider
public static function getClosestBasedOnAddress($fromAddress, $travelMode) { global $db; global $db_handler; global $ip; // Lager arrays for å lagre nærmeste bedrifter $fastfoodCompanyId = array(); $fastfoodAddresses = array(); $fastfoodInfo = array(); $fastFoodName = array(); $fastFoodOpenStatus = array(); // Legger til informasjon om hvilken adresse distansene er beregnet fra $fastfoodInfo[] = array('name' => $db_handler->getPostalName($fromAddress->getPostalCode()), 'address' => $fromAddress->getFullAddress(), 'distance' => "0", 'duration' => "0"); // Retter opp tegnsett-problemer $db->query("set names 'utf8'"); $sql = "SELECT *, ( 6371 * acos( cos( radians(" . $db->real_escape_string($fromAddress->getLatitude()) . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $db->real_escape_string($fromAddress->getLongitude()) . ") ) + sin( radians(" . $db->real_escape_string($fromAddress->getLatitude()) . ") ) * sin( radians( lat ) ) ) ) AS distance FROM companies ORDER BY distance ASC LIMIT 0,5"; $result = $db->query($sql); if (!$result) { echo "ERROR!: " . $db->error; die; } // Legger til alle resultater fra databasen i en array if ($result != null) { while (($row = $result->fetch_assoc()) !== null) { $fastfoodCompanyId[] = $row['id']; $fastfoodAddresses[] = $row['adresse'] . ", " . $row['postnr'] . ", Norge"; $fastfoodAddressesShort[] = $row['adresse'] . ", " . $row['postnr'] . " " . $db_handler->getPostalName($row['postnr']); $fastfoodName[] = $row['navn']; $fastFoodOpenStatus[] = OpenHandler::getOpenStatus($db_handler->getOpeningHours($row['id'])); } } else { echo "ingen resultater"; } // Går gjennom alle adressene og finner hvilke som er nærmest (basert på reisetid) for ($i = 0; $i < sizeOf($fastfoodAddresses); $i++) { $toAddressOriginal = $fastfoodAddresses[$i]; $fromAddressStr = str_replace(' ', '%20', $fromAddress->getFullAddress()); $toAddress = str_replace(' ', '%20', $toAddressOriginal); $distanceUrl = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=" . $fromAddressStr . "&destinations=" . $toAddress . "&mode=" . $travelMode . "&language=no_NO"; if ($travelMode == "transit") { $distanceUrl .= "&key=AIzaSyBmk1TB45rSKaVCZW8ENNvhXuM86RpdAHc"; } // API-key er nødvendig for transit $json = file_get_contents($distanceUrl); $data = json_decode($json, true); $distance = $data['rows'][0]['elements'][0]['distance']['text']; $travelTime = $data['rows'][0]['elements'][0]['duration']['text']; // Legger til informasjonen som ble hentet i en array $fastfoodInfo[] = array('company_id' => $fastfoodCompanyId[$i], 'name' => $fastfoodName[$i], 'address' => $fastfoodAddressesShort[$i], 'distance' => $distance, 'duration' => $travelTime, 'open_status' => $fastFoodOpenStatus[$i]); } //usort($fastfoodInfo, 'sortByOrder'); // Lagrer informasjon om søket til databasen $db_handler->saveSearchAddress($ip, $fromAddress->getStreetAddress(), $fromAddress->getPostalCode()); // Returnerer array som inneholder de nærmeste bedriftene return $fastfoodInfo; }