226

(5 replies, posted in Problems)

Hi there,

This post made me think . . .

Currently in the event title the following HTML tags are allowed: <b>, <i>, <u>, <s> and <center>. I could allow the <br> tag as well, so that users can split the event title in more lines, if they wish.

Klaus, if this is what you want, send me your email address (via the Contact Us page) and let me know what calendar version you are using. Thereafter I will send you two files with a minor change.

Roel

Hello Olivier,

Changing existing sub categories to a new position will NOT change the position in the events in the calendar. So this should be avoided.
For example: If you change "public holiday" from #4 to #7 and #4 will now become "hill", then the already existing public holidays will become "hill" sad

Roel

Hello Olivier,

Softaculous contacted me on 2 December 2020 (directly after the new version was released) to tell me that they were upgrading LuxCal to version 5.1.0M.
I just checked on our server (web host: AltusHost) in cPanel and saw that in the Softaculous Apps Installer the LuxCal calendar has already been upgraded to V5.1.0.

I don't what web host you are using, but I expect that LuxCal v5.1.0M will be available very soon. If not, I can help you to upgrade smile

Roel

Hi Stefan,

The German language files have been reviewed, corrected and completed just before the release of V5.1.0 and are included in the new version. The only texts that have not been reviewed and updated are the explanations when hovering the items on the settings page (in the ai-deutsch.php file). So when you have a spare moment . . .

Roel

Message for Stefan and whoever is interested:

When we released the previous LuxCal version, Stefan asked if there is a roadmap for the LuxCal calendar and if we can shed some light on our plans for the future. At that time I forgot to answer, for which I'm very sorry.
I want to make up for that now.

The very first LuxCal version was released about 12 years ago and since then many new versions with hundreds of improvements were released. LuxCal evolved from a rather basic web calendar to a very flexible high quality web calendar tool. During all these years enthusiastic LuxCal users helped us to improve the calendar with each new version, always paying maximum attention to flexibility and user-friendliness.

After the release of version 5.1.0, there are no plans for any further major changes. We will however continue to maintain the LuxCal calendar, so that the calendar software will stay up-to-date with the latest standards, i.e HTML, PHP,  JavaScript and CSS versions and standards.

We will continue our support to individual LuxCal users, by offering help when problems are encountered and by helping to implement minor specific changes.
If during these support activities, users make suggestions, or ask for changes, which are of general interest, we will not hesitate to implement these changes in a new LuxCal calendar version.

Many of the 21 language files, specifying the calendar's user interface texts, are not up-to-date anymore with the latest calendar version. They contain all texts, but not all texts have been translated. So if you have a spare moment please update the language files of your language and send us a copy, so that we can include the updated files in a new calendar version.

Roel

Highlights

This new LuxCal version 5.1.0 includes interesting new features, improved technical issues and bug-fixes.
Most important new features / improvements:
• No more "PHP session expired" messages for view-only calendar pages, so all pages without forms with input fields.
• New "rolling" events. Once the start date of these events has passed, it will keep on "rolling" to the current day, until the user deselects "rolling". When a reminder has been set for a rolling event, a new reminder will be sent each day the event rolls to a next day.
• In month view the full-width event title line (from the left to the right margin of the day cell) can now be clicked to open the event report or edit window and can be hovered to view the pop-up box with event details.
• Event sub-categories are now more flexible and not limited anymore to a maximum of four. In addition sub-categories can be copied from other event categories.

This new release has been tested again with the help of John from Denmark. Thank you John, well done!
The Dutch and German language files have been thoroughly reviewed, corrected and completed by Piotr in Germany. Thank you Piotr!

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

