Zenphoto 1.6.6

This is a bugfix release. 

General

PHP fixes

  • Fix some PHP 8.3/8.4 deprecation issues. The release should be PHP 8.4 compatible [acrylian]
  • Replace E_USER_ERROR usages with trigger_error() being deprecated in PHP 8.4+ with E_USER_WARNING followed by exit() respectively exitzp() [acrylian]
  • Removes E_STRICT error level from internal catalogue if on PHP 8.4+ [acrylian]

EXIF handling

  • Catch if native PHP EXIF extension is not available on the server for metadata reading, also gettext some EXIF debug messages properly [acrylian]
  • We internally used "LensType" which actually is named "LensModel" according to EXIF specs. The db column remains unchanged for compatibility but the internal EXIF field catalogue has been updated accordingly [acrylian]
  • Since the EXIF fields "LensInfo" and "LensModel" are often not stored under their names but as "undefinedTags" in image metadata we added a switch to handle those [acrylian, fretzl – Thanks to hermor and kuzzzma]

Various core changes

  • gallery class: Add parameter $physical_only to methods getAllAlbums() and getAllAlbumsFromDB() to always exclude dynamic albums,
    Fix upload and move/copy to dynamic albums which in fact is not possible [acrylian, thanks to Adrian0832]
  • authority class: Small improvements to db queries getting administrators or one adminstrator [acrylian] 
  • Old deprecated Zenphoto_Authority and Zenphoto_Administrator classes moved to separate files for cleaner separation [acrylian]
  • Revert 1.6.5 fix for "null_selection" actually fixing "incorrect" usage duplicating existing select options and causing trouble with correct select type options [acrylian, bic] 
  • Fix issue with too wide tag select list on the admin album edit pages [acrylian]
  • Fix  tag suggestions on backend being not full width [acrylian]
  • Removes old jQuery resizable calls for resizable elements in favor of native CSS solution.[acrylian]
  • Fix debug constant defines in the wrong place to be set via the config file as intended since 1.6. More info on that here: https://www.zenphoto.org/news/debugging [acrylian] 
  • New internal constant PRE_RELEASE which enables TEST_RELEASE mode which bundles the debug mode DEBUG_ERROR,  DEBUG_IMAGE_ERR and DEBUG_404 automatically on pre-release versions. This can be overridden by disabling TEST_RELASE via the config file. [acrylian] 
  • Admin overview page: Now notes using a pre-release via a warning box and links to GitHub commits for info on changes. Display errors also warns via warning box if enabled. [acrylian] 
  • Remove usages of E_STRICT error level as it internally is downgraded to E_NOTICE in PHP 8 and deprecated in PHP 8.4 [acrylian]
  • rsslib.php moved from the zenphoto_news plugin to /zp-core/deprecated/ and replaced with /zp-core/libs/class-rsslib.php. It was formerly used internally by the zenphoto_news and the now removed check_for_update plugin. If you did use it directly somehow you need to update your include paths. There is no fallback. [acrylian]
  • gallery_statistics utility: Former inline code has been moved and reworked to a new core class adminGalleryStats. If enabled it now also incorporates download statistics. For better overview the page has been divided into subtabs now [acrylian]
  • New indexes have been added on the albums database table to improve performance especially related to dynamic albums [subjunk]
  • Add more intuitive option to always keep a user album even when a user is removed no matter if the album is delinked or not [acrylian]
  • external_auth class has been deprecated and will be removed without replacement [acrylian]

Themes

  • basic, Garland, zenpage, zpMobile: Basic support for scriptless-socialsharing new profile buttons [acrylian]
  • basic: The custom tinymce configs for the former tinymce4 plugin have been removed. Now the configs of the tinymce plugin are used [acrylian]
  • zpMobile: Fix HTML issues causing broken layout and a too large flag_thumbnail overlay [fretzl]

