We've implemented a few improvements for the mini calendar (display0):

  • The left and right arrows in the calendar header now stay at a fixed location when browsing through the months; so they don't jump anymore depending on the length of the month name.

  • The click-sensitive area of the arrows has been widened, so that it is easier to browse through the months.

  • The color of the text in the footer is now taken from the specified colors in the configuration section and is therefore also visible on a dark background.

Furthermore, if you want the height of the iframe container to adjust automatically to the height of the mini-calendar (depending on the month, it will show 4, 5 or 6 weeks), then you will find the solution in the user guide (display0.txt) which is included in the display0.zip file.

You can download the latest mini-calendar version from the LuxCal Displays page (menu on the left).

Roel

Users are encouraged to upgrade to this new version 4.7.5.

Highlights

This new LuxCal version 4.7.5 is an important bug-fix release with technical issues solved and a few new features.
Most important new features / improvements:
• In Year, Month and Matrix view, to add a new event for a specific day, rather than clicking the top bar of a day cell, any free space of the day cell can now be clicked.
• The way to log in, log out and to change the user account credentials have changed to a more modern look.
• A new setting has been added to the admin's settings page to enable/disable the display of the end time (if specified) in the day cells of Month view following the event start time.
Hereafter you will find a full summary of all changes since LuxCal version 4.7.3.

This new release has been tested again with the help of John from Denmark. Thank you John, great job again!

New features/Improvements
• In Year, Month and Matrix view, if a user has post rights, rather than clicking the top bar of a day cell, any free space of the day cell can now be clicked to add a new event
    for the selected day. At the same time the hover box with event details has been slightly moved downwards to make the event title more visible.
• The way to log in, log out and     to change the user account credentials have changed. When the user is not logged in, at the right upper corner, a Log-in link is displayed, replacing the log in button on the navigation bar. Once logged in, in the right upper corner the user name is displayed as a hyper link. When clicking on the user name, two options drop down: 1) Log out, which replaces the log out button on the navigation bar, and 2) User profile. When selecting User profile, a new page will open where the user can change his/her profile data..
• A <title> tag has been added to the event title hyper-links showing "Edit event", "See event details" or nothing, depending on what is applicable.
• On the Alert page, when the message "Session expired, please restart the Calendar" is displayed, a Restart button has been added to restart the calendar and, if on the admin's Settings page a "Link to parent page" has been defined, also a Back button will be shown.
• When a user logs out and on the Settings page a link to a parent page has been specified, the user will be automatically redirected to the parent page.
• Whenever relevant, the calendar ID has been added to the messages logged in the luxcal.log and sql.log files. This is in particular useful in case of multiple calendars.
• In the past, in case of multiple calendars, the visitors counter and the visitors data log files were combined for all calendars. In this version the visitors counter and the visitors data log files are kept for each individual calendar.
• When the calendar is opened via the hyper-link at the bottom of a reminder email message, the day cell at the date of the event concerned has a slightly contrasted background color and border.
• The date hyper-link in the calendar's top bar did not show the same shadow as the other text hyper-links.
• A new setting has been added to the admin's settings page to enable/disable the display of the end time (if specified) in the day cells of Month view following the event start time.

