Download the latest version here: www.paderdesign.de
------------------------------------------------------------------

### GIGKALENDER CHANGELOG ###

<!-- Release Date 2022-10-17 -->
v1.2.83_039: Updated requirements regarding PHP module 'mbstring'
v1.2.83_038: install\index2.php: The installation also checks, if 'mbstring' module in PHP is enabled
v1.2.83_037: Bugfix: When gallery is opened there is this message:
  ⇒ Deprecated: Implicit conversion from float 136.51612903225808 to int loses precision in \gallery\functions.php on line 53
  ⇒ devision $newwidth/ratio caused a float, which does not work in functions like imagecreatetruecolor()
  ⇒ added a round().
v1.2.83_036: Bugfix: In some search engine results, like Ecosia, there was a PHP warning shown:
  ⇒ "Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /includes/backend_language_selector.php on line 7"
  ⇒ Apparently search engines do not have a language set, so here an empty language string is given
  ⇒ includes\backend_language_selector.php: Changed it with an isset()
v1.2.83_035: Bugfix: Front-End: Gallery: ERROR about missing 'original' folder was given
  ⇒ gallery\gallery.php: $OriginalsPath was wrong defined
v1.2.83_034: Bugfix: Front-End: Calendar: Several warnings in detail view, shortend strings were not required, the gig notes were shown twice and an 'x' was printed out twice
  ⇒ calendar\includes\frontend\subString.php: It was a WIP, but fixed now.
v1.2.83_033: Bugfix: Fatal error: Uncaught mysqli_sql_exception: Unknown column 'SetupContactURL' in 'field list' in functions\standard.php:12
  ⇒ includes\error_reporting.php: MySQLi Error Mode is permanently set to 'MYSQLI_REPORT_ERROR'
  ⇒ GigKalender 1.4 must have it permanently set to 'MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT'
v1.2.83_032: \guestbook\includes\showAllGuestbookEntries\subString.php
  ⇒ Applied new function getShortenedString2()
v1.2.83_031: \filesharing\filesharing.php: the mb_strtolower() has to vanish, as GigKalender will not relay on mbstring functions any longer
  ⇒ Removed counting of uppercase characters in file name
  ⇒ Removed mb_strtolower(), so file names keep their uppercase chararcters
v1.2.83_030: \calendar\includes\frontend\subString.php
  ⇒ Using new function getShortenedString2()
v1.2.83_029: \calendar\includes\frontend\GigNotes.php
  ⇒ Applied new function getShortenedString2()
v1.2.83_028: Bugfix: Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in \functions\standard.php on line 11
  ⇒ \functions\standard.php: getShortenedString2()
  ⇒ Added an IF statement
v1.2.83_027: \guestbook\includes\showAllGuestbookEntries\subString.php
  ⇒ Applied new function getShortenedString2()
v1.2.83_026: \functions\standard.php:
  - to get rid of mb_strlen() and mb_substr
  ⇒ Added new function getShortenedString2()
v1.2.83_025: includes\error_reporting.php: For backward compatibility with PHP versions < 8.1, MYSQLI error mode will be turned off here.
v1.2.83_024: Bugfix: \install\deinstall.php
  - Fatal error: Uncaught mysqli_sql_exception: Unknown table 'gigkalender12_gigs' ... thrown in \install\deinstall.php on line 30
  ⇒ Rewritten a fair part of \install\deinstall.php by using two new functions
v1.2.83_023: Bugfix: install\deinstall.php: If you run deinstallation although GigKalender isn't installed, a Fatal Error gets thrown.
  - Fatal error: Uncaught mysqli_sql_exception: Table 'gigkalender12_setup' doesn't exist ... thrown in \functions\standard.php on line 11
  - included was still the old \includes\header.php
  ⇒ including the new \install\head.php
v1.2.83_022: Bugfix: On deinstall: Fatal error: Uncaught mysqli_sql_exception: Unknown table 'gigkalender12_menu' in install\deinstall.php on line 59
  ⇒ \install\deinstall.php: Added an IF EXISTS to SQL statement
v1.2.83_021: Bugfix: /frontend/example_gallery.php
  ⇒ If subfolder 'original' doesn't exist, a warning gets thrown:
  ⇒ Warning: Undefined array key -1 in \gallery\gallery.php on line 67
  ⇒ \gallery\gallery.php: added an IF clause to filter for missing folders
v1.2.83_020: install/index2.php: Modified to make use of install/head.php
v1.2.83_019: install/index.php: Modified to make use of install/head.php
v1.2.83_018: Installation failed under new XAMPP with PHP 8.1 and MariaDB
  ⇒ This happened, because installation and backend both included the same includes/head.php
  ⇒ The includes/head.php requested a var from database table, which did not exist before it got installed
  ⇒ Apparently the new MariaDB v10.4.24 is not failing silently anymore
  ⇒ Added new file install/head.php
v1.2.83_017: Bugfix: frontend/example_gallery.php?&album=demo&image=1
  ⇒ Deprecated: nl2br(): Passing null to parameter #1 ($string) of type string is deprecated in \gallery\gallery.php on line 161
  ⇒ https://github.com/justinrainbow/json-schema/pull/666
  ⇒ added an "if ($Text!==NULL)"
v1.2.83_016: Bugfix: /frontend/example_calendar_past.php:
  Fatal error: Uncaught mysqli_sql_exception: Unknown column 'SetupFrontendCalendarGigDetailsURL' in 'field list'
  ⇒ functions/standard.php.getFrontendURL($Var):
    added an IF to perform getSetup() to not perform it on vars defined in gigkalender.ini.php

<!-- Release Date 2021-05-01 -->
v1.2.83_015: Bugfix: Password with a '<' could not be stored into database
  ⇒ functions\standard.php.editCurrentUser():
    Removed the strip_tags() functions
