Location: PHPKode > scripts > LuxCal Web Based Event Calendar > DevNotes-31.txt
= LuxCal Development Notes =

Change log - version 3.1.0:
1.  Various scripts: Single install - multiple calendar upgrade. Calendars will 
    now always have a prefix in the database table names (e.g. mycal_events, 
    mycal_users, etc.). This makes it possible with one calendar installation to 
    have several calendars in the same MySQL database, rather than installing 
    the calendar several times. Upgrading to a new calendar version will be one 
    single upgrade action for all calendars.
    The basic installation is still straight forward and will install one single 
    calendar. After the basic installation, the LuxCal tools (see hereafter) can 
    be used to create more calendars within the same database and to perform 
    various other database functions.
2.  lctools.php: Toolset added. These new tools can be used during and after the 
    installation to test the calendar configuration, to delete calendars, to add 
    calendars, to backup calendars and to replicate calendar data and calendar 
    settings to one or several other calendars.
3.  installxxx.php, upgradexxx.php: The install and upgrade scripts have been 
    considerably improved. Both scripts are started automatically when a new 
    installation or an upgrade takes place, but can also be run by the admin 
    manually whenever required. The upgrade script gives details on upgrade 
    progress and the install script has some new advanced functions.
4.  settings.php, ai-{lang}.php: The admin's Settings page has been reorganized. 
    All event-related settings have been grouped under the heading 'Events' and 
    all settings related to the periodic functions (started via a cron job) have 
    been grouped under the heading 'Periodic Functions'.
5.  settings.php: Width of the input fields increased. The width of the inputs 
    fields was too small in some browsers (e.g. Opera). Furthermore a maximum 
    length has been introduced for character based input fields.