Technical issues
• The implementation of the Single Sign On (SSO) feature in combination with calendar-specific PHP sessions was too complicated and caused too many problems. Therefore the system with one individual PHP session per calendar has been replaced by a more straightforward system with one PHP session per user, where calendar-specific data is store in the session variables using an array with the calendar ID as index.
• The regexes $rxCalURL, $rxPhone and $rxIMGTags and the regexes used in messaging to check for user names contained one or more un-escaped hyphens (-) in a square bracket list of characters, which is considered a regex error by the latest PCRE library (V10.32 2018-09-10), which is normally used by PHP 7.3.
• In the footer of the alert page, when hovering powered by LuxCal, it showed V4.7.2 (hard coded). This has been changed to dynamically showing the current calendar version.
• The drag-able area in the week and day views was always active, even if the user had no post rights. This resulted in an Event window with the message "You are not authorized to perform this action". This has been changed, the area is now only active if the user has post rights.
• FOR APACHE SERVERS ONLY! The protection of the calendar folders against unauthorized direct browser access has been revisited and where possible access has been restricted via .htaccess files. For the "db", "files", "attachments", logs and reciplists folders all direct access is denied. Authorized access, via the calendar's user interface, is performed indirect.
• When deleting an event the "editor" field was not set to the current user, resulting in a wrong "edited by" name in the Changes view. This has been rectified and now deleting an event is treated similar to editing an event, as far as the "edited by" and "date/time edited" fields.
• The text "Check all ignore boxes" was still hard-coded and has been moved to the language files.
• In the installation_guide section "Single Sign On (SSO) it is specified that SSO can be achieved by saving the user email address or the user name in the session variable lcUser, in the code however, only the user email address was accepted. This has been corrected, either email address or user name will be accepted.
• The setting to select to show the event owner in front of the event title has been moved from the section "Events" to the section "Views".

Bug fixes
• When upgrading from v4.6 the row "symbol" in the categories table was not copied, so after the upgrade symbols specified for certain categories in V4.6 were lost.
• Users with manager rights were not able to chose the "to be approved" list from the side menu (hamburger button) and event owners could still edit events that already had been approved, which should not be possible.
• When hovering an event in a narrow window or on a narrow screen (< 500px), the hover box with event details was not displayed at the correct location and was too wide.
• When on the Settings page, under Views, "Show images in month view" is not checked, then in the hover box with event details, thumbnails are shown next to each other. However, if "Show images in month view" has been checked, in the day cells in Month view the images are shown under each other.
• When on the admin's Settings page the logging of visitors data has been enabled, in the left lower corner of the calendar a hit counter is displayed. When a user has at least manager rights this counter becomes a hyper-link to the visitors data details. However, due to direct file access restrictions, the hyper link was blocked. When revisiting the unauthorized direct browser access of files and folders, this has been solved.
• In the Event window the "Edited" date/time and name were not updated when the event repetition was changed or when the Save (without close) button was clicked.
• When on the categories page a fixed event duration was selected with an event duration of 0 hours and 0 minutes, then the events in this category were shown in the various views with an identical start and end time.
• An error in the regex ($rxEML) to find email addresses in the event description fields, caused email addresses without dot to be accepted.
• The text color of admin page titles on the navigation bar and the hit counter and RSS feeds link on the footer bar was not set properly, making it hard to see on a dark navigation and footer bar background.
• When editing one occurrence of a repeating or multi-day event and deleting an attachment from the event, resulted in the attachment file to be deleted from the "attachment" folder, leaving the remaining events of the series without attachment. This has been solved by never deleting the attachment files from the attachment folder.
• In the "validGets" function, there was an error in the regex to validate the GET variable "cal".
• The RSS feeds were not working due to a call to a name change of the toolbox.php function to validate possible GET variables.
• Uploaded attachment or thumbnail files with spaces in the file name caused problems when using these files. Solved by replacing all spaces in file names by underscore characters during the upload process.
• Thumbnails in the event description fields were not shown in (reminder) email messages. The reason was that the URI to the thumbnails folder was used, instead of the URL.
• When specifying a recurring event every xth weekday of a specific month, this resulted in every xth weekday of "each month". This problem was introduced when enhancing the overlap check to include recurring events.
• When uploading an iCal file on the admin's iCal File Import page with the Timezone adjustment check box checked, for events with an end time this resulted in a call to an undefined function 'strotime' (typo).
• When in the uploaded iCal file no events were found occurring as of the specified date, this resulted in PHP errors.
• The printNice function did not work. (querySelectorAll does not return an array, but a NodeList).
• There was a backslash character displayed just under the text Manage Thumbnails in the left upper corner.

Roel

403

(9 replies, posted in Problems)

@RdeW: There is no way to configure the calendar to show the Venue in the day cells of Month view. I can however give you a code change to show the venue. If you want this, please let me know where you would like to see the venue (e.g. after the title, on a new line, etc.), and if you want the word "Venue:" in front of it.

