# Zoph 0.9.7

20 jan 2018
I have had a very busy year and little time to spend on Zoph, but last December, I finally found time to finish what I had originally planned for 0.9.6: a complete rewrite of the search screen and the search engine. Most of the code in that part of Zoph was over 10 years old and had become quite messy over the years. The search engine is really the core of Zoph: if you open an album in Zoph, under the hood, Zoph really executes a search for all the photos in that album. This makes this code really important and I've made sure to cover all this by automated tests (UnitTests) before making any changes.
* issue#83 Complete rewrite of the search page and the core functions of Zoph, including modernization of several other part of Zoph.
* issue#90 Error displayed when adding a new place
* issue#99 Geolocation doesn't work when using https
* Documentation updates - not all files were correctly displayed using Github's Markdown interpreter

# Zoph 0.9.6

14 apr 2017
Zoph 0.9.5 coincided with a significant change in MySQL, that caused a lot of bugs in Zoph and other open source projects. MySQL changed the way they process queries to handle them much more strictly. What makes things worse, is that MariaDB did not make this change, so at first I could not reproduce the issue. Because of the amount of work, I have decided to postpone the development that was planned for 0.9.6 and make this a bugfix-only release. In this release, I have included a few bugfixes by Pontus Fröding which is really great, thanks Pontus!

## Bugs

* issue#86 Fixed an omission in the upgrade instructions for 0.9.5
* issue#87 error about class not found on add or edit
* issue#88 Changes for MySQL 5.7 compatibility
** Give timestamp a default value
** Add field needed for MySQL 5.7 compatibility with SELECT DISTINCT .. ORDER BY
** Adding "ORDER BY" fields to autocover query
** More changes for MySQL 5.7 compatibility
** Updated SQL scripts
** Removed unused field from the database
* issue#91 Changed PHPUnit classes to namespaced class naming
* Fixed an issue in a UnitTest that caused a failed test commit
* Pull request#94 Add namespace to template showJSwarning in edit_person (by Pontus Fröding)
* Pull request#95 add template namespace on two more places. (by Pontus Fröding)
* issue#92 Fixed database connection to utf-8
* issue#93 Pull request#95 Fix for "Class pager not found" when using pagesets (by Pontus Fröding)

## Refactor

* Some modifications to backtrace printing, for easier debugging
* Moved album view into template
* issue#89 Changed look of next and previous buttons on photo page and increased size of actionlinks
* Small style change

# Zoph 0.9.5

4 feb 2017
Zoph 0.9.5 is the new stable release. It is recommended for everyone to upgrade to this release

## Features

* issue#68 Changed from Mapstraction to Leaflet as mapping abstraction - with GoogleMaps, OpenStreetMap and MapBox (OpenStreetMap) support The code for this was based on code provided by Jason (@JiCiT)
* issue#80 You can now edit permissions from the album screen, without the need to go to the group edit.
* issue#82 Zoph now gives a proper error message if a photo can not be found

## Bugs

* Fixed a bug where in some cases it was possible for an admin to unintentionally delete albums

## Refactor

* Lots of internal changes to move to an MVC-architecture
* Several more parts of Zoph moved into templates
* Added more unittests - to automatically test Zoph

# Zoph 0.9.4

18 Sept 2016
Zoph 0.9.4 is the new stable release. It is recommended for everyone to upgrade to this release

## Features

* Geocoding: Zoph now also searches Wikipedia
* issue#67 Changed the colour scheme definition to use a nice interface to select the colour
* issue#23 An admin user can now define default prefences for new users
* issue#24 Added an option to automatically propagate permissions to newly created albums
* issue#78 Removed Yahoo, Cloudmade mapping as they no longer offer their services to the public
* issue#78 Removed Openlayers mapping, as Zophs implementation was buggy and did not work anymore.
* issue#47 Photos can now be deleted from disk (moved to a trash dir)
* issue#67 Added some new colour schemes

## Bugs

