LuxCal Forum

The place for questions, suggestions and news about the LuxCal Event Calendar

User:   Password:   Remember Me?   
LuxCal Forum / LuxCal / What's New / LuxCal 4.3.0 - MySQL and SQLite: Released: 2015.12.14
Posted:  01 Dec 2015 13:37   Last Edited By: Roel B.
This new calendar version has several new admin options for event categories and user groups. The most important new options concern the use of the calendar as a booking calendar, where events are not allowed to overlap.
For users with manager rights, a sidebar, similar to the Todo List and Upcoming List, with events to be approved has been added to the navigation bar.
The Restore function on the admin's database page, now accepts backup files from the MySQL calendar version as well as the SQLite calendar version, which makes switching from one version to the other easy.

Changes/Improvements since SQLite version 4.2.1
- A new option has been added to the admin's Settings page to enable/disable the display of images in the day cells of the Month view page. Previously in Month view images were only displayed in the hover box.
- The extra event description fields, extra field 1 & 2, can now each be set to "admin only", which means the field is only visible to users with manager or admin rights.
- For email notifications, sent via the PHP mail function, the email will be sent to the recipients as Bcc (Blind carbon copy).
- Like for the full calendar, the event categories to be displayed in the mini calendar can now also be specified in URL of the mini calendar with the "cC" parameter. E.g.[]=4&cC[]=6.
- For repeating events, the date selected by the user will be displayed, rather than the first date of the date range.
- Event sorting (after retrieval) changed as follows: start time + date/time added, with the last added event at the top.
- A blank search text or a single ampersand is now allowed and will match any text, and therefore each event.
- When searching for text, the highlighting of the text found only worked for the event title. Changed so that the found text is highlighted in all fields.
- To improve the rendering speed of the calendar pages, JavaScript scripts, are now loaded asynchronously.
- Viewport definition added to styles, to improve the initial display of the calendar on mobile devices.
- Arrow and cross images replaced by Unicode characters. Redundant image folder removed.
- Function isMobile updated to the latest standards.
- The close button (X) of the Upcoming and Todo sidebars now turns red on mouseover.
- The drag functions, to drag the Upcoming and Todo sidebars, have been simplified.
- Greek language pack added. The ui-file has been translated by Icehockey; the ai-files and ug-files are still in English.
- Czech user interface language file updated by jose_s.
- The Russian user interface language files have been updated by 0x3.
- Question mark moved from script to language files. Not all languages use the question mark character (?) for questions.

Bugs fixed
- After changing the time slot duration in day/week view, it always reverted to 10 minutes in stead of keeping the latest value.
- Imported multi-day events were shortened by 2 days.

Changes/Improvements since MySQL version 4.2.2
- For each event category the admin can specify that no overlapping events are allowed. If no overlapping is allowed, and a user adds/edits an event which overlaps with an existing event, an error message will be displayed. The text of the error message can also be specified by the admin for each category. Repeating events are not allowed when a category with overlap checking is selected.
- On the categories page the option has been added to specify a default time slot. If a users defines no end time for an event, and for the selected event category a default time slot has been defined, then the end time will be automatically set to start time + default time slot.
- For each user group it can now be specified if the users in the group can create private events, multi-day events and recurring events. For users, who are not allowed to use these features, the deselected features will not be shown in the Event window, resulting in a more simple Event window.
- The restore function on the admin's database page, now accepts backup files produced by the MySQL as well as the SQLite version of LuxCal and also accepts backup files produced by external tools like phpMyAdmin and phpLiteAdmin. This makes it easy to switch from a MySQL to a SQLite calendar version and vice versa. The version of the backup file must match with the version of the calendar. Note: To import phpMyAdmin backup files into the SQLite version of LuxCal PHP should use SQLite 3.7.11 or higher.
- A user group filter has been added to the options panel, which - if enabled by the admin - will be available for all users, including the public user. On the Search page you can now also choose to search in one specific user group.
- A sidebar, similar to the Todo List and Upcoming List, with events to be approved has been added to the navigation bar. The To Approve list will only be available for users with manager rights or higher. Like the Todo and Upcoming lists, the To Approve list can ce enabled/disabled on the admin's Settings page.
- In the Approve, Todo and Upcoming side bars, the date interval for which the events are displayed has been added to the top of the bar.
- An option has been added to the Settings page to enable/disable the display of the event owner name in front of the event title in all calendar views.
- Viewport meta tag added to page headers, in order to better fit the calendar display on mobile devices with a limited screen size.
- In the admin drop down menu, the title "Administration" has been excluded from the possible selections.
- Transliteration limited to the calendar title only. No need to include the event title or other text.
- When importing events from a csv-file or an iCal-file, <a>-tags are added to URL links in the description field, so that these links are displayed as hyperlinks in the calendar.
- If on the Settings page the "link to parent page" is specified, the back button in the navigation bar was displayed in the stand-alone calendar as well as in the calendar displayed in an iframe. However, in an iframe the back button creates strange effects and therefore the button is now suppressed in the calendar which is loaded in an iframe.
- The upgrade function and backup import function have been rewritten and moved to the toolboxx.php file. The calendar now automatically upgrades from LuxCal version 2.7.2 or later and via lctools.php MySQL as well as SQLite backup files as of LuxCal 2.7.2 can be imported.
- The Danish user interface language files have been updated by John.
- The Administrator's Guide has been updated and completed with the new LuxCal 4.3 functionality.