v1.2.83_014: Bugfix: Password with a backslash could not be stored into database
  ⇒ user\editCurrentUser.php: Using Post variable $_POST['UserNewPassword'] directly instead of $UserNewPassword
v1.2.83_013: includes\login.php: Enabled 'autofocus' on input field 'username'
v1.2.83_012: Bugfix: functions\import\12\user.php: Importing users with a backslash in password failed
  ⇒ Defined '"' as escape parameter
v1.2.83_011: .htaccess: Enabled COMPRESSING FILES
v1.2.83_010: .htaccess: Enabled BROWSER CACHING
v1.2.83_009: Renamed function logoutInactiveUser() into logoutInactiveUsers()
v1.2.83_008: frontend\example_contact-form.php: Replaced the German sentence with a shorter English one ("Please, drop me a message")
v1.2.83_007: frontend\example_contact-form.php: Removed unused variables
v1.2.83_006: contact-form/contact-form: $L_Result_NOK got replaced by $L_ERROR_Email_could_not_be_sent
v1.2.83_005: contact-form/contact-form: $L_Result_OK got replaced by $L_142
v1.2.83_004: contact-form/contact-form: mail() is now using the new language var $L_New_message_via_contact_form as subject
v1.2.83_003: contact-form/contact-form: mail() is now using the guestbooks email address for administration (setup var 'SetupGuestbookMail')
v1.2.83_002: Bugfix: Former update files did not rename "images/filesharing_notes.gif" to "images/filesharing_sheet-music.gif"
  ⇒ the full version has been correct
v1.2.83_001: Updated embedded CKEditor to version 4.16.0
v1.2.83: New feature: Admin: Export: Exported files are now saved in subfolders named by current date and time

<!-- Release Date 2021-03-03 -->
v1.2.82_008: Gallery: A demo album is now permanently included
v1.2.82_007: Bugfix: Front-end: Calendar: Notes in Detailview did show text non-formatted (all formats removed)
⇒ removed "$GigNotes = strip_tags($GigNotes);"
⇒ removed "$GigNotes = htmlspecialchars($GigNotes, ENT_QUOTES);"
v1.2.82_006: Bugfix: Front-end can not load calendars:
⇒ "Warning: include_once(calendar/calendar_wrapper.php): Failed to open stream: No such file or directory in calendar\calendar.php on line 14
⇒ moved "calendar/_keep/calendar_wrapper.php" back into "calendar\"
v1.2.82_005: frontend\example_formate.css: changed to "display: inline-block;" in .GigKalender .pagination
v1.2.82_004: frontend\example_formate.css: added "margin: 0;" to .GigKalender .NewsEntryHeadline
v1.2.82_003: frontend\example_formate.css: removed "margin-bottom" in .GigKalender .NewsNavigation
v1.2.82_002: frontend\example_formate.css: added "margin: 0;" to .GigKalender .GuestbookEntryHeadline
v1.2.82_001: frontend\example_formate.css: removed "margin-bottom" in .GigKalender .GuestbookNavigation
v1.2.82: New feature: The listed albums in the gallery got a pagination

<!-- Release Date 2021-01-04 -->
v1.2.81_005: admin\import.php.81: Warning: A non-numeric value encountered...
  ⇒ applied using function formatFileSize()
v1.2.81_004: admin\export.php.40: Warning: A non-numeric value encountered...
  ⇒ applied using function formatFileSize()
v1.2.81_003: removed all get_magic_quotes_gpc() (deprecated since PHP 7.4)
v1.2.81_002: contact-form\contact-form.php: Optimized layout of emails sent after filing the form
v1.2.81_001: contact-form\contact-form.php: Added missing honey-pot as spam protection, a hidden URL field.

<!-- Release Date 2020-10-12 -->
v1.2.81: Back end: Calendar: Added a new button to copy an existing gig to a new one
v1.2.80_193: contact-form\contact-form.php: Implemented an Anti Spam Timestamp, which can identify spam by calculating the time spent to fill the form
v1.2.80_192: guestbook\guestbook_form_internal.php: Implemented an Anti Spam Timestamp, which can identify spam by calculating the time spent to fill the form

<!-- Release Date 2020-09-06 -->
v1.2.80_191: gallery\gallery.php.142: Added a CSS identifier "Image", id="Image"
v1.2.80_190: gallery\gallery.php.144: Removed the unnecessary <br>-Tag
v1.2.80_189: frontend\example_formate.css: Removed "x-width: 100%;" in ".GigKalender .NewsEntryHeadline"
v1.2.80_188: frontend\example_formate.css: Removed "x-width: 100%;" in ".GigKalender .GuestbookEntryHeadline"
v1.2.80_187: gallery\templates\gallery_entry.php.28: The string 'Images' got replaced by a language variable $L_Images
v1.2.80_186: frontend\example_formate.css: ".GigKalender .GuestbookEntryComment":
  ⇒ removed "font-style: italic;"
v1.2.80_185: frontend\example_formate.css: ".GigKalender .NewsNavigation":
  ⇒ removed "font-size: 0.8em;"
v1.2.80_184: frontend\example_formate.css: ".GigKalender .GuestbookNavigation":
  ⇒ removed "font-size: 0.8em;"
v1.2.80_183: frontend\example_formate.css: ".GigKalender .NewsEntryDate":
  ⇒ removed "font-size: 0.8em;"
v1.2.80_182: frontend\example_formate.css: ".GigKalender .GuestbookEntryDate":
  ⇒ removed "font-size: 0.8em;"
v1.2.80_181: frontend\example_formate.css: ".GigKalender .GuestbookEntryHeadline":
  ⇒ removed "padding-top: 2px;"
v1.2.80_180: frontend\example_formate.css: ".GigKalender .NewsEntryHeadline":
  ⇒ removed "padding-top: 2px;"