New features/Improvements
• Calendar pages not containing forms that can affect the database content will not time out anymore when a PHP session expires. This means that the calendar can stay open and unused for long periods of time without "PHP session expired" messages. Only pages with forms that can affect the database content will time out when the user does not submit the form within the expiry time of the PHP session (24 minutes).
• When the user does not submit the form in the Add/Edit Event window in time and the PHP session expires, to avoid the loading of the calendar in the Add/Edit Event window, together with the "PHP session expired" message just a "Close" button is displayed, instead of a "Restart" button.
• In the Add/Edit Event window, the "Set Repetition" overlay has a new option "Rolling". A rolling event is an event that, once the start date has passed, will always "roll" to the current day. When a reminder has been set for a rolling event, a new reminder will be sent each day the event rolls to a next day. When the user deselects "Rolling", the event will stop rolling and remain fixed at the current day. Rolling events will help users who have a tendency to postpone their tasks.
• The way event sub-categories are stored in the calendar database has been made more flexible. The maximum number of sub-categories, which was four in the last calendar version, is now flexible and can be selected when editing a category. It is now also possible to copy all sub-categories of one category to an other category. Sub-categories present in previous LuxCal versions, will be automatically converted and preserved during the upgrade process to LuxCal V5.1.0.
• In month view the full-width event title line (from the left to the right margin of the day cell) is a hyper-link which can be clicked to open the event report window or the edit event window and can be hovered to view the pop-up box with event details. In previous versions only the event title text was a hyper-link.
• When on the Settings page in the "Events layout" template the extra fields were included and contained an image, the image would be shown on the calendar, even if on the Settings page "Show images in month view" was disabled. If "Show images in month view" was enabled, the image would be shown twice. This has been solved by removing images in the event title.
• The default number of days to search back and the default number of days to search ahead, which used to be fixed 365 days respectively, can now be specified on the admin's Settings page.
• On the User profile page, in the Change my data form a "Done" button has been added to return to the calendar page after the user data has been changed.
• On the Edit User Groups page in the Edit User Group form the interaction between the View and Add event categories check boxes has been improved. The (un)checking of the Add check boxes have been made subordinate to the (un)checking of the View check boxes.
• The log-in box on the Log In page has been made slightly narrower to make it also fit on a mobile phone in portrait position.
• A script, called cron.php, has been added to the !luxcal-toolbox folder. When multiple calendars have been installed, this script can be used to start multiple lcalcron.php scripts, using only one cron job. An explanation is given in the readme_cron.txt file.
• Several small stand-alone tools have been added to the !luxcal-toolbox folder in the LuxCal zip-file. These tools can be used to get information about your server and the PHP installation on your server.
• On the settings page, in the General section, the "Link to parent page" can now, besides a URL, also be a path relative to the calendar root folder.

Technical issues
• The token used to validate user inputs is now only used for forms. The token which was stored in a cookie (LXtkn) has moved as a hidden input to each form that directly affects the database. In combination with item number 2 hereafter this means that only pages with these forms will time out when the submission does not take place within the expiry time of the PHP session (24 minutes). Surfing the calendar pages which contain no forms affecting the db will not depend on PHP sessions and will therefore not time out when the PHP session expires.
• The last user selections (cP, cC, cU, cG and cD) were saved in a PHP session variable and, if on the Settings page Restore last user selections was selected, also in a cookie. Storing variables in two places is undesirable and therefore they are now always and only stored in a cookie. At the initial start of the calendar these values will be used if on the settings page Restore last user selections has been selected.
• The user rights (privs) were stores in a PHP session variable and used by the dloader. To reduce the dependency on PHP session variables, the dloader is now getting the user privileges from the database.
• To avoid duplication of code the code to produce the Side Panel in month, week and day view has moved to a the new file vfunctions.php. The dw_functions have also moved to this new file.
• Like for the calendar's month, week and day view, now also for the the calendar sidebar the event layout can be specified via a template with keys.
• In the alert.php file the HTML lang tag is set to the language corresponding to the ISOCODE in the active ui-{lang}.php file.
• The regex to extract side panel info messages from the file info.txt has improved, so that only messages are extracted where there are no other characters but spaces in front of the ~ (tilde) character of the month number.
• On the Settings page PHP info hyper-link replaced by a button.
• The code to submit the event edit form when a new category is selected has changed from onChange="document.forms['event'].submit();" to onChange="this.form.submit();". Code simplification.
• When in the Add/Edit Event window a category is selected for which a repetition has been specified, the "Change repetition" button is suppressed. Category repetitions always overwrite.
• In the previous version, when in the event layout template, between two separators one #-parameter resulted in an empty string, the whole section was omitted. This has changed: now the whole section is omitted when ALL #-parameters between two separators result in an empty string.
• Since many ISPs only accept PHP mails being sent from an email address hosted on the same server as the calendar, the "From" field of all emails will always be the calendar email address. When on the Settings page, in the section Periodic Functions the "Add 'Reply To' field" has been checked, emails will contain a 'Reply to" field with the event owner's email address.
• Since not all ISPs accept PHP mails with a blank 'To' field the 'To' field is now set to the calendar email address. In addition, to make the source code of emails better readable, after each </tr> and <br> tag, a crlf (\r\n) has been added.
• The link rel="canonical" has been removed from the page header because is was not useful.
• Rather than passing the current calendar ID in the calendar's head section via a parameter in the style sheet URL, the style sheet is now getting the calendar ID directly from the LXCcid cookie.
• The URL for valid time zones updated to https://www.php.net/manual/en/timezones.php.
• For a new installation of the calendar the initial language for the administrator is set to English. In the previous calendar version it was not set and resulted in Bulgarian (first in the list).
• To prevent session fixation attacks, the PHP session ID is regenerated each time the index.php file runs.