@cousinhub:
1) Concerning the Print function, could you send me the URL of your calendar (via the Contact Us page) so that I can analyze what's going wrong.
2) Concerning the start and end times in week and day view: Edit the file "views/dw_functions.php" and change line 148 . . .

echo "<div class='{$class}'>{$chBox}{$onClick}{$popAttr} title=\"{$title}\">{$stiPrefix}{$evt['tix']}</span></div></div>\n";

to . . .

echo "<div class='{$class}'>{$chBox}{$onClick}{$popAttr} title=\"{$title}\">{$time} {$evt['tix']}</span></div></div>\n";

So in other words: replace {$stiPrefix} by {$time}, followed by a space.
Please note that there are no plans to add this change to the next LuxCal calendar version.

Roel

404

(1 replies, posted in Problems)

Hi there,

Correct, in Month view only the start time and event title are shown in the day cells (and the end time with the code change, or enabled in V4.7.5). The calendar "policy" is to keep the Month view as tidy and simple as possible and for details the user can hover the event title or click on it to get the full event report. So the General View template doesn't apply to the day cell of the Month view.

Roel

405

(9 replies, posted in Problems)

I'm (almost) convinced that printing does work after the change wink
Did you refresh the calendar page (Ctrl-F5) after implementing the changes?

Roel

406

(4 replies, posted in Need Help)

Hi Hubert,

Please see "Adding more fields / Changing current extra fields" under "Suggestions" in this forum.

Roel

Hi Dan,

Since several calendar users have asked for the possibility to add additional fields, it may be a good idea to implement a flexible possibility to add/delete extra fields to events. I will investigate the feasibility of this new feature; as you suggested, maybe something similar to adding/deleting categories.
If this appears to be feasible without too many troubles and we decide to go ahead, then implementing this new option will for certain take quite some time (months). But it's always nice to have something to look forward to wink

Regards,
Roel

408

(9 replies, posted in Problems)

Hi there,

In the latest calendar version 4.7.4, the Print funtion in the side menu is not working.
Below you will find two minor changes: 1) to show the end times in Month view and 2) to fix the print problem.

The changes are for calendar version 4.7.4!

1) edit the file views/month.php and replace line 17 . . .

$dTime = $evt['mde'] ? $time : ITtoDT($evt['sti']);

by . . .

$dTime = $time;

2) edit the file common/toolbox.js and replace line 379 . . .

var els = $T("*");

by . . .

var els = [].slice.call($T("*")); //convert nodelist to array

Now you will see the end times, if there is one, in Month view and the print function in the side menu will work.

I think this could be interesting for other calendar users too, therefore in the next version of the calendar I will add a setting to enable/disable the display of the event end time in Month view.

Roel

409

(2 replies, posted in Problems)

Hi Chuck,
Thank you for reporting this bug.
This problem can be solved by editing the file "pages/eventform1.php" and . . .

replace line 216:

echo "<select name='r_m' id='r_m' onclick=\"\$I('r_t2').checked=true\">

by:

echo "<select name='rpm' id='rpm' onclick=\"\$I('r_t2').checked=true\">

In other words: replace "r_m" by "rpm" (2x).

The problem will be fixed in the next calendar version 4.7.5.
Roel

Hi  there,
Send me your email address (via the Contact Us page) and I will send you a very small PHP session test script. If this script shows your PHP sessions are not working, then we will takeit from there.

Roel

411

(2 replies, posted in Problems)

Hi there,
This problem is most probably occurring because LuxCal 4.7.4 has a problem with PHP 7.3 (PCRE library V10.32). The problem has been solved and will be fixed in the next LuxCal v 4.7.5.
I'm afraid there are only two possibilities:
1. Downgrade  to a lower PHP version
2. I can send you a pre-copy of the new version 4.7.5

If you chose option 2, please send me your email address, so that I can send you V4.7.5.
Roel

412

(1 replies, posted in Need Help)