* Fixed an issue with album pulldown when editing group access rights
* Fixed an issue where the circles page would sometimes report $title not found
* Fixed an issue with changing views on circle page
* Fixed an issue that caused errors in Firefox when using the configuration page
* fixed collapsable details for time and rating
* issue#78 Fixed a case where an admin user was sometimes not allowed to see a person or a place

## Other improvements

* issue#77 Lots of fixes in the German translation by Thomas Weiland
* Moved group display to template
* Moved group delete (confirm) into template
* Moved group edit to a template
* issue#79 Modify recursive creation of directories, so Zoph can function in an open_basedir environment.
* issue#66 Cleanup of CSS
* Some modernization of the looks of Zoph
* issue#85 Modified import process to show clearer error message
* Added a reset CSS
* issue#81 Documentation updates
* Some fixes for UnitTests
* Additional tests
* Refactor of group_permissions class into permissions class
* Refactor prefs class
* Moved preferences page to template
* Modified prefs template to use labels instead of definition lists

# Zoph 0.9.3

10 jun 2016
Zoph 0.9.3 is the new stable release. It is recommended for everyone to upgrade to this release

## Features

* issue#72 Zoph now has a new logon screen The logon screen has background photos. Two of them are already included in Zoph. You can place your own backgrounds in templates/default/images/backgrounds/. Or, you can (on the config screen) define an album from which the images will be used as background images. Zoph will display a random image as background.
* issue#76 The logon screen now gives a message about the username and/or password being wrong instead of just returning to the same screen
* issue#75 Zoph now uses PHP's password hashing algorithm instead of MySQL's. This includes a random 'salt' added to each password. This will make it much, much harder to decrypt your passwords, if your database would ever fall into the wrong hands. The old hashes will be updated with the new ones as soon the user logs in. Zoph will continue to support the old password hashes at least until v0.9.5.
* issue#26 It is now possible to define the cookie expirement time. In previous versions of Zoph, a user would be logged out when closing the browser. Is now possible to extend the time to 1 hour, 4 hours, 8 hours, 1 day, 1 week or 1 month. This means a user will not need to re-login for that period of time, even when the browser is closed in the mean time. This can be very convenient, but it could mean that a user leaves Zoph logged in on a public PC. Therefore, the default is still 'session', which means a user will be logged out when closing the browser.
* "new" pages now show up in breadcrumbs
* It is now possible to give a user "can see all photos" access rights. This means you can give a user access to all photos, without giving him/her admin rights and without having to update user rights whenever an album is added.
* issue#22 It is now possible to allow a user to create albums, categories, people, circles and places. The user automatically has access rights to place photos in the albums, categories, people, circles and places he or she has created.
* issue#21It is now possible to allow a user to delete photos. The user will have to have "write" access to at least one album a photo is in.
* Remove the rather ugly trailing space on the links on zoph.php

## Bugs

* issue#73 Fixed sharing feature
* issue#74 Fixed Canadian English, Dutch and German translation files

## Other improvements

* Added a way to disable a setting on the configuration page depending on the state of another configuration item. (This was created because the photo album as a logon background relies on the sharing feature to be enabled).
* Moved user page to template
* Moved form into a separate class
* Some cleanup of the places and categories pages
* Refactor HTML for actionlinks
* Modified createTestData script to only require password once
* Rearranged order of unittests
* Added translations for German, Canadian English and Dutch

# Zoph 0.9.2

1 apr 2016
Zoph 0.9.2 is the new stable release. I have decided to drop the separation between 'stable' and 'unstable' or 'feature' releases. This means that it is recommended for everyone to upgrade to this release.

## Features

* issue#44 Added 'circles': a way to group people in Zoph. This is especially handy if you have a large amount of people in your Zoph, and the 'person' page is becoming confusing or cluttered.
* issue#46 A circle and it's members can be supressed in the overview page, so you can, for example, hide people that you added only for a small set of photos.
* issue#20 Zoph has switched to the PDO classes for database access. This ensures compatibility with PHP in the future, because the old mysql libs will be dropped soon.
* issue#32 It is now possible to set more properties of a photo, including map zoom from the web import.
* issue#60 The link text for "next" and "previous" as well as page numbers has been increased in size for better usability esp. on mobile devices
* Added a script for fixing filename case (by Jason Taylor)
* Access Google maps via https (Jason Taylor)
* As of this version, the language files are in the php dir, and no longer need to be copied or moved separately