Bug fixes
• Due to an erroneous style ("body {overflow:hidden;}") the calendar pages can not be scrolled on a mobile device. Solved.
• In the Add / Edit Event window, when there are two consecutive separator characters (;;) in the Send mail's "To" field, a PHP notification message was shown. Solved.
• For events in Week and Day view, falling outside the active day hours, the event layout template from the Settings page was not used and always resulted in: start time followed by event title.
• When the Help window overflowed and the content was scrolled up, the overflow part did not have the correct background color.
• There was an error in the backupDatabase function. The PRIMARY KEY (`ID`) directive at the end of the CREATE TABLE commands was mistaken for a table field by the regex. When trying to import the .sql backup file,  this resulted in an SQL error.

Hello Highlow,

Thanks for reporting this solution. Email problems can be a nuisance and often hard to analyze and solve.
I will change this for the next calendar version and also put the calendar (admin) email address in the 'To' field.

Roel

Hi Peter,
Could you give me an example of what you exactly need, please.
Currently it is possible to specify a multi-day event, let's say from 26 - 30 October (which are weekdays) and at the same time you could set this multi-weekday event to repeat "every week", or "every x weeks", for instance.
In this case you would have a five-weekday event repeated every x week(s).

But this is maybe not what you need?

Roel

234

(14 replies, posted in Problems)

Hi Klaus,

This sounds like an other kind of problem. Is this still a problem?

Could it be that you did not enclose the list name in square brackets? As said in one of my posts above, since end 2018 email recipients list names must be enclosed in square brackets.

Roel

235

(14 replies, posted in Problems)

smile

For those who may possibly run into the same problem:

On the Settings page, in the General section the specified Calendar URL was wrong. After correcting the URL all seems to be working again. Knock wood wink

Roel

236

(14 replies, posted in Problems)

Hi John,

At a distance it's hard to say what might go wrong with sending/receiving emails. Maybe the following will help to pin down the problem . . .

As John Schwartz said above, it is important to set the "Calendar email address" in the General section on the Settings page to a mail address hosted by the host of the calendar (i.e. IVC website). In the same context, it's also best to set "Sender of notification emails" on the Settings page, under "Reminders - Email" to "calendar".
The LuxCal calendar can send emails on the following occasions:

  1. When pressing the Test Mail button in the General section on the Settings page. This is working you wrote, right? So we know that PHP mail is functioning.

  2. When on the Settings page, in the General section, the "Send notification of calendar changes" has been checked and a valid email address is present in the Recipient list, each time a calendar change (add, edit or delete event) takes place (by whoever) an email will be sent to the recipient(s).

  3. When checking the Send mail now checkbox in the Add/Edit event window. These are the emails giving your calendar users troubles

  4. When a cron job has been set up, email reminders can be send, when requested, and a daily cronjob summary will be sent to the admin. However, you have no cronjob set up, so this number 4. is irrelevant.

Could you ensure that number 2. above has been done and put your own email address in the Recipients list. Now you should get an email of every calendar change!
What I would like to know is the following:
When one of the calendar users (could be you) does NOT get a requested email when "Send email now" was checked, do you still get a "Changed Event" email as a result of number 2. above?

And just to be sure:
I don't know if you are using recipients lists in the "To" field of the Add/Edit event window, but since end 2018, recipients list names in the "To" field should be enclosed in square brackets! In your User Guide on the IVC site, you don't describe sending emails; could it be that some users are not aware of this change and still are using recipients list names without square brackets? When hovering the red ? right of the To field in the Add / Edit event window, you will see all possibilities.

Hope this will help and will not confuse you wink
Cheers, Roel

237

(6 replies, posted in Need Help)

Hi FreeBe,

I've sent you a modified search.php file by email.

Roel

238

(6 replies, posted in Need Help)

Hi FreeBe,

Send me your email address and I will send you a new search.php file with a minor change.

No need for a feature request. The next LuxCal calendar version I have already has the possibility to specify the default search date range on the admin's Settings page smile
The only problem for you is that this new version has not yet been released sad

Roel

239

(6 replies, posted in Need Help)

Hi there,

Do you need to be able to change the default date range each time (flexible), or do you just want to change it once?

I can send you a search.php script with a minor modification where somewhere in the heading of the file you can specify the default number of days to look back and the number of days to look ahead. Would that be ok?

If so, please tell me what LuxCal calendar version you are using (see top of the Settings page).

Roel