v1.2.80_179: frontend\example_formate.css: ".GigKalender .NewsEntryHeadline":
  ⇒ removed "font-size: 1em;"
v1.2.80_178: frontend\example_formate.css: ".GigKalender .GuestbookEntryComment":
  ⇒ removed "font-size: 0.8em;"
v1.2.80_177: frontend\example_formate.css: ".GigKalender .GuestbookEntryText":
  ⇒ removed "font-size: 0.9em;"
v1.2.80_176: frontend\example_formate.css: ".GigKalender .NewsEntryText":
  ⇒ removed "font-size: 0.9em;"
v1.2.80_175: Bugfix: Front-end: News: An image in a news entry does not spawn the container, so the image overlaps the next entry.
  ⇒ frontend\example_formate.css: Added "overflow:auto;" to ".GigKalender .NewsEntryText"
v1.2.80_174: update.sql.php: script gives out a hint now on renaming attempt, the target file or folder name already exists.
v1.2.80_173: Bugfix: Back-end threw "Warning: include(includes/setup/SetupRefreshTime.php)"
  ⇒ In a previous version "SetupRefreshtime.php" got renamed into "SetupRefreshTime.php"
  ⇒ the correspondening update file did not consider that
v1.2.80_172: Bugfix: Front-end: Accessing Guestbook when not logged in as Admin threw "Notice: Trying to access array offset on value of type null in /functions/standard.php on line 1126
  ⇒ its a new restriction of PHP 7.4
  ⇒ fixed in functions\standard.php.IsUserAdmin()

<!-- Release Date 2020-08-04 -->
v1.2.80_171: Bugfix: Front-end: When opening a direct link to gig details, the Back-button does not work ⇒ now it leads to 'calendar'. But for past gigs, it does not link to 'calendar_past' (archived gigs). This will get fixed in v1.4, since it requires changes to gigkalender.ini.php
v1.2.80_170: Bugfix: Front-end: A gig scheduled for present day is NOT listed in 'calendar' nor in 'calendar_past'
  ⇒ calendar/calendar_sql.php.19: had to be "GigDate>='.$Timestamp"

<!-- Release Date 2020-05-04 -->
v1.2.80_169: Bugfix: admin\setup.php:18: Including "SetupRefreshtime.php" had to be "SetupRefreshTime.php"
v1.2.80_168: contact-form\contact-form.php: Changed imploding to use "\r\n"
v1.2.80_167: contact-form\contact-form.php: Added mime-version to header
v1.2.80_166: contact-form\contact-form.php: Added user-agent to header
v1.2.80_165: Bugfix: Contact Form: Email got not send with umlauts in name
  ⇒ contact-form\contact-form.php: converting name string into 64bit utf-8
v1.2.80_164: Bugfix: guestbook\guestbook_mail.php.37: Wrong data inserted into fields of messageIsSpam()
v1.2.80_163: Guestbook-Form: 'http' in Name field is detected as spam
v1.2.80_162: Guestbook-Form: blocked words in Name field are detected as spam
v1.2.80_161: Contact-Form: 'http' in Name field is detected as spam
v1.2.80_160: Contact-Form: blocked words in Name field are detected as spam now
v1.2.80_159: Bugfix: contact-form\contact-form.php: added missing asterixes (*) for required form fields
v1.2.80_158: Bugfix: contact-form\contact-form.php: added missing charset for form ⇒ accept-charset="UTF-8"
v1.2.80_157: Bugfix: contact-form\contact-form.php.18: form failed handling umlauts ⇒ removed "htmlentities($$key)"
v1.2.80_156: Bugfix: contact-form\contact-form.php: replaced several language variables with those in language files
v1.2.80_155: Bugfix: guestbook\guestbook_form_internal.php.150: check on 'code' is not required anylonger ⇒ removed
v1.2.80_154: Bugfix: guestbook\guestbook_form_internal.php.149: Applied variable $L_ERROR_Message_contains_invalide_characters
v1.2.80_153: frontend\example_formate.css: changed width of input fields and textareas
v1.2.80_152: frontend\example_formate.css: textarea can be resized vertical only
v1.2.80_151: Bugfix: frontend\example_formate.css: input field and textarea had different width
v1.2.80_150: Bugfix: contact-form\contact-form.php: added missing spam test for the message
v1.2.80_149: Bugfix: Some emails from contact form were lacking the url to block spam, except the IP query
  ⇒ contact-form\contact-form.php:52: replaced $_SERVER["HTTP_REFERER"] with a call of new function getCurrentURL()
v1.2.80_148: contact-form\contact-form.php: fixed unclosed div container after sending form
v1.2.80_147: contact-form\contact-form.php: Added the generation of $Path for including files

<!-- Release Date 2019-07-03 -->
v1.2.80_146: Bugfix: styles\gigkalender.css: Removed some disabled declarations and fixed comments
v1.2.80_145: Bugfix: Back End: Calendar: List: If you enabled "Status" in the
  attributes, there had been "Status" twice in the print preview
v1.2.80_144: Bugfix: Front End > Calendar > Table View: table headers can not be enabled
v1.2.80_143: Bugfix: Front End: Calendar: List-View: design got distorted by overlong lines
  ⇒ now breaking the lines to behind the date and beginning time
