Highlights

This new LuxCal version 5.2.0 includes interesting new features, improved technical issues and bug-fixes.
Most important new features / improvements:
• Two authentication bypass vulnerabilities, which could be exploited by a software expert to acquire admin access to the calendar have been remedied.
• In the event window a "No Time" checkbox has been added, which can be checked for events for which the time is unimportant.

As usual, this new release has been tested with the help of John from Denmark. Thank you John!

Hereafter you will find a full summary of all changes since LuxCal version 5.1.1.

New features/Improvements
• In the event window a "No Time" checkbox has been added just below the "All Day" checkbox. When No Time is checked, the start and end time fields will be hidden and in the various calendar views neither the time of the event, nor the text "All day", will be shown.
• Two authentication bypass vulnerabilities, in the calendar and in the displays, which could be exploited by a computer software expert to acquire admin access to the calendar have been remedied.
• A new setting has been added in the Views section of the Settings page, which can be used to enable/disable the display of the current date on the top bar of the calendar views. For narrow screen devices, because of lack of space, the current date has been removed from the top bar.
• For the Side Panel a new check box "Today" has been added in the Views section of the Settings page. When this check box is checked, the Side Panel will always use the date of today and when unchecked, the Side Panel will follow the date currently selected in the main calendar.   
• In the configuration section of the Upcoming Events and Birthday Calendar PDF print scripts, when the calendar ID setting is left blank (""), the current calendar will be taken (rather then the default calendar, as in the past).
• Date picker and time picker look enhanced and a few minor HTML flaws fixed.

Technical issues
• When a cron job is running daily and no cron services are active (no email, no SMS, no reports) the cron job summary will show a message "No reminders or periodic services active".
• When the cron job processing fails due to the security checks, the log message now shows which of the security checks failed, i.e. local cron started from a remote server or remote cron IP-address mismatch.
• scrollY function renamed into scrollV (vertical). scrollY is a reserved JavaScript word.
• When producing PDF prints and on the Settings page a logo path has been specified, the software now checks if the logo file is available on the specified path.
• A minor error in the calculation of the "to" date has been corrected. At the same time the "from" and "to" date calculation functions have been combined in one calcFTDate function.
• The height of the date input fields used to select the date bracket for PDF prints has been made proportional to the selected font size.
• During a calendar upgrade, the old 'sml' format of email links in the text1, text2 and text3 fields of the events table is now converted to the new format.
• The regex used to parse the text for the birthday calendar has been simplified. It is now possible to use round brackets in the birthday text between the #-characters.
• In past calendar versions, the text "[cd]" was replaced by the current event date because at that time this date was used by the email links. This is not done anymore and therefore the PHP code for these replacements has been removed.
• Further PHP 8 compatibility improvements (mktime function).
• The lctools.php script has been removed from the calendar's installation package. Creating multiple calendars can be done easily via the  installxxx.php script.

Bug fixes
• In the event report, which is opened when an event is clicked, events for which a sub-category has been selected are not shown in the sub-category color.
• When adding an event in an event category for which "No overlap allowed" has be set to "same category", an SQL error occurred. (This problem was introduced when adding the event type).
• Because of a stray variable ($eStyle), when an event with a URL in one of its description fields was shown in the side bar, a PHP Notice was produced.
• In the PDF Birthday Calendar portrait/landscape window, the labels of the radio buttons could not be clicked. Solved.
• The function to make the event repeat text produced "Rolling" when Repeat every xth weekday of month y was selected. (Missing break; in the switch statement).
• The problem with the left margin on landscape and portrait PDF prints, when a page break falls in the middle of the event body, is solved.
• The validation of GET variables has moved to after getting the settings, because if a GET variable is not valid, an alert message is shown, which uses some settings. For the same reason, the loading of the winXP variable is moved to before validating the GET variables.

177

(7 replies, posted in Need Help)

