⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.50
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
/
kronolith
/
lib
/
Block
/
Edit File: Summary.php
<?php /** * Block to display a summary of calendar items. */ class Kronolith_Block_Summary extends Horde_Core_Block { /** */ public function __construct($app, $params = array()) { parent::__construct($app, $params); if (!isset($this->_params['days'])) { $this->_params['days'] = 7; } $this->_name = _("Calendar Summary"); } /** */ protected function _params() { $params = array( 'calendar' => array( 'name' => _("Calendar"), 'type' => 'enum', 'default' => '__all' ), 'days' => array( 'name' => _("The time span to show"), 'type' => 'enum', 'default' => 7, 'values' => array( 1 => '1 ' . _("day"), 2 => '2 ' . _("days"), 3 => '3 ' . _("days"), 4 => '4 ' . _("days"), 5 => '5 ' . _("days"), 6 => '6 ' . _("days"), 7 => '1 ' . _("week"), 14 => '2 ' . _("weeks"), 21 => '3 ' . _("weeks"), 28 => '4 ' . _("weeks") ) ), 'maxevents' => array( 'name' => _("Maximum number of events to display (0 = no limit)"), 'type' => 'int', 'default' => 0 ), 'alarms' => array( 'name' => _("Show only events that have an alarm set?"), 'type' => 'checkbox', 'default' => 0 ) ); $params['calendar']['values']['__all'] = _("All Visible"); foreach (Kronolith::listCalendars(Horde_Perms::SHOW, true) as $id => $cal) { $params['calendar']['values'][$id] = $cal->name(); } return $params; } /** */ protected function _title() { $url = Horde::url($GLOBALS['registry']->getInitialPage(), true); if (isset($this->_params['calendar']) && $this->_params['calendar'] != '__all') { $url->add('display_cal', $this->_params['calendar']); } return $url->link() . htmlspecialchars($GLOBALS['registry']->get('name')) . '</a>'; } /** */ protected function _content() { $GLOBALS['page_output']->addScriptFile('tooltips.js', 'horde'); $now = new Horde_Date($_SERVER['REQUEST_TIME']); $today = date('j'); $startDate = new Horde_Date(array('year' => date('Y'), 'month' => date('n'), 'mday' => date('j'))); $endDate = new Horde_Date(array('year' => date('Y'), 'month' => date('n'), 'mday' => date('j') + $this->_params['days'])); try { if (isset($this->_params['calendar']) && $this->_params['calendar'] != '__all') { $calendars = Kronolith::listCalendars(); if (!isset($calendars[$this->_params['calendar']])) { return _("Calendar not found"); } if (!$calendars[$this->_params['calendar']]->hasPermission(Horde_Perms::READ)) { return _("Permission Denied"); } list($type, $calendar) = explode('_', $this->_params['calendar'], 2); $driver = Kronolith::getDriver($type, $calendar); $all_events = Kronolith::sortEvents( $driver->listEvents( $startDate, $endDate, array('show_recurrence' => true)) ); } else { $all_events = Kronolith::listEvents( $startDate, $endDate, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_CALENDARS)); } } catch (Exception $e) { return '<em>' . $e->getMessage() . '</em>'; } $html = ''; $iMax = $today + $this->_params['days']; $firstday = true; $totalevents = 0; for ($i = $today; $i < $iMax; ++$i) { $day = new Kronolith_Day(date('n'), $i); $date_stamp = $day->dateString(); if (empty($all_events[$date_stamp])) { continue; } $firstevent = true; $tomorrow = $day->getTomorrow(); foreach ($all_events[$date_stamp] as $event) { if (!empty($this->_params['maxevents']) && $totalevents >= $this->_params['maxevents']) { break 2; } if ($event->start->compareDate($day) < 0) { $event->start = $day; } if ($event->end->compareDate($tomorrow) >= 0) { $event->end = $tomorrow; } if ($event->end->compareDateTime($now) < 0) { continue; } if (!empty($this->_params['alarms']) && !$event->alarm) { continue; } $event_active = $event->start->compareDateTime($now) < 0 && $event->end->compareDateTime($now) > 0; if ($firstevent) { $html .= '<tr><td colspan="3" class="control"><strong>'; if ($day->isToday()) { $dayname = _("Today"); } elseif ($day->isTomorrow()) { $dayname = _("Tomorrow"); } elseif ($day->diff() < 7) { $dayname = $day->strftime('%A'); } else { $dayname = $day->strftime($GLOBALS['prefs']->getValue('date_format')); } $url = Horde::url('day.php', true) ->setRaw(false) ->add('date', $day->dateString()); if (isset($this->_params['calendar']) && $this->_params['calendar'] != '__all') { $url->add('display_cal', $this->_params['calendar']); } $html .= $url->link(array('title' => sprintf(_("Goto %s"), $dayname))) . $dayname . '</a></strong></td></tr>'; $firstevent = false; $firstday = false; } $html .= '<tr class="linedRow"><td class="text nowrap" valign="top">'; if ($event_active) { $html .= '<strong>'; } if ($event->isAllDay()) { $time = _("All day"); } else { $time = $event->start->format($GLOBALS['prefs']->getValue('twentyFour') ? 'H:i' : 'h:ia') . '-' . $event->end->format($GLOBALS['prefs']->getValue('twentyFour') ? 'H:i' : 'h:ia'); } $html .= $time; if ($event_active) { $html .= '</strong>'; } $html .= ' </td>'; $html .= '<td class="text" valign="top"' . $event->getCSSColors() . '>'; if ($event_active) { $html .= '<strong>'; } $html .= ' ' . $event->getLink(null, true, null, true, true); if ($event_active) { $html .= '</strong>'; } $html .= '</td></tr>'; $totalevents++; } } if (empty($html)) { return '<em>' . _("No events to display") . '</em>'; } return '<table cellspacing="0" width="100%">' . $html . '</table>'; } }
Simpan