v1.2.80_142: Bugfix: gigkalender.ini.php: avoids double-slashes in URLs because of a final slash in the $GigKalenderPath
v1.2.80_141: contact-form/gigKalender_kontaktForm_v06.php: File deleted
v1.2.80_140: contact-form/gigKalender_kontaktForm_v06.php: File deleted
v1.2.80_139: contact-form/gigKalender_kontaktForm_v06.php: File deleted
v1.2.80_138: install\iniSetup.php: on default, the $SetupNewsChannelURL is empty now, so internal links work correct after installation, but can be changed if necessary
v1.2.80_137: frontend/example_guestbook_form: missing HTTP_REFERER when page is being opened directly
v1.2.80_136: news\news.php: reusing generated Pagination at top and bottom
v1.2.80_135: news\functions.php.getNewsFrontendNavigation(): function renamed into getNewsFrontendPagination()
v1.2.80_134: Bugfix: news\backend_showAllNews.php:29: Wrong session variable
v1.2.80_133: Bugfix: guestbook\backend_showAllGuestbookEntries.php:36: Wrong session variable
v1.2.80_132: guestbook\guestbook_show.php: reusing generated Pagination at top and bottom
v1.2.80_131: guestbook\functions.php.getGuestbookFrontendPagination(): removed the $Locator to differentiate between Top and Bottom pagination
v1.2.80_130: guestbook\functions.php.getGuestbookFrontendPagination(): removed JavaScript on form
v1.2.80_129: guestbook\functions.php.getGuestbookFrontendNavigation(): renamed into getGuestbookFrontendPagination()
v1.2.80_128: Bugfix: Back End: Calendar: List: set to short pagination > pagination is missing the query in the last button
v1.2.80_127: Bugfix: Front End: GB and News pagination: When less than 9 pages listed, first button contains a query in its URL
v1.2.80_126: installation.txt: Updated
v1.2.80_125: functions\standard.php.transformPassword(): Function removed (not in use)
v1.2.80_124: includes/editor: Folder removed
v1.2.80_123: Updated embedded CKEditor to version 4.11.4
v1.2.80_122: Cleaned up code in calendar\includes\showAllGigs\*.*
v1.2.80_121: Back End > Calendar> List: loading faster now, by not including sub files for empty fields
  ⇒ Calendar List in Back End loads ~36% faster
v1.2.80_120: calendar\includes\showAllGigs\GigDate.php: file removed
v1.2.80_119: calendar\includes\showAllGigs\subString.php: file removed
v1.2.80_118: Files in calendar\includes\showAllGigs don't make use of the file subString.php anymore
  ⇒ now using new function getShortenedString()
  ⇒ Calendar List in Back End loads ~40% faster
v1.2.80_117: functions\standard.php: new Function getShortenedString()
v1.2.80_116: Bugfix: calendar\backend_showAllGigs.php: table cells for GigStatus had no CSS class declaration for printing
v1.2.80_115: Bugfix: calendar\backend_showAllGigs.php: GigStatus had been in English always
v1.2.80_114: Bugfix: Back End: Calendar: Add Gig: Autocomplete listed from database, but also just typed in strings (browser-side form data)
  ⇒ added 'autocomplete="off"' to all input-tags in charge
v1.2.80_113: includes\footer.php: changed PaderDesign-URL to the GigKalender page
v1.2.80_112: Bugfix: guestbook\guestbook_form_internal.php: Gets real visitor IP via new function getRealIP()
  ⇒ might reduce spam by blocking the real IP. also, before one IP was returned as 'unknown'
v1.2.80_111: moved function getRealIP() from contact-form\contact-form.php to functions\standard.php
v1.2.80_110: Bugfix: Front End: Guestbook: Pagination: First button got wrong URL when no URL defined in gigkalender.ini.php
  ⇒ functions\standard.php.getFrontendURL(): $Path is generated now by str_replace()
v1.2.80_109: Bugfix: guestbook\functions.php.addGuestbookEntry(): Adding new entries failed, because empty ICQ variable wasn't set to NULL
v1.2.80_108: Bugfix: guestbook\functions.php.addGuestbookEntry(): Optimized to give out error messages in case adding new entry to database failed
v1.2.80_107: Bugfix: functions\standard.php.getFrontendURL(): did not consider the variable $SetupGalleryURL defined in gigkalender.ini.php
v1.2.80_106: Bugfix: functions\standard.php.getFrontendURL(): did not consider the variable $SetupGuestbookEmailURL defined in gigkalender.ini.php
v1.2.80_105: install\iniSetup.php: $SetupUserMaximumInactivityTime = "180";
v1.2.80_104: frontent\example_guestbook_add.php: file removed
v1.2.80_103: Bugfix: languages\deutsch.php: expression of variable $L_021 optimized.
v1.2.80_102: Bugfix: Back End: Some buttons too short, e.g. in Import: define min-width
v1.2.80_101: Bugfix: Email from new guestbook entry always said "Uhr" behind the entry time
v1.2.80_100: Bugfix: Email from a new guestbook entry always said "Datum" independent of selected language
v1.2.80_099: Bugfix: Front End: Current Month: URLs to gig details were wrong
v1.2.80_098: Bugfix: Back End: Calendar: List: On adding a new gig, URLs with https:// are changed into "http://https:/"
v1.2.80_097: Bugfix: Google Maps URL did not work, because Google turned of the direct URL service
  ⇒ Map URLs are now opening an OpenStreetmap map
v1.2.80_096: functions\standard.php: renamed function getGoogleMapsURL() into getMapsURL()
v1.2.80_095: Bugfix: in email about new guestbook entry, a missing ICQ number was shown as "NULL"
v1.2.80_094: Bugfix: languages\english.php: Fixed several bad expressions "Are you sure you..." into "Do you really want to..."
v1.2.80_093: Bugfix: Back End: Calendar: List: renamed header from "Gig View" into "List View"
v1.2.80_092: Bugfix: Front End: Guestbook: If pagination is not displayed, the entry link moved into wrong position, because of an empty div container
  ⇒ \guestbook\functions.php.getGuestbookFrontendNavigation(): gives out a "&nbsp;" now
