}
// Get the current attendees array from the session cache.
-$attendees = (isset($_SESSION['kronolith']['attendees']) &&
- is_array($_SESSION['kronolith']['attendees']))
- ? $_SESSION['kronolith']['attendees']
- : array();
+$attendees = $session['kronolith:attendees;array'];
+$resources = $session['kronolith:resources;array'];
$editAttendee = null;
-$resources = (isset($_SESSION['kronolith']['resources']) &&
- is_array($_SESSION['kronolith']['resources']))
- ? $_SESSION['kronolith']['resources']
- : array();
-
// Get the action ID and value. This specifies what action the user initiated.
$actionID = Horde_Util::getFormData('actionID');
if (Horde_Util::getFormData('clearAll')) {
$newAttendees = Kronolith::parseAttendees($newAttendees);
if ($newAttendees) {
- $_SESSION['kronolith']['attendees'] = $attendees + $newAttendees;
+ $session['kronolith:attendees'] = $attendees + $newAttendees;
}
// Any new resources?
'name' => $resource->get('name'),
);
- $_SESSION['kronolith']['resources'] = $resources;
+ $session['kronolith:resources'] = $resources;
}
if (Horde_Util::getFormData('addNewClose')) {
: ' <' . $actionValue . '>'));
}
unset($attendees[$actionValue]);
- $_SESSION['kronolith']['attendees'] = $attendees;
+ $session['kronolith:attendees'] = $attendees;
}
break;
$actionValue = Horde_String::lower($actionValue);
if (isset($attendees[$actionValue])) {
unset($attendees[$actionValue]);
- $_SESSION['kronolith']['attendees'] = $attendees;
+ $session['kronolith:attendees'] = $attendees;
}
break;
// Remove the specified resource
if (isset($resources[$actionValue])) {
unset($resources[$actionValue]);
- $_SESSION['kronolith']['resources'] = $resources;
+ $session['kronolith:resources'] = $resources;
}
break;
list($partval, $partname) = explode(' ', $actionValue, 2);
if (isset($resources[$partname])) {
$resources[$partname]['response'] = $partval;
- $_SESSION['kronolith']['resources'] = $resources;
+ $session['kronolith:resources'] = $resources;
}
break;
$partname = Horde_String::lower($partname);
if (isset($attendees[$partname])) {
$attendees[$partname]['attendance'] = $partval;
- $_SESSION['kronolith']['attendees'] = $attendees;
+ $session['kronolith:attendees'] = $attendees;
}
break;
$partname = Horde_String::lower($partname);
if (isset($resources[$partname])) {
$resources[$partname]['attendance'] = $partval;
- $_SESSION['kronolith']['resources'] = $resources;
+ $session['kronolith:resources'] = $resources;
}
break;
$partname = Horde_String::lower($partname);
if (isset($attendees[$partname])) {
$attendees[$partname]['response'] = $partval;
- $_SESSION['kronolith']['attendees'] = $attendees;
+ $session['kronolith:attendees'] = $attendees;
}
break;
case 'clear':
// Remove all the attendees and resources.
- $_SESSION['kronolith']['attendees'] = $_SESSION['kronolith']['resources'] = array();
+ unset($session['kronolith:attendees'], $session['kronolith:resources']);
break;
}
}
// Add the Free/Busy information for each attendee.
-foreach ($_SESSION['kronolith']['attendees'] as $email => $status) {
+foreach ($session['kronolith:attendees;array'] as $email => $status) {
if (strpos($email, '@') !== false &&
($status['attendance'] == Kronolith::PART_REQUIRED ||
$status['attendance'] == Kronolith::PART_OPTIONAL)) {
return $result;
}
$tasklist = $tasklists[$tasklistId];
- $_SESSION['all_external_calendars']['tasks/' . $tasklistId] = new Kronolith_Calendar_External(array('api' => 'tasks', 'name' => $tasklist->get('name')));
+ //$GLOBALS['session']['kronolith:all_external_calendars']['tasks/' . $tasklistId] = new Kronolith_Calendar_External(array('api' => 'tasks', 'name' => $tasklist->get('name')));
$GLOBALS['display_external_calendars'][] = 'tasks/' . $tasklistId;
$GLOBALS['prefs']->setValue('display_external_cals', serialize($GLOBALS['display_external_calendars']));
Kronolith::readPermsForm($tasklist);
$this->status = Horde_Util::getFormData('status', $this->status);
// Attendees.
- $attendees = Horde_Util::getFormData('attendees');
- if (isset($_SESSION['kronolith']['attendees']) && is_array($_SESSION['kronolith']['attendees'])) {
- $this->attendees = $_SESSION['kronolith']['attendees'];
- if ($attendees) {
- if ($attendees = Kronolith::parseAttendees(trim($attendees))) {
- $this->attendees = $attendees;
- }
- }
- } else {
- if ($attendees) {
- if ($attendees = Kronolith::parseAttendees(trim($attendees))) {
- $this->attendees = $attendees;
- }
- } else {
- $attendees = array();
- }
-
- $this->attendees = $attendees;
- }
+ $this->attendees = ($attendees = Horde_Util::getFormData('attendees'))
+ ? $attendees
+ : $session['kronolith:attendees;array'];
// Resources
- if (isset($_SESSION['kronolith']['resources']) && is_array($_SESSION['kronolith']['resources'])) {
- $this->_resources = $_SESSION['kronolith']['resources'];
- }
+ $this->_resources = $session['kronolith:resources;array'];
// strptime() is locale dependent, i.e. %p is not always matching
// AM/PM. Set the locale to C to workaround this, but grab the
$_SERVER['REQUEST_TIME'] = time();
}
- /* Initialize Kronolith session if we don't have one */
- if (!isset($_SESSION['kronolith'])) {
- $_SESSION['kronolith'] = array();
- }
-
/* Fetch display preferences. */
$GLOBALS['display_calendars'] = @unserialize($GLOBALS['prefs']->getValue('display_cals'));
$GLOBALS['display_remote_calendars'] = @unserialize($GLOBALS['prefs']->getValue('display_remote_cals'));
* back to an available calendar. An empty string passed in this
* parameter will clear any existing session value.*/
if (($calendarId = Horde_Util::getFormData('display_cal')) !== null) {
- $_SESSION['kronolith']['display_cal'] = $calendarId;
+ $GLOBALS['session']['kronolith:display_cal'] = $calendarId;
}
- if (!empty($_SESSION['kronolith']['display_cal'])) {
+
+ if (isset($GLOBALS['session']['kronolith:display_cal'])) {
/* Specifying a value for display_cal is always to make sure
* that only the specified calendars are shown. Use the
* "toggle_calendar" argument to toggle the state of a single
$GLOBALS['display_external_calendars'] = array();
$GLOBALS['display_resource_calendars'] = array();
$GLOBALS['display_holidays'] = array();
- $calendars = $_SESSION['kronolith']['display_cal'];
+ $calendars = $sessino['kronolith:display_cal'];
if (!is_array($calendars)) {
$calendars = array($calendars);
}
/* Get a list of external calendars. */
$GLOBALS['all_external_calendars'] = array();
- if (isset($_SESSION['all_external_calendars'])) {
- foreach ($_SESSION['all_external_calendars'] as $calendar) {
+ if (isset($GLOBALS['session']['kronolith:all_external_calendars'])) {
+ foreach ($GLOBALS['session']['kronolith:all_external_calendars'] as $calendar) {
$GLOBALS['all_external_calendars'][$calendar['a'] . '/' . $calendar['n']] = new Kronolith_Calendar_External(array('api' => $calendar['a'], 'name' => $calendar['d']));
}
} else {
$apis = array_unique($GLOBALS['registry']->listAPIs());
+ $ext_cals = $GLOBALS['session']['kronolith:all_external_calendars;array'];
+
foreach ($apis as $api) {
if (!$GLOBALS['registry']->hasMethod($api . '/listTimeObjects')) {
continue;
foreach ($categories as $name => $description) {
$GLOBALS['all_external_calendars'][$api . '/' . $name] = new Kronolith_Calendar_External(array('api' => $api, 'name' => $description));
- $_SESSION['all_external_calendars'][] = array('a' => $api,
- 'n' => $name,
- 'd' => $description);
+ $ext_cals[] = array(
+ 'a' => $api,
+ 'n' => $name,
+ 'd' => $description
+ );
}
}
+
+ $GLOBALS['session']['kronolith:all_external_calendars'] = $ext_cals;
}
/* Make sure all the external calendars still exist. */
*/
public static function attendeeList()
{
- $attendees = array();
-
/* Attendees */
- if (isset($_SESSION['kronolith']['attendees']) &&
- is_array($_SESSION['kronolith']['attendees'])) {
-
- $attendees = array();
- foreach ($_SESSION['kronolith']['attendees'] as $email => $attendee) {
- $attendees[] = empty($attendee['name']) ? $email : Horde_Mime_Address::trimAddress($attendee['name'] . (strpos($email, '@') === false ? '' : ' <' . $email . '>'));
- }
-
+ $attendees = array();
+ foreach ($GLOBALS['session']['kronolith:attendees;array'] as $email => $attendee) {
+ $attendees[] = empty($attendee['name']) ? $email : Horde_Mime_Address::trimAddress($attendee['name'] . (strpos($email, '@') === false ? '' : ' <' . $email . '>'));
}
/* Resources */
- if (isset($_SESSION['kronolith']['resources']) &&
- is_array($_SESSION['kronolith']['resources'])) {
-
- foreach ($_SESSION['kronolith']['resources'] as $resource) {
- $attendees[] = $resource['name'];
- }
+ foreach ($GLOBALS['session']['kronolith:resources;array'] as $resource) {
+ $attendees[] = $resource['name'];
}
return implode(', ', $attendees);
} catch (Exception $e) {
}
}
- $_SESSION['kronolith']['attendees'] = $this->event->attendees;
- $_SESSION['kronolith']['resources'] = $this->event->getResources();
+ $GLOBALS['session']['kronolith:attendees'] = $this->event->attendees;
+ $GLOBALS['session']['kronolith:resources'] = $this->event->getResources();
if ($datetime = Horde_Util::getFormData('datetime')) {
$datetime = new Horde_Date($datetime);
$month = $datetime->month;
}
$event = Kronolith::getDriver()->getEvent();
-$_SESSION['kronolith']['attendees'] = $event->attendees;
-$_SESSION['kronolith']['resources'] = $event->getResources();
+$session['kronolith:attendees'] = $event->attendees;
+$session['kronolith:resources'] = $event->getResources();
$date = Horde_Util::getFormData('datetime');
if (!$date) {
</tr>
<!-- attendees -->
-<?php $i = 0; if (empty($_SESSION['kronolith']['attendees'])): ?>
+<?php $i = 0; if (empty($GLOBALS['session']['kronolith:attendees'])): ?>
<tr><td colspan="4"><em><?php echo _("No attendees") ?></em></td></tr>
-<?php else: foreach ($_SESSION['kronolith']['attendees'] as $email => $status): ?>
+<?php else: foreach ($GLOBALS['session']['kronolith:attendees'] as $email => $status): ?>
<tr>
<td class="nowrap"><?php $name = strpos($email, '@') === false ? $status['name'] : $email; echo Horde::url('#')->link(array('title' => sprintf(_("Remove %s"), $name), 'onclick' => "performAction('remove', decodeURIComponent('" . rawurlencode($email) . "')); return false;")) . Horde::img('delete.png') . '</a> ' . Horde::url('#')->link(array('title' => sprintf(_("Edit %s"), $name), 'onclick' => "performAction('edit', decodeURIComponent('" . rawurlencode($email) . "')); return false;")) . Horde::img('edit.png') . '</a>' ?></td>
<td><?php echo htmlspecialchars(empty($status['name']) ? $email : Horde_Mime_Address::trimAddress($status['name'] . (strpos($email, '@') === false ? '' : ' <' . $email . '>'))) ?></td>
<div>
<input type="submit" class="button" name="addNew" value="<?php echo htmlspecialchars(_("Update")) ?>" />
<input type="submit" class="button" name="addNewClose" value="<?php echo htmlspecialchars(_("Save and Finish")) ?>" />
- <?php if (!empty($_SESSION['kronolith']['attendees'])): ?><input type="submit" class="button" name="clearAll" value="<?php echo htmlspecialchars(_("Clear all")) ?>" /><?php endif; ?>
+ <?php if (!empty($GLOBALS['session']['kronolith:attendees'])): ?><input type="submit" class="button" name="clearAll" value="<?php echo htmlspecialchars(_("Clear all")) ?>" /><?php endif; ?>
</div>
<br />
<div id="pageControls">
<a id="sbarShow" href="#" onclick="sbarToggle(); return false;"><?php echo _("Calendars") ?></a>
<a id="sbarHide" href="#" onclick="sbarToggle(); return false;"><?php echo _("Calendars") ?></a>
- <?php if (!empty($_SESSION['kronolith']['display_cal'])): ?>
+<?php if (isset($GLOBALS['session']['kronolith:display_cal'])): ?>
<a id="sbarClose" href="<?php echo Horde::selfUrl(true)->add('display_cal', '') ?>"><?php echo $GLOBALS['registry']->getAuth() ? _("Return to my calendars") : _("Return to calendars") ?></a>
- <?php endif; ?>
+<?php endif; ?>
<div id="pageControlsInner">
-<?php if (!empty($_SESSION['kronolith']['display_cal'])): ?>
+<?php if (isset($GLOBALS['session']['kronolith:display_cal'])): ?>
<h4><?php echo ngettext("Showing calendar:", "Showing calendars:", count($calendar_names)) ?></h4>
<?php foreach ($calendar_names as $name): ?>
<h4><?php echo $name ?></h4>