Doss,
I did some testing and analyzing and came to the following conclusions:
1. Using firefox, edge, chrome, opera and safari I could reproduce the same problem by using an iframe to load a calendar from an other domain.
2. In all browsers the problem was identical: Session expired - 'no session cookie' message in the bottom status bar.
3. I searched the web for a reason and found that cookies cannot be used cross-domain.

Item 3 means that the calendar (or any program) in domain x, loaded in an iframe of a website in domain y cannot set cookies in the browser visiting domain y.
Consequently when the calendar in domain x cannot set a cookie in the browser visiting domain y, the calendar cannot function. The display of the initial calendar page will work, but as soon as the user tries to go to an other calendar page, a PHP session is needed (to remember the user) and PHP sessions use a cookie to store the session ID.

Why it works for you in safari, is a mystery to me. For me it didn't work in any browser.

Roel

Hello Doss,
I'm not sure but . . . .
You are using the calendar cross server. In this case it could be that because of security measures in the calendar it is a problem to set a PHP session cookie.
The fact that it works with safari maybe means that safari is a little bit less strict w.r.t the cookie path.

Could you try the following:
- edit the index.php file (in the calendar root) and
- change line 78 ($calPath = . . . .) into

$calPath = '/';

If this doesn't solve your problem, please let me know. I will then try to reproduce the problem and analyze it.
Roel

242

(3 replies, posted in Problems)

Hi Hubert,

I need some more details . . .
What does your daily report say? Does it say that email reminders have been sent?
For every event created/modified you receive an email, but these emails are sent directly and not through a cron job. It shows however that the PHP maill function is working. So yes, great.
But the question above is important for the analysis of the problem, did the daily report say that email reminders have been sent?

What does the file logs/luxcal.log say? Does it say "Cron Job started"? and "OK."?

Roel

Hi Bill,

On the admin's Settings page in the Events section, you can specify the minimum user rights required to see the Extra Fields 1 and 2. If a user has sufficient rights, he/she will see Extra field 1 and 2 respectively and will also see the thumbnails specified in the EF1 and 2. So thumbnails could be useful for EF 1 and 2 when you want them to be visible to a specific category of users.

Roel

Hi Lucas,

Sorry, I was not clear enough in my previous post . . .
"|(#a)|" should not be the only thing in the templates, it should be part of the templates! It is the "age" part.
So if you want for instance the event time , the event title and the age to be displayed, your templates should look as follows: "#ts #e| (#a)|"

When you only put "|(#a)|", the event title is not included and if there is no title, you can't click it to edit the event. So the event title "#e" should always be part of the templates.

You can see all possibilities on the Settings page, under Views, when you hover the label "Event layout in Month, Week and Day view".

Roel

Hi Lucas,