v1.2.80_091: Bugfix: Back End: CSS: some small buttons too short, width set to 6em
v1.2.80_090: Bugfix: Back End: CSS: some buttons were too short, like the one during installation ⇒ CSS: width set to auto
v1.2.80_089: Bugfix: Back End: Calendar: Year: several warnings when subfolder 'cache' is missing
v1.2.80_088: Bugfix: Installation made use of a page refresh timer ⇒ removed
v1.2.80_087: Bugfix: imports used the delimiter defined in the code, not the one defined in the setup
v1.2.80_086: Renamed all variables $ErsterWochentag into $FirstDayOfTheWeek
v1.2.80_085: Renamed all variables $Zelle into $Cell
v1.2.80_084: Renamed function TimestampAusDatum() into getTimestampFromDate()
v1.2.80_083: Renamed all variables $TimestampVonHeute into $TimestampOfToday
v1.2.80_082: Renamed function WochentagVonDatum() into getWeekdayFromDate()
v1.2.80_081: Renamed URL query parameter Jahr into Year
v1.2.80_080: Renamed CSS class Jahr into Year
v1.2.80_079: Renamed all variables $Tag into $Day
v1.2.80_078: Renamed all variables $wochentag into $Weekday
v1.2.80_077: Renamed all variables $timestamp into $Timestamp
v1.2.80_076: Renamed all variables $MonatsName into $NameOfMonth
v1.2.80_075: Renamed CSS class XXX into Month
v1.2.80_074: Renamed all variables $unixtimestamp into $UnixTimestamp
v1.2.80_073: Renamed all variables $Jahr into $Year
v1.2.80_072: Renamed all variables $Monat into $Month
v1.2.80_071: functions\standard.php: Optimized function
v1.2.80_070: Renamed all variables $Inhalt into $Content
v1.2.80_069: Renamed function GetTooltip() into getTooltip()
v1.2.80_068: Renamed function AnzahlGigsMitGleichemDatum() into getNumberOfGigsAtSameDay()
v1.2.80_067: Renamed all variables $AnzahlGigsMitGleichemDatum into $NumberOfGigsAtSameDay
v1.2.80_066: Renamed function AnzahlTagedesMonats() into getDaysOfAMonth()
v1.2.80_065: Renamed all variables $AnzahlTagedesMonats into $getDaysOfAMonth
v1.2.80_064: Renamed all sql queries containing ['Anzahl'] or ['zahl'] into ['number']
v1.2.80_063: Renamed all variables $AnzahlZeichen into $NumberOfCharacters
v1.2.80_062: Renamed all variables $AnzahlDateien into $NumberOfFiles
v1.2.80_061: Renamed all variables $result into $Result
v1.2.80_060: Renamed function AnzahlVeroeffentlichterNewsInDatenbank() into getNumberOfPublishedNewsEntries()
v1.2.80_059: Renamed all variables $sql into $SQLQuery
v1.2.80_058: Renamed all variables $SQL_Befehl into $SQLQuery
v1.2.80_057: Renamed all variables $resultat into $Result
v1.2.80_056: Renamed all variables $aktuellerEintrag into $CurrentEntry
v1.2.80_055: Renamed all variables $obersterEintrag into $TopEntry
v1.2.80_054: Renamed all variables $AnzahlGigsImZeitraum into $NumberOfGigsInPeriod
v1.2.80_053: Renamed all variables $EintraegeProSeite into $EntriesPerPage
v1.2.80_052: Renamed all variables $AnzahlEintraege into $NumberOfEntries
v1.2.80_051: Renamed all variables $CurrentPage into $CurrentPage
v1.2.80_050: Renamed all variables $AnzahlSeiten into $NumberOfPages
v1.2.80_049: news\functions.php.getNewsFrontendNavigation(): removed function parameter $Locator
v1.2.80_048: Bugfix: Front End: Guestbook: It wasn't possible to add a guestbook entry by accessing the form directly
v1.2.80_047: Bugfix: images/bgindex.jpg: file removed
v1.2.80_046: Bugfix: Back End: CSS: Background color still blue, changed into dark-grey
v1.2.80_045: Bugfix: Installation fails, when subfolder 'cache' is missing
  ⇒ functions\standard.php.emptyDirectory(): now checks first whether directory exists
v1.2.80_044: Frontend: guestbook form: visitors with blocked IPs can not see the form anymore
v1.2.80_043: Bugfix: Frontend: On adding a GB entry, sending of email fails on certain email domains, e.g. "urx7.com"
  ⇒ guestbook\functions.php.sendMail(): sender email address is the admin email address now ($SetupGuestbookMail)
v1.2.80_042: guestbook\functions.php.writeSpamLog(): Removed all blanks " " in spam log headers, like "[ Email ]" to ""[Email]""
v1.2.80_041: Bugfix: guestbook\functions.php.writeSpamLog(): String "[ eMail ]" changed into "[ Email ]"