## Bugs

* issue#49 Zoph now supports MySQL strict mode
* issue#55 Autocomplete not working for people
* issue#58 Sort order for albums and categories can not be changed
* CLI: Fixed an issue where Zoph would try to import to the current directory when double spaces were present in CLI
* Better handling of file not found problems during import
* Fixed two bugs that caused maps not to display
* Fixed an issue where breadcrumbs wouldn't be removed correctly in some cases
* Changed erronous extension of Exception class
* Fixed slow login times for non-admin users
* Improved performance on people page
* Fixed: zoom buttons are missing from Google Maps
* Remove duplicate files from import (if you would specify the same file twice on CLI import, you would get an error, this is now filtered out)
* Fixed an issue where the person pulldown on the add user page appeared to be empty
* Remove a user from a group when a the user is deleted
* Fixed a warning about unknown variable on places page
* Allow apostrophes in place names when creating map markers (Jason Taylor)

## Refactor

* A complete new query builder has been created
* Many more parts of Zoph can be (and are being) tested automatically now, this should improve overall quality and reduce bugs
* Many parts of Zoph have been cleaned up to modernize code to the current state of PHP - dropping PHP 5.3 and 5.4 compatibility
* Dropped MSIE6/7 compatibility
* Added documentation to many parts of Zoph's source code
* Many changes to readability of source code, such as more consistent use of whitespace
* Added some more debugging possibilities to easier troubleshoot in case of problems
* Changed logging so less logging is displayed when set to log::NONE
* Changed all self:: references into static:: references
* Added function scope to many methods
* Started using namespaces to better organize the classes
* Updated version numbers in REQUIREMENTS readme.
* issue#8 (partial) Changed several parts of Zoph to use templates
* Added improvements to templating system
* Modified query for photo access rights to a view for performance reasons
* Changed logging so SQL query log to file can be done without displaying
* Performance improvement on place page
* Added a posibility to debug queries including parameters

# Zoph 0.9.1

21 feb 2014
Zoph 0.9.1 is the first feature release for Zoph 0.9, it shows a preview of some of the new features for Zoph 0.10. Most important change is the move of most configuration items from config.inc.php into the Web GUI.

## Features

* issue#28 Configuration through webinterface commit (jeroenrnl)
* Removed display desc under thumbnail feature commit (jeroenrnl)
* Removed MIXED_THUMBNAILS and THUMB_EXTENSION settings commit (jeroenrnl)
* removed DEFAULT_SHOW_ALL setting commit (jeroenrnl)
* Removed LANG_DIR configuration item commit (jeroenrnl)
* Changed the looks of <input> fields a bit commit (jeroenrnl)
* Removed alternative password validators commit (jeroenrnl)
* Removed checks for PHP 5.1 commit (jeroenrnl)
* Adding CLI support for configuration commit (jeroenrnl)
* issue#7 Added a favicon commit (jeroenrnl)
* issue#18 Added "return" link on bulk edit page commit (jeroenrnl)
* Added a script to migrate config to new db-based system commit (jeroenrnl)
* issue#8 Made template selectible from webinterface commit (jeroenrnl)
* Removed MAX_CRUMBS commit (jeroenrnl)

## Bugs

* Simplified CLI code & fixed bug in --autoadd commit (jeroenrnl)
* issue#34 Rows and columns swapped on photos page commit (jeroenrnl)
* issue#36 Webimporter does not import description commit (jeroenrnl)
* issue#37 Can not add position on map using the mouse commit (jeroenrnl)
* Fixed a bug that caused EXIF information in some (rare) cases to report the aperture wrong. commit (jeroenrnl)
* Strict standards warning commit (jeroenrnl)
* issue#45 Pagebreak inside HTML tags causes browser to render incorrectly commit (jeroenrnl)
* issue#45 Added selectArray cache to zophTable commit (jeroenrnl)
* issue#48 Repair photo ratings during import commit (jeroenrnl)
* issue#50 Geonames project has changed URL and requires username commit (jeroenrnl)
* issue#51 Fixed depth in tree display when autocorrect is off commit (jeroenrnl)
* issue#39 Added support for session.upload_progress as APC replacement (PHP 5.4 compatibility) commit (jeroenrnl)
* issue#38 CLI tries to lookup previous argument's value when looking up photographer commit (jeroenrnl)

