[geeklog-cvs] geeklog-1.3/public_html calendar.php,1.53,1.54

dhaun at iowaoutdoors.org dhaun at iowaoutdoors.org
Wed Dec 15 15:51:48 EST 2004


Update of /var/cvs/geeklog-1.3/public_html
In directory www:/tmp/cvs-serv22040

Modified Files:
	calendar.php 
Log Message:
Let (Event) Admins delete events directly from the site calendar's day and week view (just like personal events). Also fixed extra <br> being emitted for events that weren't visible to the current user (bug #268).


Index: calendar.php
===================================================================
RCS file: /var/cvs/geeklog-1.3/public_html/calendar.php,v
retrieving revision 1.53
retrieving revision 1.54
diff -C2 -d -r1.53 -r1.54
*** calendar.php	11 Dec 2004 14:54:48 -0000	1.53
--- calendar.php	15 Dec 2004 20:51:46 -0000	1.54
***************
*** 14,17 ****
--- 14,18 ----
  // |          Mark Limburg      - mlimburg at users.sourceforge.net               |
  // |          Jason Whittenburg - jwhitten at securitygeeks.com                   |
+ // |          Dirk Haun         - dirk at haun-online.de                          |
  // +---------------------------------------------------------------------------+
  // |                                                                           |
***************
*** 182,185 ****
--- 183,228 ----
  
  /**
+ * Return link to "delete event" image
+ *
+ * Note: Personal events can be deleted if the current user is the owner of the
+ *       calendar and has _read_ access to them.
+ *
+ * @param    string  $mode   'personal' for personal events
+ * @param    array   $A      event permissions and id
+ * @return   string          link or empty string
+ *
+ */
+ function getDeleteImageLink ($mode, $A)
+ {
+     global $_CONF, $LANG22, $LANG30;
+ 
+     $retval = '';
+ 
+     if ($mode == 'personal') {
+         if (SEC_hasAccess ($A['owner_id'], $A['group_id'], $A['perm_owner'],
+                 $A['perm_group'], $A['perm_members'], $A['perm_anon']) > 0) {
+ 
+             $retval = '<a href="' . $_CONF['site_url']
+                     . '/calendar_event.php?action=deleteevent&eid='
+                     . $A['eid'] . '"><img src="' . $_CONF['layout_url']
+                     . '/images/icons/delete_event.gif" border="0" alt="'
+                     . $LANG30[30] . '" title="' . $LANG30[30] . '"></a>';
+         }
+     } else if (SEC_hasRights ('event.edit')) {
+         if (SEC_hasAccess ($A['owner_id'], $A['group_id'], $A['perm_owner'],
+                 $A['perm_group'], $A['perm_members'], $A['perm_anon']) == 3) {
+ 
+             $retval = '<a href="' . $_CONF['site_admin_url']
+                     . '/event.php?mode=' . $LANG22[22] . '&eid='
+                     . $A['eid'] . '"><img src="' . $_CONF['layout_url']
+                     . '/images/icons/delete_event.gif" border="0" alt="'
+                     . $LANG30[30] . '" title="' . $LANG30[30] . '"></a>';
+         }
+     }
+ 
+     return $retval;
+ }
+ 
+ /**
  * Gets a small, text-only version of a calendar
  *
***************
*** 301,308 ****
  
  $mode = '';
! if (isset ($HTTP_POST_VARS['mode'])) {
!     $mode = COM_applyFilter ($HTTP_POST_VARS['mode']);
! } else if (isset ($HTTP_GET_VARS['mode'])) {
!     $mode = COM_applyFilter ($HTTP_GET_VARS['mode']);
  }
  
--- 344,349 ----
  
  $mode = '';
! if (isset ($_REQUEST['mode'])) {
!     $mode = COM_applyFilter ($_REQUEST['mode']);
  }
  
***************
*** 318,322 ****
  
  // Set mode back to master if user refreshes screen after their session expires
! if (($_USER['uid'] <= 1) AND $mode == 'personal') {
      $mode = '';
  }
--- 359,363 ----
  
  // Set mode back to master if user refreshes screen after their session expires
! if (($mode == 'personal') && (!isset ($_USER['uid']) || ($_USER['uid'] <= 1))) {
      $mode = '';
  }
***************
*** 331,340 ****
  }
  
! if (isset ($HTTP_POST_VARS['msg'])) {
!     $msg = COM_applyFilter ($HTTP_POST_VARS['msg'], true);
! } else if (isset ($HTTP_GET_VARS['msg'])) {
!     $msg = COM_applyFilter ($HTTP_GET_VARS['msg'], true);
! } else {
!     $msg = 0;
  }
  if ($msg > 0) {
--- 372,381 ----
  }
  
! // after this point, we can safely assume that if $mode == 'personal',
! // the current user is actually allowed to use this personal calendar
! 
! $msg = 0;
! if (isset ($_REQUEST['msg'])) {
!     $msg = COM_applyFilter ($_REQUEST['msg'], true);
  }
  if ($msg > 0) {
***************
*** 343,350 ****
  
  $view = '';
! if (isset ($HTTP_POST_VARS['view'])) {
!     $view = COM_applyFilter ($HTTP_POST_VARS['view']);
! } else if (isset ($HTTP_GET_VARS['view'])) {
!     $view = COM_applyFilter ($HTTP_GET_VARS['view']);
  }
  
--- 384,389 ----
  
  $view = '';
! if (isset ($_REQUEST['view'])) {
!     $view = COM_applyFilter ($_REQUEST['view']);
  }
  
***************
*** 353,366 ****
  }
  
! if (isset ($HTTP_POST_VARS['year']) || isset ($HTTP_POST_VARS['month']) ||
!         isset ($HTTP_POST_VARS['day'])) {
!     $year = COM_applyFilter ($HTTP_POST_VARS['year'], true);
!     $month = COM_applyFilter ($HTTP_POST_VARS['month'], true);
!     $day = COM_applyFilter ($HTTP_POST_VARS['day'], true);
! } else {
!     $year = COM_applyFilter ($HTTP_GET_VARS['year'], true);
!     $month = COM_applyFilter ($HTTP_GET_VARS['month'], true);
!     $day = COM_applyFilter ($HTTP_GET_VARS['day'], true);
! }
  
  // Create new calendar object
--- 392,398 ----
  }
  
! $year = COM_applyFilter ($_REQUEST['year'], true);
! $month = COM_applyFilter ($_REQUEST['month'], true);
! $day = COM_applyFilter ($_REQUEST['day'], true);
  
  // Create new calendar object
***************
*** 410,414 ****
  
  // Build calendar matrix
! $cal->setCalendarMatrix($month,$year);
  
  switch ($view) {
--- 442,446 ----
  
  // Build calendar matrix
! $cal->setCalendarMatrix ($month, $year);
  
  switch ($view) {
***************
*** 465,473 ****
          for ($i = 1; $i <= count ($alldaydata); $i++) {
              $A = current($alldaydata);
!             if (SEC_hasAccess($A['owner_id'],$A['group_id'],$A['perm_owner'],$A['perm_group'],$A['perm_members'],$A['perm_anon']) > 0 AND $mode == 'personal') {
!                 $cal_templates->set_var('delete_imagelink','<a href="' . $_CONF['site_url'] . '/calendar_event.php?action=deleteevent&eid=' . $A['eid'] . '"><img alt="' . $LANG30[30] . '" src="' . $_CONF['layout_url'] . '/images/icons/delete_event.gif" border="0"></a>');
!             } else {
!                 $cal_templates->set_var('delete_imagelink','');
!             }
              $cal_templates->set_var('event_time', $LANG30[26]);
              $cal_templates->set_var('eid', $A['eid']);
--- 497,502 ----
          for ($i = 1; $i <= count ($alldaydata); $i++) {
              $A = current($alldaydata);
!             $cal_templates->set_var ('delete_imagelink',
!                                      getDeleteImageLink ($mode, $A));
              $cal_templates->set_var('event_time', $LANG30[26]);
              $cal_templates->set_var('eid', $A['eid']);
***************
*** 499,509 ****
                      . strftime ($_CONF['timeonly'], strtotime ($A['dateend']
                              . ' ' . $A['timeend'])));
!                 if (SEC_hasAccess ($A['owner_id'], $A['group_id'],
!                         $A['perm_owner'], $A['perm_group'], $A['perm_members'],
!                         $A['perm_anon']) > 0 AND $mode == 'personal') {
!                     $cal_templates->set_var ('delete_imagelink', '<a href="' . $_CONF['site_url'] . '/calendar_event.php?action=deleteevent&eid=' . $A['eid'] . '"><img alt="' . $LANG30[30] . '" src="' . $_CONF['layout_url'] . '/images/icons/delete_event.gif" border="0"></a>');
!                 } else {
!                     $cal_templates->set_var('delete_imagelink','');
!                 }
                  $cal_templates->set_var('eid', $A['eid']);
                  $cal_templates->set_var('event_title', stripslashes($A['title']));
--- 528,533 ----
                      . strftime ($_CONF['timeonly'], strtotime ($A['dateend']
                              . ' ' . $A['timeend'])));
!                 $cal_templates->set_var ('delete_imagelink',
!                                          getDeleteImageLink ($mode, $A));
                  $cal_templates->set_var('eid', $A['eid']);
                  $cal_templates->set_var('event_title', stripslashes($A['title']));
***************
*** 533,538 ****
      $display .= $cal_templates->parse('output', 'dayview');
      $display .= COM_siteFooter();
- 
      break;
  case 'week':
      $cal_templates = new Template($_CONF['path_layout'] . 'calendar');
--- 557,562 ----
      $display .= $cal_templates->parse('output', 'dayview');
      $display .= COM_siteFooter();
      break;
+ 
  case 'week':
      $cal_templates = new Template($_CONF['path_layout'] . 'calendar');
***************
*** 547,555 ****
      } else {
          $cal_templates->set_var('calendar_title', $_CONF['site_name'] . ' ' . $LANG30[29]);
! 	if (!empty($_USER['uid']) AND $_CONF['personalcalendars'] == 1) {
              $cal_templates->set_var('calendar_toggle', '[<a href="' . $_CONF['site_url'] . "/calendar.php?mode=personal&view=week&month=$month&day=$day&year=$year\">" . $LANG30[12] . '</a>]');
! 	} else {
              $cal_templates->set_var('calendar_toggle', '');
! 	}
      }
      if ($mode == 'personal') {
--- 571,579 ----
      } else {
          $cal_templates->set_var('calendar_title', $_CONF['site_name'] . ' ' . $LANG30[29]);
!         if (!empty($_USER['uid']) AND $_CONF['personalcalendars'] == 1) {
              $cal_templates->set_var('calendar_toggle', '[<a href="' . $_CONF['site_url'] . "/calendar.php?mode=personal&view=week&month=$month&day=$day&year=$year\">" . $LANG30[12] . '</a>]');
!         } else {
              $cal_templates->set_var('calendar_toggle', '');
!         }
      }
      if ($mode == 'personal') {
***************
*** 666,676 ****
                  . '</a>');
              // Provide delete event link if user has access
!             if (SEC_hasAccess($A['owner_id'],$A['group_id'],$A['perm_owner'],$A['perm_group'],$A['perm_members'],$A['perm_anon']) == 3 AND $mode == 'personal') {
!                 $cal_templates->set_var('delete_imagelink','<a href="' . $_CONF['site_url'] . '/calendar_event.php?action=deleteevent&eid=' . $A['eid'] . '"><img alt="' . $LANG30[30] . '" border="0" src="' . $_CONF['layout_url'] . '/images/icons/delete_event.gif"></a>');
!             } else {
!                 $cal_templates->set_var('delete_imagelink','');
!             }
!             $cal_templates->parse('events_day'.$i,'events',true);
!             
          }
          if ($nrows == 0) {
--- 690,696 ----
                  . '</a>');
              // Provide delete event link if user has access
!             $cal_templates->set_var ('delete_imagelink',
!                                      getDeleteImageLink ($mode, $A));
!             $cal_templates->parse ('events_day' . $i, 'events', true);
          }
          if ($nrows == 0) {
***************
*** 688,701 ****
      $display .= COM_siteFooter();
      break;
! default:
  // Load templates
  $cal_templates = new Template($_CONF['path_layout'] . 'calendar');
! $cal_templates->set_file(array('calendar'=>'calendar.thtml',
!                                 'week' => 'calendarweek.thtml',
!                                 'day' => 'calendarday.thtml',
!                                 'event' => 'calendarevent.thtml',
! 				'mastercal'=>'mastercalendaroption.thtml',
! 				'personalcal'=>'personalcalendaroption.thtml',
! 				'addevent'=>'addeventoption.thtml'));
  
  $cal_templates->set_var ('site_url', $_CONF['site_url']);
--- 708,724 ----
      $display .= COM_siteFooter();
      break;
! 
! default: // month view
  // Load templates
  $cal_templates = new Template($_CONF['path_layout'] . 'calendar');
! $cal_templates->set_file (array (
!         'calendar'    => 'calendar.thtml',
!         'week'        => 'calendarweek.thtml',
!         'day'         => 'calendarday.thtml',
!         'event'       => 'calendarevent.thtml',
!         'mastercal'   => 'mastercalendaroption.thtml',
!         'personalcal' => 'personalcalendaroption.thtml',
!         'addevent'    => 'addeventoption.thtml'
!         ));
  
  $cal_templates->set_var ('site_url', $_CONF['site_url']);
***************
*** 831,835 ****
                      $month = '0' . $month;
                  }
!                 $calsql = "SELECT * FROM {$_TABLES['events']} WHERE (datestart >= \"$year-$month-$curday->daynumber 00:00:00\" AND datestart <= \"$year-$month-$curday->daynumber 23:59:59\") OR (dateend >= \"$year-$month-$curday->daynumber 00:00:00\" AND dateend <= \"$year-$month-$curday->daynumber 23:59:59\") OR (\"$year-$month-$curday->daynumber\" between datestart and dateend) ORDER BY datestart,timestart";
              }
  
--- 854,858 ----
                      $month = '0' . $month;
                  }
!                 $calsql = "SELECT * FROM {$_TABLES['events']} WHERE ((datestart >= \"$year-$month-$curday->daynumber 00:00:00\" AND datestart <= \"$year-$month-$curday->daynumber 23:59:59\") OR (dateend >= \"$year-$month-$curday->daynumber 00:00:00\" AND dateend <= \"$year-$month-$curday->daynumber 23:59:59\") OR (\"$year-$month-$curday->daynumber\" between datestart and dateend))" . COM_getPermSql ('AND') . " ORDER BY datestart,timestart";
              }
  
***************
*** 840,854 ****
                  $entries = '';
                  for ($z = 1; $z <= $q2_numrows; $z++) {
!                     $results = DB_fetchArray($query2);
!                     if (SEC_hasAccess($results['owner_id'],$results['group_id'],$results['perm_owner'],$results['perm_group'],$results['perm_members'],$results['perm_anon']) > 0) {
!                         if ($results['title']) {
!                             $cal_templates->set_var('cal_day_entries','');
!                             $entries .= '<a href="' . $_CONF['site_url']
!                                 . '/calendar_event.php?' . addMode ($mode)
!                                 . 'eid=' . $results['eid']
!                                 . '" class="cal-event">'
!                                 . stripslashes ($results['title']) . '</a><hr>';
!                         }
!                     } 
                  }
                  for ($z = $z; $z <= 4; $z++) {
--- 863,874 ----
                  $entries = '';
                  for ($z = 1; $z <= $q2_numrows; $z++) {
!                     $results = DB_fetchArray ($query2);
!                     if ($results['title']) {
!                         $cal_templates->set_var ('cal_day_entries', '');
!                         $entries .= '<a href="' . $_CONF['site_url']
!                             . '/calendar_event.php?' . addMode ($mode)
!                             . 'eid=' . $results['eid'] . '" class="cal-event">'
!                             . stripslashes ($results['title']) . '</a><hr>';
!                     }
                  }
                  for ($z = $z; $z <= 4; $z++) {
***************
*** 881,885 ****
                  $j = 8;
              } else {
!                 // Print empty box for any day in the first week that occur before the first day
                  $cal_templates->set_var('cal_day_style','cal-nullday');
                  $cal_templates->set_var('cal_day_anchortags', '');
--- 901,906 ----
                  $j = 8;
              } else {
!                 // Print empty box for any days in the first week that occur
!                 // before the first day
                  $cal_templates->set_var('cal_day_style','cal-nullday');
                  $cal_templates->set_var('cal_day_anchortags', '');




More information about the geeklog-cvs mailing list