<!-- Release Date 2019-04-28 -->
v1.2.80_040: Bugfix: functions\standard.php: When new Pagination lists less than 10 pages, button for last page has no page identifier (leads to page 1 then)
v1.2.80_039: Back End: News: new Pagination
v1.2.80_038: Back End: Guestbook: new Pagination
v1.2.80_037: Bugfix: Back End: User was not logged out when max. Inactivity was up
v1.2.80_036: removed variable $L_150 from the language files (not in use anymore)
v1.2.80_035: Bugfix: frontend\images\guestbook_form.png: file missing due to update gigkalender_v1.2.79_009_DEV_update_80_022_DEV ⇒ applied new modification date to file
v1.2.80_034: Bugfix: calendar\showGigDetails.php: When showing multiple gigs (from Month View) there was no empty row between the gigs listed
v1.2.80_033: removed variable $L_203 from the language files
v1.2.80_032: renamed all variables $L_ERROR_eMail_could_not_be_sent into $L_ERROR_Email_could_not_be_sent
v1.2.80_031: renamed all variables $L_203 into $L_ERROR_Email_could_not_be_sent
v1.2.80_030: Bugfix: Back End: Admin: Users: adding new user enforced to assign a language (not necessary)
v1.2.80_029: Bugfix: languages\english.php: Improved variables $L_055 and $L_056
v1.2.80_028: Bugfix: Back End>Guestbook: after editing an entry with an empty ICQ field, it had value 0 in database. Now it is NULL.
v1.2.80_027: Bugfix: Back End>Admin>Import: There had been no notice about not having anything selected
v1.2.80_026: Back End>Admin>Import: Removed the use of SessionCookies
v1.2.80_025: Bugfix: Back End>Admin>Tools: Strings were English only
v1.2.80_024: Bugfix: calendar\calendar_wrapper.php: $timestamp was written upper case
v1.2.80_023: Bugfix: calendar\includes\frontend\GigDetailsLink.php: GigDetailsLink showed timestamp in link instead of GigID, so link did not work
v1.2.80_022: guestbook\functions.php.addGuestbookEntry(): optimized function
v1.2.80_021: guestbook\functions.php.EintragHinzufuegen(): renamed into addGuestbookEntry()
v1.2.80_020: guestbook\functions.php.messageIsSpam(): just cleaned up the code
v1.2.80_019: guestbook\guestbook_form.php: simplified the handling of $BackURL
v1.2.80_018: guestbook\guestbook_form.php: senden!='' changed into isset($senden)
v1.2.80_017: guestbook\guestbook_form.php: removed the conversion of POST-vars into standard vars
v1.2.80_016: guestbook\guestbook.php: added the conversion of $_Post-vars into standard vars
v1.2.80_015: guestbook\guestbook.php: added the conversion of $_GET-vars into standard vars
v1.2.80_014: guestbook\guestbook.php: removed the conversion of REQUEST-vars into standard vars
v1.2.80_013: guestbook\functions.php.isFormReload(): return type set to BOOL
v1.2.80_012: guestbook\functions.php.isFormReload(): added escaping of special characters via mysqli_real_escape_string()
v1.2.80_011: update.sql.php: added capability to delete files and folders
v1.2.80_010: Bugfix: filesharing/downloadNotes.php renamed into 'downloadSheetMusic.php'
v1.2.80_009: Bugfix: filesharing\notes renamed into 'sheetmusic'
v1.2.80_008: Bugfix: submenues\filesharing.php: renamed "downloadNotes" into "downloadSheetMusic"
v1.2.80_007: Bugfix: images/filesharing_notes.gif renamed into filesharing_sheet-music.gif
v1.2.80_006: Bugfix: languages\english.php: Variable $L_Notes renamed into $L_Sheet_Music
v1.2.80_005: Bugfix: Back End>File Sharing: menu button 'Notes' renamed into 'Sheet Music'
v1.2.80_004: Back End>Admin>Import: After importing, all checkboxes are unticked.
v1.2.80_003: Bugfix: functions\standard.php.getFrontendURL(): "Notice: Undefined variable: SetupGuestbookFormURL"
v1.2.80_002: $CharsSetupUserMaximumInactivityTime can have 3 chars, is Small Integer and default 60 minutes
v1.2.80_001: Bugfix: guestbook/guestbook_delete.php: If guestbook entry gets
  deleted via email and $SetupGuestbookURL in gigkalender.ini.php is not set,
  back link to guestbook is wrong ⇒ gives out a notice now
v1.2.80: New feature: gigkalender.ini.php:
  new variable $SetupFrontendGuestbookBlockedIPsLimit
  guestbook\guestbook_delete.php
v1.2.79_009: languages\deutsch.php.$_ERROR_Old_guestbook_entries_NOT_deleted: changed into "FEHLER: Alte Gästebuch-Einträge NICHT gelöscht!"
v1.2.79_008: languages\english.php.$L_203: changed into "ERROR: Email could NOT been sent!"
v1.2.79_007: guestbook\guestbook_show.php: applied a <H2> tag for the headers of guestbook entries
v1.2.79_006: languages\english.php.$L_182: changed into "The GigKalender is offered free of charge.";
v1.2.79_005: languages\deutsch.php.$L_182: changed into "Der GigKalender wird kostenlos angeboten.";
v1.2.79_004: gigkalender.ini.php: improved error messaging, if connection to database failed
v1.2.79_003: help/threads.php: updated to HTML5
v1.2.79_002: functions\standard.php.MonatsNameVonDatum(): rename into getNameOfMonthFromNumberOfMonth()
v1.2.79_001: functions\standard.php.MonatsNameVonDatum(): function rewritten
v1.2.79: New Feature: gigkalender.ini.php:
  new variable $SetupFrontendCalendarArtistFilter
  ⇒ Entering an artist name will display gigs of this particular artist only
v1.2.78_052: guestbook\functions.php.GuestbookNavigation(): renamed into getGuestbookFrontendNavigation()
v1.2.78_051: news\functions.php.getNewsFrontendNavigation(): return type set to :String
v1.2.78_050: news\functions.php.NewsNavigation(): renamed into getNewsFrontendNavigation()
v1.2.78_049: includes\backend_language_selector.php: If language file not found, it gives out an error message
v1.2.78_048: includes\backend_language_selector.php: Using global var $PATH for including files
v1.2.78_047: Bugfix: guestbook\guestbook_form.php: entering a website URL without protocoll triggers error message
v1.2.78_046: languages\english.php.$L_Frontend: renamed into $L_Front_End_Calendar
v1.2.78_045: languages\english.php.$L_Frontend: "Front End" ⇒ "Front End - Calendar"
v1.2.78_044: languages\english.php.$L_202: "Calendar" ⇒ "Back End - Calendar"
v1.2.78_043: languages\english.php.$L_067: "Back End" ⇒ "Back End - General"
v1.2.78_042: Backend: Admin: Members: numbers of asterix * in column Password represented password length
v1.2.78_041: Bugfix: Frontend>Gallery>Image-View: Double-Arrow-Icon to jump to first or last image is always a link, even when grayed out
  gallery\gallery.php