Bugs fixed
- The page footer was not displayed on the login and the search page
- On the Search page, when leaving the search text field blank, in the search result, UTF-8 characters were not correctly displayed.
- The getTables function sometimes retrieved wrong table names which could cause the backup command to fail. SQLite only.
- If, while editing multiple fields on the user, user groups or category page, a validation error occurred, all changed fields were reset to the original value, which means all changes had to be re-entered.
- When validating the event form fields, the validation errors for some fields were ignored and no error message was displayed.
- On the admin's User groups page, the Admin group could be deleted, while the Read access group could not. This should be the other way around.
- When adding / editing a group with an invalid group name, the group was not added / changed, but no error message was displayed.
- In the smtptest.php tool, a syntax error in the script caused a blank page to display.
Posted:  01 Dec 2015 18:26   Last Edited By: Roel B.
It sounds very impressive Roel. LuxCal just keeps getting better and better.

If I understand the booking feature correctly, if I have a board room I can book it if it is available.

Down the road, a nice feature for anyone using LuxCal for events would be the ability to register for an event. If there is limited attendance then it could include that as well. Say it is limited to 30 attendees, if there are 30 that have registered to say they are attending they can't because it is full. They are then added to the waiting list. If someone cancels that will be attending the first person on the waiting list gets their spot.

These are simply thoughts or ideas on my part of extending the functionality. I certainly understand if you have no desire to add something like this to LuxCal.

"Little Guy"
Some own motorcycles, others ride them.

Find great LuxCal examples by Schwartz at
Posted:  02 Dec 2015 18:39   Last Edited By: Roel B.
Hi Dan,
Yes, you are right. You can book a board room, a summer cottage, a billiard table, a golf course, etc.

A week ago someone suggested exactly the same ability to let users register for events. I agree it would be an interesting feature for the calendar users. My first impression is that it's quite a bit of work to implement, with a waiting list, as you suggested, with user registration, with some form of security (captcha?) to prevent spamming an event, with notification to registered users if the event is cancelled, etc, etc.
I will sleep (hibernate) on it for the rest of the year and then Spring 2016 see if I can find the time for it.
Posted:  02 Dec 2015 19:48
Hi Roel,

You have already reached a few milestones since I first started using LuxCal.

I'm sure you are correct that it will require a lot of work to implement all of the features that would be required to make it a useful and killer feature. That is one of a couple of things that has impressed me most about what you have done with LuxCal, one the feature set and second, when it is released practically no bugs.

"Little Guy"
Some own motorcycles, others ride them.

Find great LuxCal examples by Schwartz at
Posted:  02 Dec 2015 20:07   Last Edited By: Roel B.
Hi both

I am looking forward to spring 2016 !

And Roel - it should be only the event owner/admin that were able to mail participants ( mail now - or a cron job according to the event setup - as it is now ). And the participant-table/list, is a waiting list in itself - You have a date-time for the participation, and the event owner will have to accept ( if set up ) the participation.
Only logged-in users should participate, and if it is a more "public" event, the participants will have to self-register.
Santa Claus is sleeping/hibernating the whole year, except December where he is very busy - so it is okay to do the opposite wink

But perhaps more to this in another forum/thread.

Posted:  02 Dec 2015 20:48   Last Edited By: Roel B.
Hi Dan and Someone,

Yes, you are the two who suggested to implement the ability for users to register for events. As a matter of fact I very much appreciate your suggestions and the help of both of you. I know that Someone is ready to help me beta-testing again next year and with a bit of persuasion I guess I can get the support of Dan too. But you guys should learn PHP, SQL and JavaScipt and help me programming wink
We have 4 horses and we need time to ride them, so where should I find the time to implement your interesting suggestions ??

Kind regards,
Posted:  02 Dec 2015 22:14
Hi Roel

I think we should let the magicians do the magic - but perhaps we could ride Your horses, while You enjoys some Java.
We have done the hard work of thinking biggrin
And - as Dan wrote - we know it will be a killer feature.

Posted:  02 Dec 2015 22:35   Last Edited By: Roel B.
Hey, nobody rides Titan (my horse) but me ohmy

Hhmm, a killer feature . . . yes, you may be right, if I accept this challenge, my wife might kill me.
Posted:  03 Dec 2015 12:06   Last Edited By: Roel B.
Hi Roel,

If I lived closer I would offer to ride your horses. I always thought my wife would make a good / great programmer since she is really good with logic and puzzles, programming always seemed confusing to me.

I'm not saying that when I look at php code that some of it doesn't make sense because it does. My problem every time I have tried making the simplest of edits I'm missing a "; or , which generates an error.

Now writing some help documentation with screen shots as a walk through is something I can do and have done.

Yes I will help with beta testing and seeing if and how I can find bugs.

"Little Guy"
Some own motorcycles, others ride them.

Find great LuxCal examples by Schwartz at
Posted:  04 Dec 2015 10:58   Last Edited By: Roel B.
Good news Roel!  Your script is truly second to none.  I'll bet keeping up with it can be overwhelming at times but I sure am glad you continue to find the time to do so.  (In between some much needed breaks every so often, of course.  ;)
Posted:  14 Dec 2015 19:01   Last Edited By: Roel B.
Hey Gork!

Breaks? What do you mean breaks? The word breaks is not part of my vocabulary wink

Posted:  18 Dec 2015 02:34
But...  But the horses!  ;)

Fwiw, I just upgraded my install from 422M to 430M without issue.
Posted:  18 Dec 2015 10:11   Last Edited By: Roel B.
Yeah, you've got a point there, the horses. Always worth a break and always top priority!

Glad to hear that you upgraded. That encourages me to keep on producing new versions smile