Hi Mustafa,
Answers to your questions:
1. I don't know. The best way is to search the web and look what other Nowegians suggest. Before you sign up with a provider (SMS carrier) you should always ask them for a trial user account with some credits (e.g. 1 €) so that you can test if it works with the LuxCal calendar.
2. By checking and reading the documentation on their websites.
3. LuxCal works via an API which sends an email. The email address part before the @ can contain a username/password, or user ID and the part after the @ is the SMS carrier (the provider). You can see examples by going to the calendar's Settings page and in the section Reminders - SMS hover over "SMS carrier template".
Roel

178

(2 replies, posted in Need Help)

Hi there,
I don't understand what you mean. In which calendar should I look?
Roel

179

(3 replies, posted in Need Help)

Huh, did I fix it!?

I just tried to analyze the problem. I'm not aware that I fixed something wink
Roel

180

(3 replies, posted in Need Help)

Hi Mustafa,
No, there is no need to contact Tech Support of your webhost. This is a calendar problem.
Are you using the latest calendar version 5.1.1?
Does this happen for events in all categories?
I have the feeling that this happens for event for which the category has "No overlap allowed" activated. Can you check this please.
Could you send me the file "logs/sql.log" via the Contact Us page.
Roel

Hi Mustafa,
I think on the Category page, for the Event categories you have created, you have checked "Day color". In that case the whole day gets the color of the event category.
What you should do is the following:
Edit the categories you created and for each category UNcheck "Day color (year/matrix view)" and "Day color (month/week/day view)".
On the Settings page set "Event colors based on" to "Event category" (as it originally was).
Roel

182