v1.2.78_040: Bugfix: example_guestbook-and-news.php: Pagination of News leads to example_news.php
  ⇒ functions\standard.php.getFrontendURL(): Function revised and fully implented in all front end views
v1.2.78_039: frontend/images/guestbook_add.png: renamed into 'guestbook_form.png'
v1.2.78_038: Guestbook: renamed all 'add' into 'form'
v1.2.78_037: guestbook/guestbook_add.php: renamed into 'guestbook_form.php'
v1.2.78_036: gigkalender.ini.php: added comments, that URLs should be absolute paths
v1.2.78_035: Bugfix: languages\deutsch.php: $L_071 = "Deine Anmeldedaten waren NICHT korrekt!";
v1.2.78_034: frontend/example_full.php: New example file, which demonstrates a full website
v1.2.78_033: functions\standard.php: New function getFileNames():Array
v1.2.78_032: functions\standard.php: New function formatFileSize():String
v1.2.78_031: Bugfix: filesharing\filesharing.php:
  Renaming of files caused names like test_1_1_1_1.mid
  ⇒ entire code rewritten
v1.2.78_030: filesharing\filesharing.php: partially rewritten
v1.2.78_029: Bugfix: filesharing\filesharing.php: removed all utf8_encode(), since it caused various mistakes
v1.2.78_028: Bugfix: language/english.php: $L_197 = "ERROR: At least one file name contains upper case letters!";
v1.2.78_027: Bugfix: language/english.php: $L_199 = "Error:" changed into "ERROR:"
v1.2.78_026: Bugfix: language/english.php: 4 times changed "At least on filename contains" into "At least one file name contains"
v1.2.78_025: Bugfix: Frontend: Gallery: gives out a warning on unknown file formats, like BMP, TIF, PSD,...
  ⇒ gallery\functions.php.getArrayOfImagesInFolder(): returns only known file formats like jpg, jpeg, png and gif
  ⇒ file extensions can be lower or upper case now
v1.2.78_024: gallery\functions.php.getArrayOfImagesInFolder(): rewritten function for using globe()
v1.2.78_023: gallery\functions.php: removed obsolet function countImages();
v1.2.78_022: guestbook\guestbook_add.php: gives out an error message, if message contains a blocked character.
v1.2.78_021: guestbook\functions.php.messageIsSpam(): Function returns 'noSpam', if message does not look like spam
v1.2.78_020: guestbook\functions.php.messageIsSpam(): Improved the way it checks for characters, it saves the detected blocked character into spam.log
v1.2.78_019: guestbook\functions.php.messageIsSpam(): Improved the way it checks for words, with surrounding blanks
v1.2.78_018: news\news.php: Faster code to calculate page of requested article, when accessed from news feed with NewsID
v1.2.78_017: Bugfix: news\news.php: If NewsID referred to not existing article, a warning was thrown: "Warning: A non-numeric value encountered..."
v1.2.78_016: Bugfix: Backend: renamed all GET variables "inhalt" into "content"
v1.2.78_015: Backend: Calendar: List: Pagination: Removed the title "Page:"
v1.2.78_014: styles/gigkalender.css: page centered: body {margin: 0 auto 0 auto;}
v1.2.78_013: styles/gigkalender.css: Maximum page width set: body {max-width: 1200px;}
v1.2.78_012: Removed subolder 'gallery/albums/album'
v1.2.78_011: functions\standard.php: removed obsolet function GigsPublished()
v1.2.78_010: Optimized code in calendar\table.php
v1.2.78_009: Optimized code in calendar\list.php
v1.2.78_008: Optimized code in calendar\calendar_past.php
v1.2.78_007: Optimized code in calendar\calendar.php
v1.2.78_006: functions\standard.php.GigsPublished(): Optimized code
v1.2.78_005: Bugfix: Front End: Calendar: If all gigs in period are 'Option', there was no note about no gigs, just nothing.
  ⇒ functions\standard.php.GigsPublished(): missing brackets in SQL command