6.  settings.php, header1.php,headerm.php: The Calendar URL must now be the full 
    URL including the file name (e.g. http://www.mysite.xxx/calendar/index.php).
    This is needed for links to embedded calendars.
7.  settings.php, events.php, ai-{lang}.php: On the administrator's Settings 
    page private events can now be set to "disabled", "enabled" and "default". 
    Default: the "private" checkbox in the Event window will be checked by 
8.  settings.php, month.php, ai-{lang}.php: New admin setting to enable/disable 
    in Month view the display of 3-letter month names for each day.
9.  lcalcron.php, settings.php, ai-{lang}: An option to daily export events in 
    a .ics file has been added. This option can be enabled/disabled via the 
    admin's Settings page. The .ics file will be stored in the "files" folder 
    and the file name will be the calendar name with blanks replaced by 
10. toolbox.php, settings.php, ai-{lang}.php: For reminder and other email 
    messages, the admin can now choose between PHP mail and SMTP mail. The SMTP 
    mail parameters must be specified on the admin's Settings page. A tool, 
    called smtptest.php, is available to test the SMTP settings. Mail can also 
    disabled altogether; in this case the Sendmail section of the Event window 
    will not be shown.
11. lcsbar.php: Two arguments have been added to the stand-alone sidebar, one to 
    specify the maximum number of events to display and another to specify the 
    number of days to look ahead for upcoming events. If specified, the last 
    parameter will overrule the admin setting 'Days to look ahead in sidebar'.
12. lcsbartd.php: The stand-alone sidebar can now also display the events of the 
    Todo list and can be used to check/uncheck the check mark of these events. 
    Todo list events are events in a category for which the event check mark has 
    been activated.
13. lcsbar.php, css_sbar.php: The styles of the stand-alone sidebar content have 
    been made independent of the styles of the main page.
14. categories.php, event.php, eventform1.php, retrieve.php, retrieve2.php: 
    Second checkbox in front of event title dropped and replaced by a flexible 
    option for proposing / approving event.
15. users.php, eventform1.php, ai-{lang}.php: A new user privilege, called 
    "Manager" has been added. The "manager" has the "post all" rights and in 
    addition can set or change the event owner (in the Event window) and can 
    "approve" events that need approval, because they fall in an event category 
    for which "needs approval" has been set by the admin.
16. event.php, toolbox.php: An option has been added to the Event window to add 
    in the description field small images (thumbnails). These images will be 
    visible in all views in the hover box with event details, in email reports 
    and in the event report when clicking the event in view-only mode.
17. eventform1.php, ui-{lang}.php: In the Event window on two places the small 
    print explanation has been replaced by a on-mouse-over popup box with more 
    detailed explanations.
18. database.php, ai-{lang}.php: On the admin's Database page the option to 
    delete or undelete events in a certain date range has been added.
19. header1.php, lcsbar.php, upcoming.php, search.php, rssfeed.php: On all lists 
    with upcoming events (Upcoming Events view, text search page, calendar 
    sidebar, stand-alone sidebar and RSS feeds) multi-day events are now shown 
    as one single event with a start and end date (e.g. Monday 4 March 2013 - 
    Friday 8 March 2013), rather than once for each day of the day sequence.
20. year.php, month.php, css.php: In Year and Month view the day number, in the 
    upper right corner of the day cells, is now a hyperlink to the Day view of 
    the corresponding day.
21. lcmini.php: When "Mini calendar event posting" has been enabled on the 
    admin's Settings page, in the mini calendar the access rights of the Public 
    User will be applicable. This gives more flexibility.
22. month.php: In Month view, when showing a single month (month to show = 0 on 
    Settings page), and skipping to the next or previous month, the date was set 
    to the middle of the month, causing problems in the Upcoming Events view. 
    This was a bug and has been solved.
23. exportICS.php, ai-{lang}.php: The default file name for exported iCal files 
    has changed to the calendar name with blanks replaced by underscores.
24. year.php, month.php: When the calendar is displayed without navigation bar 
    (hdr=0), navigating to Week view via the week numbers will be disabled.
25. year.php, dw_functions.php, lcmini.php: In Year, Week view, Day view and the 
    mini calendar the display of the event time for multi-day events in the 
    hover popup box made consistent.
26. css.php, header0.php: Optimization / simplification of displaying calendar 
    views with or without header (top bar and navigation bar). This also solved 
    the problem that when suppressing the calendar header (?hdr=0), the day 
    headers disappeared behind the actual calendar. The CSS file css_xs.php has 
    been made redundant.
27. lcsbar.php, css_sbar.php: Text color added for the hover pop-up box text and 
    double class name problem for repeating and normal events solved.
28. index.php + various.php: Dropped the redundant column sedit from the users 
    table. Admin privileges are now reflected by priv == 9.
29. lcsbar.php: Namespace of sidebar variables limited to avoid interference 
    with PHP variables in the host script.
30. toolbox.php: If not set already, the timezone is set when logging errors. 
    Avoids a PHP error message when logging an error while no time zone defined. 
    E.g. during the installation phase.
31. index.php, toolbox.php, install310.php: Security vulnerability (XSS - cross 
    server scripting)- solved.
32. header1.php: If the user filter in the Options panel has been enabled by the 
    admin, then the user filter can now also be used by the public users.
33. toolbox.js: The winFit() function is also working correctly in Chrome and 
34. dtpicker.js, headerX.php: the settings 'dwStartHour' and 'dwEndHour' are 
    propagated to the time picker. The start time and the end time of the time 
    picker are now the same as the start and end time in day/week view.
35. lcmini.php, year.php: Sometimes the on mouse-over hover-box obscured the 
    small event squares in year view and in the mini calendar.
36. toolbox.php: For some URL links in the event description field the backward 
    parsing, for display in the Event window, failed.
37. notify.php, sendchg.php, toolbox.php: The Cron Job Summary did not show all 
    email messages sent and the numbering was wrong.
38. event.php, notify.php: The 'open calendar' link in email reminders now jumps 
    to the date where the event starts.
39. cpicker.js: Shortcut function $I(el) introduced. Script simplified.
40. toolbox.js: Hover pop up and bar dragging functions optimized.
41. changes.php: Event sorting function was never included and caused a PHP 
    warning. Sort statement removed; no additional sorting of events needed.
42. month.php, dw_functions.php, search.php, upcoming.php: The event check box 
    can now only be checked by the event owner or a user with manager rights.
43. Documentation: A separate admin guide has been created which will help the 
    calendar administrator to configure the more advanced calendar features.

As of version 3.1.1:
1.  events.php: If email is disabled on the admin's Settings page, then when 
    saving an event in the Event window a 'Notification days invalid' error 
2.  settings.php, wbtools.php, tools.php, ai-{lang}.php, smtptest.php: On the 
    admin's Settings page SMTP authentication can now be enabled/disabled.
As of version 3.1.2:
1.  various.php: To avoid problems with single quotes in the ui and ai texts, 
    like "it's", ui/ai texts and the calendar title, venue and description, 
    which are inside HTML tags, are now placed within double quotes, rather than 
    single quotes.
2.  dloader.php, exportICS.php: Security issue (local file inclusion and XSS) 
3.  settings.php, header1.php, headerm.php, ai-{lang}.php, ui-{lang}.php: New 
    admin setting added to activate a "Back" button on the left side of the 
    Navigation Bar. This Back button can be used for example to link back the 
    parent page from which the calendar was started.
4.  month,php, settings.php, ai-{lang}.php: On the admin's Settings page, weeks 
    to show in Month view can now, apart from the normal number of weeks to 
    show, also be set to 0 or 1. Both 0 and 1 result in the display of one 
    single month in Month view. If set to 0, leading and trailing days, which 
    fall outside the month will be blank; if set to 1, events on these days will 
    be shown.
5.  settings.php, event.php, eventform1.php, ai-{lang}.php: On the admin's 
    Settings page "posting of private events" can now also be set to "always", 
    meaning that all entered events will be private. The "Private" check box in 
    the Event window will not be shown.
6.  header1.php, headera.php, headerm.php: Labels in the Options Panel correctly 
    aligned with the check boxes.
7.  various.php: code optimizations to keep performance sharp.
Return current item: LuxCal Web Based Event Calendar