⚝
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
/
Form
/
View File Name :
EditCalendar.php
* @package Kronolith */ class Kronolith_Form_EditCalendar extends Horde_Form { /** * Calendar being edited. * * @var Horde_Share_Object */ protected $_calendar; public function __construct($vars, $calendar) { global $conf, $injector, $registry; $this->_calendar = $calendar; $owner = $calendar->get('owner') == $registry->getAuth() || (is_null($calendar->get('owner')) && $registry->isAdmin()); parent::__construct( $vars, $owner ? sprintf(_("Edit %s"), $calendar->get('name')) : $calendar->get('name') ); $this->addHidden('', 'c', 'text', true); $this->addVariable(_("Name"), 'name', 'text', true); if (!$owner) { $v = $this->addVariable(_("Owner"), 'owner', 'text', false); $owner_name = $injector ->getInstance('Horde_Core_Factory_Identity') ->create($calendar->get('owner')) ->getValue('fullname'); if (trim($owner_name) == '') { $owner_name = $calendar->get('owner'); } $v->setDefault($owner_name ? $owner_name : _("System")); } $this->addVariable(_("Color"), 'color', 'colorpicker', false); if ($registry->isAdmin()) { $this->addVariable(_("System Calendar"), 'system', 'boolean', false, false, _("System calendars don't have an owner. Only administrators can change the calendar settings and permissions.")); } $this->addVariable(_("Description"), 'description', 'longtext', false, false, null, array(4, 60)); $this->addVariable(_("Tags"), 'tags', 'Kronolith:KronolithTags', false); /* Display URL. */ $url = Horde::url('month.php', true, -1) ->add('display_cal', $calendar->getName()); $this->addVariable( _("Display URL"), '', 'link', false, false, null, array(array( 'url' => $url, 'text' => $url, 'title' => _("Click or copy this URL to display this calendar"), 'target' => '_blank') ) ); /* Subscription URLs. */ $url = $registry->get('webroot', 'horde'); if (isset($conf['urls']['pretty']) && $conf['urls']['pretty'] == 'rewrite') { $webdavUrl = $url . '/rpc/kronolith/'; $caldavUrl = $url . '/rpc/calendars/'; $accountUrl = $url . '/rpc/'; } else { $webdavUrl = $url . '/rpc.php/kronolith/'; $caldavUrl = $url . '/rpc.php/calendars/'; $accountUrl = $url . '/rpc.php/'; } try { $accountUrl = Horde::url($accountUrl, true, -1) . 'principals/' . $registry->convertUsername($registry->getAuth(), false) . '/'; $caldavUrl = Horde::url($caldavUrl, true, -1) . $registry->convertUsername($registry->getAuth(), false) . '/' . $injector->getInstance('Horde_Dav_Storage')->getExternalCollectionId($calendar->getName(), 'calendar') . '/'; $this->addVariable( _("CalDAV Subscription URL"), '', 'link', false, false, null, array(array( 'url' => $caldavUrl, 'text' => $caldavUrl, 'title' => _("Copy this URL to a CalDAV client to subscribe to this calendar"), 'target' => '_blank') ) ); $this->addVariable( _("CalDAV Account URL"), '', 'link', false, false, null, array(array( 'url' => $accountUrl, 'text' => $accountUrl, 'title' => _("Copy this URL to a CalDAV client to subscribe to all your calendars"), 'target' => '_blank') ) ); } catch (Horde_Exception $e) { } $webdavUrl = Horde::url($webdavUrl, true, -1) . ($calendar->get('owner') ? $registry->convertUsername($calendar->get('owner'), false) : '-system-') . '/' . $calendar->getName() . '.ics'; $this->addVariable( _("WebDAV/ICS Subscription URL"), '', 'link', false, false, null, array(array( 'url' => $webdavUrl, 'text' => $webdavUrl, 'title' => _("Copy this URL to a WebDAV or ICS client to subscribe to this calendar"), 'target' => '_blank') ) ); /* Feed URL. */ $url = Kronolith::feedUrl($calendar->getName()); $this->addVariable( _("Feed URL"), '', 'link', false, false, null, array(array( 'url' => $url, 'text' => $url, 'title' => _("Copy this URL to a news feed reader to subscribe to this calendar"), 'target' => '_blank') ) ); /* Embed code. */ $v = $this->addVariable( _("Embed code"), '', 'longtext', false, false, _("To embed this calendar in another website, use the code above."), array(4, 60)); $v->setHelp('embed'); $v->setDefault(Kronolith::embedCode($calendar->getName())); /* Permissions link. */ if (empty($conf['share']['no_sharing']) && $owner) { $url = Horde::url('perms.php')->add('share', $calendar->getName()); $this->addVariable( '', '', 'link', false, false, null, array(array( 'url' => $url, 'text' => _("Change Permissions"), 'onclick' => Horde::popupJs( $url, array('params' => array('urlencode' => true))) . 'return false;', 'class' => 'horde-button', 'target' => '_blank') ) ); } $this->setButtons(array( _("Save"), array('class' => 'horde-delete', 'value' => _("Delete")), array('class' => 'horde-cancel', 'value' => _("Cancel")) )); } /** * @throws Kronolith_Exception */ public function execute() { switch ($this->_vars->submitbutton) { case _("Save"): $info = array(); foreach (array('name', 'color', 'description', 'tags', 'system') as $key) { $info[$key] = $this->_vars->get($key); } Kronolith::updateShare($this->_calendar, $info); break; case _("Delete"): Horde::url('calendars/delete.php') ->add('c', $this->_vars->c) ->redirect(); break; case _("Cancel"): Horde::url($GLOBALS['prefs']->getValue('defaultview') . '.php', true) ->redirect(); break; } } public function renderActive() { return parent::renderActive( $this->getRenderer(array('varrenderer_driver' => array('kronolith', 'kronolith'))), $this->_vars); } }