In the next LuxCal version 4.7.5, Thumbnail links will use the full URL, rather than the URI. This means that if the calendar URL, specified on the Settings page, starts with https;//, also the thumbnails will use SSL. Using the full URL for thumbnails makes it possible to use thumbnails in email messages.

Roel

413

(1 replies, posted in Need Help)

Restricting the number of days events can be added in advance is currently not possible.
We're considering to add this as an option per event category, not in the next LuxCal version, but in the version thereafter.

To help cknath, we modified one of the calendar scripts and inserted a hard coded test for x number of days and have sent this modification to cknath.

Roel

Hi Doss and John,
I had a careful look and it appears that when on the Settings page, under Views, "Show images in month view" is not checked, then in the hover box with event details, thumbnails are shown next to each other, which is fine. However, if "Show images in month view" has been checked, in the day cells in Month view the images are shown under each other.
Don't ask me why hmm
To solve this, edit the file "views/month.php" and
change line 49 from . . .

  foreach ($imgs as $img) { echo $img[0]."<br>"; }

to . . .

  foreach ($imgs as $img) { echo $img[0]; }

In other words: delete ."<br>"

Now the thumbnails will be shown in line (if they are not too wide and fit).

Roel

PS. I will change this is the next calendar version.

415

(6 replies, posted in Problems)

Hi Greg,

Yes, I see the point. The Changes page shows something else than the email report, which is not correct and should be avoided.
So fair enough, for the next calendar version I will change the delete script and at the moment of deletion set the "edited by" field to the current user.
If you want to implement this change also in v4.7.4, then you should edit the file "pages/event.php" and make the following changes:

just below line 423 ( if ($mode == "del") { ) add . . .

$_SESSION['evt']['edr'] = $usr['name'];

and change lines 425 and 426 from . . .

$stH = stPrep("UPDATE `events` SET `status` = -1, `mDateTime` = ? WHERE `ID` = ?"); //delete
tExec($stH,array($todayDT,$eid));

to . . .

$stH = stPrep("UPDATE `events` SET `status` = -1, `editor` = ?, `mDateTime` = ? WHERE `ID` = ?"); //delete
stExec($stH,array($usr['name'],$todayDT,$eid));

and change lines 429 and 430 from . . .

$stH = stPrep("UPDATE `events` SET `xDates`=? WHERE `ID` = ?"); //exclude date
stExec($stH,array($_SESSION['evt']['xda'],$eid));

to . . .

$stH = stPrep("UPDATE `events` SET `xDates` = ?, `editor` = ?, `mDateTime` = ? WHERE `ID` = ?"); //exclude date
stExec($stH,array($_SESSION['evt']['xda'],$usr['name'],$todayDT,$eid));

After these changes, deleting an event will be treated similar to editing an event as far as the "edited by" and the "date/time edited" fields are concerned.
Roel

416

(5 replies, posted in Problems)

Hi Greg,

Yes, you are right.
MySQL and SQLite have no functions to convert HTML entities or ignore HTML tags.
It could be done by using multiple REPLACE functions, but replacing all possible HTML entities in all fields to be searched still doesn't solve the problem with HTML tags.
It could be done by regular expressions, but to deal with all entities and tags, it would require a very complicated expression.

Since the search results are very volatile (just for the eyes) and the search criteria can be easily changed, I think it's not worth making the search algorithm much more complicated..

Roel

417

(6 replies, posted in Problems)

Hi Greg,

The current logic is the following:
1. When an event is added, the "added" date, time and user are stored in the event record (if the event was added by an "admin" for Mr. X, then Mr. X will be stored as the one who added the event.
2. When the event is modified within 10 minutes from the moment of adding the event, the edit action will not be recorded. (When you add an event, and directly (within 10 minutes) correct a typo, this will be considered part of the "adding").
3. When the event is edited at least 10 minutes later than it was added, the date, time and user will be recorded.
4. When you delete an event, the date and time are recorded, but not the user who deleted the event.

Number 4 could be called a 'bug', although it was done like this on purpose because we thought it was not worthwhile to add two special fields (name and date/time) just for a deleted event .

It is an easy change to save the user who deletes the event in the "edited by" field, so that on the Changes" page you can see who deleted the event, but then a possible "editor" will not be known any more.

If there is more demand for this, adding two additional fields "deleted by" and "date and time of deletion" is of course also possible, but this requires a database schema change which has more implications.

Roel

418

(1 replies, posted in Problems)

Hi Lee,

I had a thorough look at the upgrade script of V4.6, but could not find any problem.
Did you get this SQL error while you were upgrading, or did the upgrade run successfully and did you get the error when you started the calendar for the first time after the upgrade?
Would it be possible to email me  (via the Contact Us page) a .sql back-up file of your calendar database (either V4.5 or 4.6). I will then further analyze the problem and fix it. If you send me V4.5, I will upgrade it.

Just a question: Why do you upgrade to v4.6 and not to the latest version 4.7?

Roel

419

(6 replies, posted in Need Help)

Hello Mike and John,

I think John's two questions are rhetorical questions wink
and therefore my answer to both questions is: Yes!

Don't ask me why it is not working as it should, but the good news is that I've already fixed both problems.

Mike, if you send me your email address (via the Contact Us page), then I will  send you a fix before the end of the day.

Roel

420

(4 replies, posted in Need Help)

Hi Laur,
What kind of second check mark do you exactly mean? I don't quite understand what you mean.

Roel

421

(11 replies, posted in Problems)

Hi Greg,

The link to V4.7.2L when you hover the Powered by LuxSoft button is my mistake and will be corrected in a next version. This doesn't harm.
The fact that you get a Session expired message with "== no token assigned ==" in the footer could be caused because of "old" cookies in the browser cache.

I'm certainly willing to help you and with FTP access further analyse the problem. However, if you re-upgrade, the users of your calendar will most probably encounter the same problems, which will be annoying.
Is there no way to install the new 4.7.4 calendar in a test folder, so that I can test without affecting the main calendar? Via email I can explain to you in a few lines how to do this; it's really easy - no Softaculous needed.
Let me know if you want me to do this.

Roel

422

(11 replies, posted in Need Help)

See my email reply.

423

(11 replies, posted in Need Help)

Shock,

Could you try deleting all cookies related to the calendar.
If that doesn't help, could you send me the URL of your calendar so that I can have a look myself.

Roel

Highlights

This new LuxCal version 4.7.4 contains a number of important improvements and bug fixes.
Most important new features / improvements:
• New "address button", showing an address from the venue field in a map viewer (e.g. Google Maps).
• URL-links, Mailto-links and Address buttons (see below) can now be clicked in the hover box, without opening the Event Report window.
• New "display" for narrow-width displays and all existing "displays" have been updated. Displays can now be viewed and downloaded on the LuxSoft website.
Hereafter you will find a full summary of all changes since LuxCal version 4.7.3.

As usual this new release has been tested again with the help of John from Denmark. Thank you John, you've done a great job!

New features/Improvements
• In Month view the position of the hover boxes with additional event details is now fixed just over the right side of the event title and the boxes can be hovered with the cursor. An important advantage is that URL-links, Mailto-links and Address buttons (see below) can now be clicked in the hover box, without opening the Event Report window. Since URL-links and Mailto-links can now easily be selected in the hover box, these links have been removed from the day cells, which saves precious space in the day cells.
• If in the venue field the address is placed between exclamation marks (!), in the calendar views the address will be replaced by an "Address button". When hovering the Address button, the address will be shown and when clicking the button, a map viewer window will open, showing the specified address. On the Settings page the administrator can disable/enable this feature and can specify the map viewer to be used. The default map viewer is Google Maps. The exclamation marks will not be visible to the calendar visitors.
• In day and week view on a device with a small display it is now possible to open the edit event window by clicking the event title.
• The display of thumbnails in Month view has changed as follows: When on the Settings page "Show images in month view" is enabled, thumbnails will be shown in the day cells and when disabled, thumbnails will be shown in the on-mouse-over boxes instead. So thumbnails will not be displayed in both at the same time.
• In the previous calendar versions, the Search page can only be opened via the side menu; because this function is often used, a magnifying glass has been added to the right side of the navigation bar.
• When an event that needs approval is approved by a user with manager rights, the event owner will now receive a notification by email.
• On the Users page, when adding a new user, the default access rights will be the rights set for self-registrations.
• All 'displays' (upcoming events listings) have been upgraded and are more flexible with more settings. Displays will not be included in the zip-file of new calendar versions anymore. Instead they can be viewed and downloaded directly on the LuxCal Displays page of the LuxSoft website.

Technical issues
• When used on a small-screen mobile device, the header of the page (date range) will be shown without week number, so that the header will fit on one line.
• Error messages related to validating URL GET and POST parameters are now presented on a special 'calendar-style' page.
• The logic to deal with an expired PHP session has been completely revised. If the calendar is left open in the browser without using it, the user will get a warning alert after 25 minutes of calendar inactivity. In case of more than 30 minutes of calendar inactivity, the PHP session will expire and when starting to use the calendar again the user will get a "PHP session expired" alert page and will be asked to restart the calendar.
• The protection against spoofed form submission, cross-site scripting and other vulnerabilities has been improved.
• The separate PHP session to store the current calendar ID has been abandoned. The implementation was unnecessary complex. The scrips detach.php and checkevt.php do not need a PHP session at all anymore. Code simplification.
• The way to find if the user is using a small display or window has been simplified and is now 100% accurate. This opens the way to make the calendar more responsive.
• To guarantee identical behavior of the delete functions which ask user confirmation, the three separate functions have been combined in one delConfirm function.
• The 'reload' function has been combined with the 'done' function, which made the reload function redundant. Code simplification.
• On the Event page to select 'edit the series or this occurrence', the start of the form was at the wrong point, which conflicted with the display of the Google map if the address was put in between exclamation marks.
• URL and image regexes and the processing to add URL-links and images to the event description fields improved. No extra spaces are added anymore in the description fields.
• Changed the JavaScript code to using 'strict' mode, which forces the use of variable declarations and therefore results in better code quality.
• The JavaScript code for the drag functions moved from the dw-function.php file to the toolbox.js file. The code has been improved and is now running in strict mode too.
• The validation regex for Send notification of calendar changes on the settings page, under General, did not allow for recipients lists between square brackets. Solved.
• On the Event page to select 'edit the series or this occurrence', the background color of the event title continued until the end of the line, whilst it should end at the end of the title text.
• More logic has been added to the check boxes in the Edit User Group form. When a user can add events in a certain category, he can automatically view this category.

Bug fixes
• Removed the default function parameter in the 'pop' function. Default function parameters are not supported by Internet Explorer (sigh) and older versions of Safari and cause errors.
• In the date picker, the text color style in the header with week days (Mo, Tu, etc.) was not set properly, resulting in illegible week days when on the User Interface Styling page dark backgrounds have been selected for bars, headers and lines.
• In year view events represented by a symbol (specified in the event category) were hiding (overlapping) events represented by a mini square.
• When a user was part of a user group for which posting repeating event was disabled, the Event window layout was corrupted.
• When an event needs approval, the user could already send an email/sms "now", before the event was approved. This should not be possible and has been solved by not displaying the "notify now" check box as long as the event has not been approved.
• If on the Settings page, under Views, "Weeks to show in Month view" is set to 1 (display one full month) and the "First day of the week" is set to 1 (Monday), then when the first day of the month is Sunday, the first week, with the first day of the month on Sunday, was not shown.
• When specifying the repeat parameters in the Event window, an invalid end date format could result in a PHP error message.
• An invalid source date could corrupt the display of the date picker.
• Due to an error in the upgrade function when upgrading from V4.5 to a greater version the category symbol (if specified) and the sub-category ID (if a sub-category was specified) were not copied from the v4.5.2 database to the upgraded database.

Roel

425

(3 replies, posted in Suggestions)

Hi Mike,

I've no experience with Lightning. I will have a look at the web to see if this is feasible.

Roel