v1.2.78_004: languages/deutsch.php: updated strings $L_060 and $L_075
v1.2.78_003: languages/english.php: updated strings $L_060 and $L_075
v1.2.78_002: languages/deutsch.php: $L_109: changed into "Gästebuch-Formular"
v1.2.78_001: languages/english.php: $L_109: changed into "Guestbook Form"
v1.2.78: New Feature: Back End: Admin: Front End: User can let language blank, so browser language will be detected
v1.2.77_032: languages/deutsch.php: $L_Headline08: changed into "Kalender - Vergangene Gigs:"
v1.2.77_031: languages/english.php: $L_Headline08: changed into "Calendar - Past Gigs:"
v1.2.77_030: file 'images/valid-rss.png' removed
v1.2.77_029: Backend: Admin: Frontend: new RSS-Logo valid-rss-rogers.png
v1.2.77_028: Bugfix: guestbook\guestbook_mail.php: Missing @ for mail() (it threw an exception when running on localhost without a mail server)
v1.2.77_027: Optimized code in guestbook\guestbook.php
v1.2.77_026: Bugfix: guestbook\functions.php.sendMail(): Missing @ for mail() (it threw an exception when running on localhost without a mail server)
v1.2.77_025: Backend: Guestbook: IPs displayed anonymized now
v1.2.77_024: functions/standard.php.emptyDirectory(): changed the error message for not delete files: ">ERROR: File NOT deleted!"
v1.2.77_023: functions/standard.php.emptyDirectory(): added a final / to the $strDir
v1.2.77_022: subfolder 'calendar\includes\addGig\autocomplete' removed
v1.2.77_021: Replaced JavaQueryUI based Autocomplete by HTML5 based <datalist> tag
v1.2.77_020: images/bgindex.jpg: replaced with bgindex-grey.png
v1.2.77_019: gigkalender.ini.php: some strings were in "", others in ''
v1.2.77_018: languages\english.php: changed all "member(s)" into "user(s):"
v1.2.77_017: changed all '...' into '…'
v1.2.77_016: styles\gigkalender.css: * {font-size: 100%;}
v1.2.77_015: Bugfix: languages\english.php: changed $L_Button10 = "Members" into $L_Button10 = "Users";
v1.2.77_014: Minimum password length increased to 24 characters
v1.2.77_013: Bugfix: news\backend_showAllNews.php: Setting number of lines to 'All', throws "Warning: A non-numeric value encountered..."
v1.2.77_012: Bugfix: guestbook\backend_showAllGuestbookEntries.php: Setting number of lines to 'All', throws "Warning: A non-numeric value encountered..."
v1.2.77_011: Bugfix: calendar\backend_showAllGigs.php: Setting number of lines to 'All', throws "Warning: A non-numeric value encountered..."
v1.2.77_010: news\backend_showAllNews.php: View Parameters: minimum line numbers is 10 now
v1.2.77_009: guestbook\backend_showAllGuestbookEntries.php: View Parameters: minimum line numbers is 10 now
v1.2.77_008: calendar\backend_showAllGigs.php: View Parameters: minimum line numbers is 10 now
v1.2.77_007: Bugfix: admin\import.php: Overwriting of Setup has to be checked and disabled
v1.2.77_006: Bugfix: frontend/example_guestbook-and-news.php
  ⇒ On adding a guestbook entry: "Warning: A non-numeric value encountered in F:\Eigene Dateien\PaderDesign\Projekte\0027 GigKalender\01 Skript\gigkalender12\news\news.php on line 41"
  ⇒ fixed with unique variable $PageVar in pagination URL
v1.2.77_005: Bugfix: functions\standard.php.checkEmail(): failed with new TLDs like .world
v1.2.77_004: languages\english.php: renamed $L_Lens = 'Lens' into $L_Magnify = 'Magnify',
  also in languages\deutsch.php and gallery\gallery.php
v1.2.77_003: install\demo\guestbook.php: Changed Email address
v1.2.77_002: Backend: CSS: 5px padding on left and right side (#Box)
v1.2.77_001: Bugfix: languages/deutsch.php: $L_ERROR_Missing_agreement = "Deine Einwilligung fehlt!";
v1.2.77: New Feature: Frontend > Guestbook > Add: Form requires agreement to privacy policy
  - You can toggle this feature in gigkalender.ini.php: $SetupFrontendGuestbookPrivacyPolicy
  - You can define an URL to the privacy policy in gigkalender.ini.php: $SetupFrontendPrivacyPolicyURL
v1.2.76_029: Bugfix: guestbook\guestbook_add.php: 122: Added a trim() to get rid of blanks infront of URLs or at its end
v1.2.76_028: Bugfix: guestbook\guestbook_add.php: 121: No default "http://" anymore
v1.2.76_027: Bugfix: guestbook\guestbook_add.php: 120: Empty URL does not get replaces with "http://" anymore
v1.2.76_026: Bugfix: backend_addGig: removed all four initial "http" strings in URL fields
v1.2.76_025: Bugfix: backend_addGig: Strip whitespaces from the beginning and end of a URL
v1.2.76_024: Bugfix: backend_addGig: URLs beginning with HTTPS are being rejected as invalid
v1.2.76_023: frontend/*.php: files switched to UTF8
v1.2.76_022: frontend/*.*: files switched to HTML5
v1.2.76_021: frontend/example_calendar-future-and-past.php: file removed
v1.2.76_020: Bugfix: admin\includes\addUser\UserCurrentPassword.php: A password with backslash failed ⇒
v1.2.76_019: functions\standard.php.getUID(): Bugfix: Login failed with password containing a backslashs
v1.2.76_018: update.sql.php: added support to delete old files and folders, and improved output and its formatting
v1.2.76_017: file 'install/index4.php' removed
v1.2.76_016: Backend: Calender: List: new Pagination
v1.2.76_015: Frontend: News: new Pagination
v1.2.76_014: Bugfix: example_guestbook.php?page=40 caused a warning message, when there are less than 40 pages
v1.2.76_013: Frontend: Guestbook: new Pagination
v1.2.76_012: Bugfix: guestbook\functions.php: GuestbookNavigation(): optimized the way the Navigation-URL gets determined
v1.2.76_011: Bugfix: news\functions.php: NewsNavigation(): optimized the way the Navigation-URL gets determined (was different from GB)
v1.2.76_010: gallery\images\lens.gif: Icon shows a lens now
v1.2.76_009: Increased size of Gallery icons from 18x18 to 32x32 px
v1.2.76_008: Bugfix: gigkalender.ini.php: All boolean values written uppercase
v1.2.76_007: functions\standard.php: getGoogleMapsURL(): simplified function
v1.2.76_006: functions\standard.php: getGoogleMapsURL(): Updated Google-Maps-URL
v1.2.76_005: Bugfix: gigkalender12\installation.txt: "var" ⇒ "variable"
v1.2.76_004: Bugfix: gigkalender12\installation.txt: "Tutorials can be ..." ⇒ "Detailes tutorials can be ..."
v1.2.76_003: Bugfix: gigkalender12\installation.txt: Updated PaderDesign-URL to "https..."
v1.2.76_002: Bugfix: install\demo\guestbook.php: Updated $gb_EchteURL to "https..."
v1.2.76_001: rewriting news feeds after installation
v1.2.76: New Feature: Gallery now supports GIF images.
v1.2.75_042: Bugfix: gallery\functions.php:46: Undefined variable: SetupFrontendGalleryImagesInterlacing
v1.2.75_041: gallery\albums\album: renamed into 'demo'