Plugins

  • contact_form, favoritesHandler, paged_thumbs_nav, register_user, Zenpage: Handling of default texts for multilingual text option has been changed. Formerly these were set with defaults on initial plugin setup which never worked afterwards. Leave these options empty to use the default texts now. This should not change any existing custom texts [acrylian]
  • downloadList: 
    • Allow external (remote) downloads via option. The download URL query gets &source=externalurl appended for transparency. There is naturally no file size info for external downloads. If not enabled, external downloads are blocked with a 404 not found like non existing downloads. [acrylian]
    • Add fallback download directory to "uploaded" folder if option is not set, as printDownloadList() otherwise exposes the complete installation [acrylian]
    • Download statistics are now completely handled by the new adminGalleryStats core class via the Gallery Statistics utility. The separate Download statistics utility has been removed (see above) [acrylian]
  • elFinder: Re-add somehow lost "sound" folder causing notices. Also adds license info as it is not the same as ours [acrylian, fretzl]
  • OpenStreetMap: Updates HERE options to their API v3 and renames/removes old options [guggsdu, acrylian]
  • tag_suggest: Extra tag_admin.css for backend usages added to fix admin display (see above) [acrylian]
  • register_user
    • Registrations can now optionally be moderated. User then then to be reviewed first. You can either manually authenticate them as before or send verification mail after reviewing. The latter is strongely recommended to comply with laws like the GDPR [acrylian]
    • Fix default rights or default user group not being set and user album not assigned correctly via mail verification link. Manual authenticiation also fixed, user album creation must be selected manualy in that case [acrylian - thanks to getpogo]
    • Plain default user rights by default enable USER_RIGHTS so users can change their own user account (unless you already saved default rights) [acryian]
    • Option for "Link text" changed. Formerly a provided text included a link on the login form. Now a checkbox must be checked. The link text option is now only used for an optional custom text as otherwise the default is used [acrylian]
    • Option "Hint text" removed as it was actually unsed [acrylian]
  • scriptless-socialsharing:
    • Now also includes options for social network profile button links, RSS included. Use scriptlessSocialSharing::printProfileButtons(). [acrylian]
    • Obsolete networks livejournal, delicious and stumbleupon removed [acrylian]
    • bluesky, threads and mastodon added [acrylian]
    • Update font files using fontawesome icons to modern woff/woff2 formats. Some CSS classes changed due to fontawesome changes so custom CSS styles may require updates. [acrylian]
  • search_statistics: Former inline prodedural code has been moved and reworked to a child class of the new adminGalleryStats class to provide a generalized look and feel for statistics. The former threshold options have been removed because there is now a single statistics page available to select from/to ranges as with the gallery_statistics. [acrylian]
  • tinymce: 
    • Fix issue that some languages like French were not loaded correctly [bic]
    • Remove help plugin from all configs due to a conflict with missing plugin language files [fretzl]
    • Remove duplicated option [acrylian, bic]
    • Slim version of the comments config has been reduced to exclude some options [acrylian]
  • user_expiry: Fix last logon always noted as "never" even if the user logged in previously [acrylian, fretzl]
  • user_groups:
    • Changed checkboxes to radioboxes on user profiles so a user can only be assigned to one group at a time. Internal code supporting more respectively merging of rights is kept though [acrylian] 
      If you have used this selection internally it should stay intact until a user is saved again. Then the first group assigned will be used. But check your rights assignments before and after upgrading.
    • The "Assigments" tab is removed as it duplicates functionality available on the users tab already [acrylian]
    • Getting smaller data set of user data on groups tab [acrylian – Thanks to subjunk]
  • mobileTheme: Update MobileDetect library to version 4.8.10 and make it standalone again [fretzl]
  • PHPMailer: Update to 6.10.0 [fretzl]

Removed plugins

  • check_for_update: Incorporated as core functionality now. The function is privacy friendly as it only checks our site's RSS feed for the latest release post once a day as before. We don't count or store any data except a general RSS feed access hitcount. 
  • markRelease: The plugin was removed without previous deprecation. You can set various debug modes via constants in the config file (/zp-data/zenphoto.cfg.php) of your install directly. More info on that here: https://www.zenphoto.org/news/debugging/ 
  • tinymce4: This has already been replaced by its successor plugin tinymce

tinymce4 can still be found here: https://github.com/zenphoto/unsupported-plugins-official 

Translations

  • Dutch [fretzl|
  • French [RolandTI]
  • German [acrylian]
  • Italian [bic]
  • Japanese (momo-i)
  • Russian [kuzzzma]
  • Spanish & Argentinian Spanish [guirala]

For questions and comments please use the forum or discuss on the social networks.

Related items