I remember that I've sent you some changed files in the past to display the age of persons having their birthday.
As Schwartz explained above, this feature has changed a bit to make it more flexible. This had to be done because not everybody was happy the age in parentheses. There are basically two changes:
1. To make the feature work, the year of birth should be present in the events description field enclosed in parenthesis
2. On the Settings page, under Views, in the "Event layout in Month, Week and Day view" templates you have now the freedom to specify how you want the age to be shown (e.g. "(#a)", "age: #a", "#a years old",etc. However, to ensure that the extra characters are only shown when #a results in a value, you should make it a section, by using the new section separators (vertical bar). So in your case you should put "|(#a)|" in the template .
Thereafter it should be fine.

I know that this means you will have to change a few descriptions (put parentheses around the year of birth) and I'm sorry for that. But I promise that I will not change this again in the future wink


Roel

246

(2 replies, posted in Suggestions)

Hi Klaus,

What do you mean by "a customized text". Do you mean that the notification should not contain the event details, but a text specified by the event owner? And if so, where should this text be specified? Should it be an additional field in the Event window, or could it also be a "marked" text in the event description (for example a text in square brackets)?

Roel

With calendar version 4.7.9 calendar pages will not scroll on mobile devices because of a problem in the style sheet.

The problem can be solved by editing the file "css/css.php" and deleting line 56 ("body {overflow:hidden;}")

When visiting the calendar after this change, don't forget to refresh the page once, so that the styles are reloaded in the browser's cache.

As of 13 August 2020 this fix has been applied to the download packages.

Roel

Hi Maxime,

I made a mistake in the calendar's styles. I'm sorry for that sad
The problem can be solved by editing the file "css/css.php" and deleting line 56 ("body {overflow:hidden;}")

When visiting the calendar after this change, don't forget to refresh the page once, so that the styles are reloaded in the browser's cache.

Roel

Highlights

This new LuxCal version 4.7.9 includes interesting new features, improved technical issues and bug-fixes.
Most important new features / improvements:
• Various improvements for the stand-alone displays. E.g. More flexible styling possibilities, filtering on event sub-categories, for birthdays automatic display of age, favicon possible.
• More flexibility to tailor the event title in month, week and day view, including and option for birthdays to automatically display the age of the person in your own format.
• The side bar information messages for each month have been grouped together in one file called info.txt. Messages can now be displayed during one single month or during several months.

This new release has been tested again with the help of John from Denmark. Thank you John, you're a hero!

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

New features/Improvements
• Stand-alone displays: More flexible styling possibilities. 1) The margins of the event container, containing the event head and body, can now be specified separately. 2) The font attributes of the "No events" text can be specified separately and the text has no background color anymore.
• Stand-alone displays: The possibility to filter events on event subcategories has been added.
• Stand-alone displays: For all displays a new configuration parameter has been added to specify a favicon.
• Stand-alone displays: An option has been added for displays to show for birthdays the age of a person in the event title. E.g. "Harry Potter (18)".
• An option has been added for month, week and day view to add for birthdays the age of a person to the event title. On the settings page you can add the key #a to the Event layout templates. If an event in an event category with "Repeat" set to "every year" has a year of birth in parentheses, e.g. (1982), specified somewhere in it's description field, the key #a in the event layout template will be replaced by the age of the person, which is the difference between the year of birth and the year of the calendar date. E.g. "Harry Potter (18)".
• In the views Upcoming Events and Changes, if an event in an event category with "Repeat" set to "every year" has a year of birth in parentheses, e.g. (1982), specified somewhere in it's description field, the age of that person will be shown in parentheses at the end of the event title.
• The event layout template for Month, Week and Day view has been improved. It now accepts separators (|-character) to split the template in different sections. If in a section with a #-parameter this parameter results in an empty string, then the whole section will be omitted and not be displayed. The template may also contain HTML tags; e.g. <b>#e</b>.
• On the Log-in page and the admin pages a Help button has been added on the right side of the Navigation Bar. On these pages it is not so obvious to open the side menu and select Help to get to the User Guide.
• When the matrix views are loaded, the focus is given to the matrix part of the page, so that the left/right arrow keys can directly be used to scroll the matrix left and right. This doesn't work in Chrome.
• The information messages for each month have been grouped together in one file called info.txt, rather than 12 individual files. It is now possible to define messages to be displayed during one single month or during several months.
• In the calendar URL, when using the cC parameter, it is now possible to specify negative event category sequence numbers for event categories that should be excluded from the calendar (e.g. ?cC[]=-2, &cC[]=-4).
• Drag functions to drag the Todo, To Approve and Upcoming Events lists have improved. The sidebars can not be moved out of the window anymore, they moves smoother and the text in the header cannot unintentionally be selected anymore.
• For the Todo list it is now possible to specify on the settings page the number of days to look back.

Technical issues
• On the admin's settings page, the width of the center box with the field sets was fixed 900px, but is now variable, which avoids field set lines to be wrapped when using languages with longer texts.

Bug fixes
• 01. pdfclass1.php, pdfclass2.php: If in the configuration settings for the pdf print layout no event body fields were specified, then the starting position of the event time(s) was always reset to the left margin.
• The connection to the calendar database was established before a possible pdf.cnf file was included and therefore the $calID setting from the pdf.cnf file did not overrule the default setting.
• The red X in the right upper corner of the User Guide window did not work anymore (since V4.7.7). Solved.
• In the past for new calendar installations the user interface language for the Public User was set to English, fixed. From now on the language for the Public user is left blank, which means the default language specified on the Settings page is taken.
• Stand-alone displays: The user interface language file used in the displays was the one corresponding to the default language on the admin's settings page. However, since the option to login has been added to the displays, the language file should correspond to the language specified in the account of the user.
• When the side panel was enabled, in week and day view the mini calendar in the side bar always showed the work days only, also when the main week view showed the full week.
• When validating the user name in email and sms recipients lists, "\u" was used to specify the range of accented characters. However "\u" is not supported by PCRE. Changed to "\x{}".
• When separating fields of an imported file, if a separator character is escaped by a backslash, the backslash character was not removed from the the field. Solved by using the PHP str_getcsv function, rather than the preg_split function.
• In display0 (the mini-calendar) one could just move one month forward or backward, a next click on the arrows showed the  message 'not permitted (display0)'. Solved by replacing REQUEST_URI by PHP_SELF.
• In the event description it is now possible to use image with more than one dot in the file name, for example: pink.2020.png.

wink