## Improvements

I have made quite a few improvements on the "inside" of Zoph. I have refactored many parts of Zoph to create cleaner, less duplicated and more robust code. I have introduced UnitTests (resulting in about 20% of Zoph's sourcecode now tested fully automatic for bugs). As a help to that, I am now using Sonar to automatically run these tests and also analyse Zoph code for other problems.
* issue#29 First step in creating unittests for Zoph commit (Jeroen Roos)
* Sonar Support commit (jeroenrnl)
* Refactor of PHP part of Mapping implementation commit (jeroenrnl)
* Move timezone-related global functions into class commit (jeroenrnl)
* TimeZone object improvements commit (jeroenrnl)
* Small change in way template is called on photo page (Full page templates are now "templates" and partial pages are "blocks") commit (jeroenrnl)
* Refactor of htmlMimeMail.php commit (jeroenrnl)
* Refactor of Mail_mimePart commit (jeroenrnl)
* Refactor annotate photo, watermark photo, image.php commit (jeroenrnl)
* Removed several global variables commit commit (jeroenrnl)
* Finished refactor of MIME classes commit (jeroenrnl)
* Refactor album, category, place, person, photo commit (jeroenrnl)
* Refactor: getEditArray + unittests commit (jeroenrnl)
* Further refactor of photo, album, person, place, category commit commit (jeroenrnl)
* Refactor: move ratings out of photo object commit commit (jeroenrnl)
* Refactor: moved relations from photo object to new photoRelations object commit (jeroenrnl)
* Refactor: photo object commit (jeroenrnl)
* Got rid of adding session_id to URL commit (jeroenrnl)
* Modified internal database references to static commit (jeroenrnl)
* Removed brackets from require and include statements commit (jeroenrnl)
* Replaceed a die with exception commit (jeroenrnl)
* Changed self-references in objects to use self:: commit (jeroenrnl)
* Removed unused class smtp commit (jeroenrnl)
* Made autoload a little more robust commit (jeroenrnl)
* Changes to autoload so it works in unittests too. commit (jeroenrnl)
* Removed unused RFC822 class commit (jeroenrnl)
* Changed line-endings in mailMimePart.inc.php to unix-style commit (jeroenrnl)
* Removed various unused variables commit (jeroenrnl)
* Removed duplicate templates commit (jeroenrnl)
* Removed unused $user from createPulldown calls. commit (jeroenrnl)
* issue#40 Change documentation to Markdown commit commit commit commit commit commit commit commit (jeroenrnl)
* Modified some queries to improve performance commit (jeroenrnl)

# Zoph 0.9.0.1

18 Oct 2012
Zoph 0.9.0.1 is the first maintenance release for Zoph 0.9. It adds compatibility with MySQL 5.4.4 and later and PHP 5.4 support. Several bugs were fixed.

## Bugs

* issue#1 Changed TYPE=MyISAM to ENGINE=MyISAM for MySQL > 5.4.4 compatibility commit (jeroenrnl)
* issue#2 Changed timestamp(14) into timestamp commit (jeroenrnl)
* issue#3 Removed pass-by-reference for PHP 5.4 compatibility commit (jeroenrnl)
* issue#6 Missing French translation commit (jeroenrnl)
* issue#30 Remove warning about undefined variables commit commit commit (jeroenrnl)
* issue#1 Fixed: PHP Notice: Array to string conversion commit (jeroenrnl)
* issue#31 Fixed several errors in geotagging code commit (jeroenrnl)
* issue#33 Fixed: no error message when rotate fails commit (jeroenrnl)
* Fixed a small layout issue on the prefs page commit (jeroenrnl)

## Older Releases

* Changelog of releases 0.8 - 0.9
* Changelog of older releases