⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.97
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
lib
/
Block
/
Edit File: Sunrise.php
<?php /** * @package Horde */ class Horde_Block_Sunrise extends Horde_Core_Block { /** */ public function __construct($app, $params = array()) { parent::__construct($app, $params); $this->_name = _("Sunrise/Sunset"); } /** */ protected function _params() { $params = array( 'location' => array( 'type' => 'mlenum', 'name' => _("Location"), 'default' => '51.517:-0.117' ) ); global $coordinates; if (!is_array($coordinates)) { include 'Horde/Nls/Coordinates.php'; if (!is_array($coordinates)) { $coordinates = array(); } } $params['location']['values'] = $coordinates; return $params; } /** */ protected function _content() { if (empty($this->_params['location'])) { throw new Horde_Exception(_("No location is set.")); } // Set the timezone variable, if available. $GLOBALS['registry']->setTimeZone(); list($lat, $long) = explode(':', $this->_params['location']); $rise = $this->_calculateSunset(time(), $lat, $long, false, floor(date('Z') / 3600)); $set = $this->_calculateSunset(time(), $lat, $long, true, floor(date('Z') / 3600)); $location = ''; global $coordinates; if (!is_array($coordinates)) { require 'Horde/Nls/Coordinates.php'; } foreach ($coordinates as $country) { if (array_key_exists($this->_params['location'], $country)) { $location = $country[$this->_params['location']]; break; } } return '<table width="100%" height="100%" cellspacing="0"><tr>' . '<td colspan="2" class="control"><strong>' . $location . '</strong></td></tr><tr height="100%">' . '<td width="50%" align="center">' . Horde_Themes_Image::tag('block/sunrise/sunrise.png', array('alt' => _("Sun Rise"))) . '<br />' . $rise . '</td>' . '<td width="50%" align="center">' . Horde_Themes_Image::tag('block/sunrise/sunset.png', array('alt' => _("Sun Set"))) . '<br />' . $set . '</td>' . '</tr></table>'; } /** * http://www.zend.com/codex.php?id=135&single=1 */ private function _calculateSunset($date, $latitude, $longitude, $sunset = true, $timezone) { $yday = date('z', $date); $mon = date('n', $date); $mday = date('j', $date); $year = date('Y', $date); if ($timezone == '13') { $timezone = '-11'; $mday++; $yday++; } $A = 1.5708; $B = 3.14159; $C = 4.71239; $D = 6.28319; $E = 0.0174533 * $latitude; $F = 0.0174533 * $longitude; $G = 0.261799 * $timezone; // For astronomical twilight, use R = -.309017 // For nautical twilight, use R = -.207912 // For civil twilight, use R = -.104528 // For sunrise or sunset, use R = -.0145439 $R = -.0145439; if ($sunset) { $J = $C; } else { $J = $A; } $K = $yday + (($J - $F) / $D); $L = ($K * .017202) - .0574039; // Solar Mean Anomoly $M = $L + .0334405 * sin($L); // Solar True Longitude $M += 4.93289 + (3.49066E-04) * sin(2 * $L); // Quadrant Determination while ($M < 0) { $M = ($M + $D); } while ($M >= $D) { $M = ($M - $D); } if (($M / $A) - intval($M / $A) == 0) { $M += 4.84814E-06; } $P = sin($M) / cos($M); // Solar Right Ascension $P = atan2(.91746 * $P, 1); // Quadrant Adjustment if ($M > $C) { $P += $D; } elseif ($M > $A) { $P += $B; } $Q = .39782 * sin($M); // Solar Declination $Q = $Q / sqrt(-$Q * $Q + 1); // This is how the original author wrote it! $Q = atan2($Q, 1); $S = $R - (sin($Q) * sin($E)); $S = $S / (cos($Q) * cos($E)); if (abs($S) > 1) { return 'none'; // Null phenomenon } $S = $S / sqrt(-$S * $S + 1); $S = $A - atan2($S, 1); if (!$sunset) { $S = $D - $S ; } $T = $S + $P - 0.0172028 * $K - 1.73364; // Local apparent time $U = $T - $F; // Universal timer $V = $U + $G; // Wall clock time // Quadrant Determination while ($V < 0) { $V = ($V + $D); } while ($V >= $D) { $V = ($V - $D); } $V = $V * 3.81972; $hour = intval($V); $V -= $hour; $min = intval($V * 60); $V -= $min / 60; $sec = intval($V * 3600); return strftime('%X', mktime($hour, $min, $sec, $mon, $mday, $year)); } }
Simpan