(2 replies, posted in What's New)

So far nobody ever asked.
It seams that the punBB forum software provides no means to change the user password. Even I, as administrator, have no option to do so.
I'm sorry for this.

If it is really important, I suggest to create a new use account.
Roel

183

(7 replies, posted in Problems)

OK, great!
I didn't think of that.
Roel

184

(7 replies, posted in Problems)

Maybe you could send me a backup of your calendar database. I will then upload this to our test server and run it with the latest calendar version. In this way I can analyze the problem on our server.
If you agree, then you should go to the calendar's Database page (via the side menu), check Back up and Start. Thereafter you can download the backup file and send it to me by mail using the mail address on the Contact Us page.
Roel

185

(7 replies, posted in Problems)

OK, I see. So the birthdays you entered for 2020 and 2021 should appear in the birthday calendar.
Are you using multiple calendars and could it be that you entered the birthdays in calendar X and the in the pdf Birthday calendar generator looks in calendar Y?

Would it be possible to send me (via the Contact Us page) the URL of your calendar and create a temporary admin user for me. I will then analyze the problem.
Roel

186

(2 replies, posted in Problems)

Hi mark,

Hmm . . . this is kind of special. First of all, nobody else reported such a problem. Secondly, the message "Forbidden -- You don't have permission . . ." is not a LuxCal calendar message. So this must be a message from your server. Why, I don't know.
Would it be possible to send me the URL of your calendar (via the Contact Us page) and create a temporary admin user account for me, so that I can try this my self..
Roel

187

(7 replies, posted in Problems)

Hi there,
I tried to reproduce the problem and looked in the code and could not find the problem, it worked OK for me.

However, what could cause the problem is the following:
The calendar looks in the "current year" for birthdays, so at the moment that is 2021 and if you have added the birthday of Annan Larsson in the year 2022, it will not see this birthday.
This is a flaw in the current calendar, which I will repair in the next calendar version.
So for V5.1 you should enter the birthdays in the current year, or before. (Since it's now December, 29, you will probably see Annan's birthday in three days time).
Roel

Hi John,

In your one but last post you wrote:

- cron reports: "NO emails & NO messages are to be sent"

So I assume you received an email from the calendar, sent to your admin mail address saying that there are no events due.
This means your cron job is running, I assume early in the morning, and is starting the calendar's lcalcron.php script. This is good! It also means that sending emails is functioning, so your mail settings should be fine. This is also good! However, the calendar thinks there are no events due and therefore no mails to be sent.
So we should find out why the calendar thinks there are no events due, while you think that there are events due.
Would it be possible to send me an email (via the Contact Us page) with the URL of your calendar and give me temporarily admin rights, so that I can have a look at how you have set up your events and analyze the problem.
Roel

189

(4 replies, posted in Problems)

The solution is under Known Issues and Fixes (2nd from the top). Click here

You can also send me an email (via the Contact Us page) and then I will send you an updated toolbox  file.

Roel

190

(2 replies, posted in Problems)

Hi Mattie,

There is no setting for this. However, a minor change to the code will do the trick:
Edit the file "views/month.php" and change line 76 from . . .

$st = $tcDate - ($sOffset + 7) * 86400; //start time (1 past week)

to . . .

$st = $tcDate - $sOffset * 86400; //start time

Roel

Hi Stefan,
Yes correct, this was discussed before (maybe it was you, who brought this up wink).
The main reason for converting all GET requests to POST request is to NOT show all the URL parameters. These parameters don't look nice and they may encourage (malicious) users to start experimenting with these parameters.
There is no other reason.

Roel

Correct Stefan.

I've put the day markings only on pages where there was an "unused" bar at the top of each day, like Month view, Year view and the mini calendars.
On the Day and Week view pages there is no "unused" space for the markings.

Roel

193

(1 replies, posted in Problems)

Hi there,
I'm currently looking into this problem.
Could you send me an email (via the Contact Us page), so that I can send you a solution.

Roel

For events in a category with sub-category colors, the sub-category color is not shown in the Event Report.
Solution:
Edit the file "pages/eventreport.php" and move line 72 . . .

$sCats = json_decode($row['subCats']);

. . . to line 67, just before the "if".
Roel

195

(4 replies, posted in Problems)

Hi there,
I have sent you an email: 2021-09-19 @ 17:07 with the solution (an updated toolbox.php file)

Roel

When adding an event in an event category for which "No overlap allowed" has be set to "same category", an SQL error occurred.

This can be solved by editing the file "common/toolbox.php" and replacing . . .
line 386 ($filter = "(e.type = {$typ} AND c.`noverlap` = 2)";) by

$filter = "(c.`noverlap` = 2)";

and line 388 ($filter = "(e.type = {$typ}".($eid ? " AND e.`ID` != {$eid}" : '')." AND ((c.`noverlap` = 1 AND c.`ID` = $cid) OR c.`noverlap` = 2))"; //if update, exclude event self) by

$filter = "((c.`noverlap` = 1 AND c.`ID` = $cid) OR c.`noverlap` = 2)".($eid ? " AND e.`ID` != {$eid}" : ''); //if update, exclude event self

and line 414 (retrieve($sDate,$eDate,'',$filter);) by

retrieve($sDate,$eDate,'',$filter,$typ);

Use cut & paste !

You can also send us an email via the Contact Us page and we will send you the updated toolbox.php file.
Roel

197

(3 replies, posted in Problems)

Hi Dak,
The smtpMail function has not changed since several years and is basically the same as the smtptest.php script.
So I'm wondering is there something in the mail message itself (like the "bare LF", as mentioned in your first post), but so far could not find anything in particular.
I will have another careful look. Should you find something, please let me know.

Roel

198

(3 replies, posted in Problems)

Hi DAK,
It's hard to say what causes the problem. I checked the LuxCal emails and can confirm that I did not find any "bare" LFs, all LFs are preceded by a CR.
You are writing "recently occurred", does this mean that in the past the error did not show up?
Does it happen with all emails, or just some emails?

Roel

Ha ha, oui, pour une simple smile

Toi aussi une bonne fin de journée.
Roel

Hi there,
Just to be sure I understand your exact needs:
Are you looking for the possibility to define separate background and bar colors for each individual month, so 12 pairs of colors?
If so, would a fixed table somewhere with 12 x 2 (bg and bars) color do?
The bars are part of the calendar frame and the calendar frame can contain more than one month. So how should the bar colors be linked to the month? Or have you configured the Settings such that always one full month is displayed?
Do you want these colors just for Month view, or also for Year view?

Once I have your reply, I will see what would be the best approach. Could be tricky and quite a bit of work wink
Roel