* Updated requirements information. Mentions gd now, which should be a default setting for most PHP installs.
* Fixed: Usage of default sorting in dashboard and collection view.
* Updated to uikit-3.23.11
* Upgrade information files are markdown files.
Signed-off-by: Banana <mail@bananas-playground.net>
--- /dev/null
+#1 Migration of the config files into one config file
+Please copy the new config/config.php.default to config/config.php and adapt the settings which you
+have on the old config files. After that you can delete config/database|path|system files.
+
+#2 Deletion of config definition
+The definition of USER_DEFAULT_RIGHTS_STRING can be removed from config file.
+
+#3 New config file
+Copy config/config-imdbweb.php.default to config/config-imdbweb.php
+See too-imdbweb.txt documentation for more information.
+
+#4 following files can be removed
+```
+view/default/system/pagination.html
+view/default/system/pagination_after.php
+view/default/system/pagination_before.php
+```
+
+#5 DB changes. Run each line against your bibliotheca DB.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+UPDATE `#REPLACEME#_menu` SET `rights` = 'rw-rw----' WHERE `#REPLACEME#_menu`.`id` = 10;
+UPDATE `#REPLACEME#_menu` SET `group` = '2' WHERE `#REPLACEME#_menu`.`id` = 10;
+INSERT INTO `#REPLACEME#_menu` (`id`, `text`, `action`, `icon`, `owner`, `group`, `rights`, `position`, `category`) VALUES (NULL, 'Profile', 'profile', 'user', '1', '2', 'rw-rw----', '5', 'manage');
+DELETE FROM `#REPLACEME#_menu` WHERE `#REPLACEME#_menu`.`id` = 13;
+INSERT INTO `#REPLACEME#_menu` (`id`, `text`, `action`, `icon`, `owner`, `group`, `rights`, `position`, `category`) VALUES (NULL, 'Groups', 'managegroups', 'users', '1', '1', 'rw-------', '5', 'manage');
+UPDATE `#REPLACEME#_menu` SET `position` = '6' WHERE `#REPLACEME#_menu`.`id` = 16;
+UPDATE `#REPLACEME#_menu` SET `group` = '2', `rights` = 'rw-rw----' WHERE `#REPLACEME#_menu`.`id` = 14;
+ALTER TABLE `#REPLACEME#_collection` ADD `defaultSortField` VARCHAR(16) NOT NULL AFTER `defaultSearchField`;
+INSERT INTO `#REPLACEME#_menu` (`id`, `text`, `action`, `icon`, `owner`, `group`, `rights`, `position`, `category`) VALUES (NULL, 'Bulkedit', 'bulkedit', '', '1', '2', 'rw-rw----', '0', '');
+ALTER TABLE `#REPLACEME#_sys_fields` ADD `inputValidation` VARCHAR(32) NOT NULL AFTER `createstring`;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 18;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 19;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 7;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 8;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 20;
+UPDATE `#REPLACEME#_sys_fields` SET `inputValidation` = 'allowSpace' WHERE `bib_sys_fields`.`id` = 26;
+ALTER TABLE `#REPLACEME#_collection` ADD `advancedSearchTableFields` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL AFTER `defaultSortField`;
+ALTER TABLE `#REPLACEME#_sys_fields` ADD UNIQUE (`identifier`);
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'localizedTitle', 'Localized Title', 'text', 'entryText', '`localizedTitle` varchar(128) NOT NULL, ADD FULLTEXT (`localizedTitle`)', '', NULL, 'string 128', NOW(), '0', '1', '1', 'rw-r--r--');
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'gameEngine', 'Game Engine', 'text', 'entryText', '`gameEngine` varchar(128) NOT NULL, ADD FULLTEXT (`gameEngine`)', '', NULL, 'string 128', NOW(), '0', '1', '1', 'rw-r--r--');
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'view', 'View', 'selection', 'entrySingleNum', '`view` varchar(32) NULL DEFAULT NULL', '', 'First person,Third person,Top-down', 'First person,Third person,Top-down', NOW(), '0', '1', '1', 'rw-r--r--')
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'sysReq', 'System Requirements', 'text3', 'entryText', '`sysReq` varchar(255) NULL DEFAULT NULL, ADD FULLTEXT (`sysReq`)', '', NULL, 'string 255', NOW(), '0', '1', '1', 'rw-r--r--');
+INSERT INTO `#REPLACEME#_tool` (`id`, `name`, `description`, `action`, `target`, `owner`, `group`, `rights`) VALUES (NULL, 'Game infos', 'Game infos', 'gameinfo', '_self', '1', '1', 'rw-r--r--');
+```
+
+# 6
+Update your collection settings. There are new options which should be set.
--- /dev/null
+# Copy the following directories and files to your installation folder, overriding the existing ones:
+```
+webclient/config/
+webclient/lib/
+webclient/view/
+webclient/.htaccess
+webclient/api.php
+webclient/index.php
+```
+
+# DB changes. Run each line against your bibliotheca DB.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+INSERT INTO `#REPLACEME#_tool` (`id`, `name`, `description`, `action`, `target`, `owner`, `group`, `rights`) VALUES (NULL, 'Musicbrainz', 'Album infos', 'musicbrainz', '_self', '1', '1', 'rw-r--r--');
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modified`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'artist', 'Artist', 'text', 'entrySingleText', '`artist` varchar(128) NULL DEFAULT NULL', '', NULL, 'string 128', NOW(), NOW(), NULL, '1', '1', 'rw-r--r--');
+UPDATE `#REPLACEME#_sys_fields` SET `type` = 'year' WHERE `identifier` = 'year';
+UPDATE `#REPLACEME#_sys_fields` SET `createstring` = '`localizedTitle` varchar(128) NULL DEFAULT NULL, ADD FULLTEXT (`localizedTitle`)' WHERE `identifier` = 'localizedTitle';
+UPDATE `#REPLACEME#_sys_fields` SET `value` = 'DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 8,Windows 10', `apiinfo` = 'One of DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 8,Windows 10' WHERE `identifier` = 'os';
+UPDATE `#REPLACEME#_sys_fields` SET `value` = 'Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X', `apiinfo` = 'One of Nintendo,Nintendo Switch,PC,Playstation,Playstation 2,Playstation 3,Playstation 4,Playstation 5,Xbox,Xbox 360,Xbox One,Xbox One S,Xbox One X,Xbox Series S,Xbox Series X' WHERE `identifier` = 'platform';
+```
+
+# if you have the field "localizedTitle" already in use and get an error about it, run the following statement.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+ALTER TABLE `#REPLACEME#_collection_entry_1` CHANGE `localizedTitle` `localizedTitle` VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL;
+```
+
+# New tool for grabbing information from Musicbrainz available
+To use it, read tool-musicbrainz.txt in the documentation folder.
--- /dev/null
+# Copy the following directories and files to your installation folder, overriding the existing ones:
+```
+webclient/config/
+webclient/lib/
+webclient/view/
+webclient/.htaccess
+webclient/api.php
+webclient/index.php
+```
+
+# DB changes. Run each line against your bibliotheca DB.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modified`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'artists', 'Artists', 'lookupmultiple', 'tag', NULL, 'allowSpace', NULL, 'string 64', NOW(), NOW(), NULL, '1', '1', 'rw-r--r--');
+INSERT INTO `#REPLACEME#_menu` (`id`, `text`, `action`, `icon`, `owner`, `group`, `rights`, `position`, `category`) VALUES (NULL, 'System Information', 'sysinfo', 'info', '1', '1', 'rw-------', '3', 'show');
+UPDATE `#REPLACEME#_sys_fields` SET `value` = 'DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7,Windows 8,Windows 10,Windows 11', `apiinfo` = 'One of DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 99,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7,Windows 8,Windows 10,Windows 11' WHERE `bib_sys_fields`.`id` = 17;
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modified`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'isbn', 'ISBN', 'number', 'entrySingleNum', '`isbn` int(10) NULL, ADD INDEX (`isbn`)', '', NULL, 'int 10', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, '1', '1', 'rw-r--r--');
+```
+
+# New syntax in config files
+"define(.." syntax can be replace with "const" syntax in all the config files.
+See the default ones about the changes.
+"define" syntax will still work for now.
--- /dev/null
+# Copy the following directories and files to your installation folder, overriding the existing ones:
+```
+webclient/config/
+webclient/lib/
+webclient/view/
+webclient/.htaccess
+webclient/api.php
+webclient/index.php
+```
+
+# New syntax in config files
+"define(.." syntax needs to be replace with "const" syntax in all the config files.
+See the default ones about the changes.
+
+# DB changes. Run each line against your bibliotheca DB.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+ALTER TABLE `#REPLACEME#_collection` ADD `defaultSortOrder` VARCHAR(4) NOT NULL AFTER `defaultSortField`;
+ALTER TABLE `#REPLACEME#_menu` ADD `contextaction` VARCHAR(64) NOT NULL AFTER `action`;
+UPDATE `#REPLACEME#_menu` SET `contextaction` = 'collection' WHERE `#REPLACEME#_menu`.`id` = 4;
+UPDATE `#REPLACEME#_menu` SET `contextaction` = 'collection' WHERE `#REPLACEME#_menu`.`id` = 6;
+```
--- /dev/null
+# Copy the following directories and files to your installation folder matching the correct path.
+```
+webclient/view/default/tool/tool-googlebooks.html
+webclient/view/default/tool/tool-googlebooks.php
+webclient/lib/googlebookparser.class.php
+webclient/config/config-googlebooks.php.default -> also copy and rename to config-googlebooks.php
+```
+
+# DB changes. Run each line against your bibliotheca DB.
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+INSERT INTO `#REPLACEME#_tool` (`id`, `name`, `description`, `action`, `target`, `owner`, `group`, `rights`) VALUES (NULL, 'Google Books', 'Book infos from Google', 'googlebooks', '_self', '1', '1', 'rw-r--r--');
+UPDATE `#REPLACEME#_sys_fields` SET `createstring` = '`isbn` varchar(32) NULL, ADD INDEX (`isbn`)', `apiinfo` = 'varchar 32' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'isbn';
+UPDATE `#REPLACEME#_sys_fields` SET `type` = 'text', `searchtype` = 'entrySingleText' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'isbn';
+```
+
+# if you use the field ISBN already run this and change the collection id
+```
+ALTER TABLE `#REPLACEME#_collection_entry_#CHANGE_ID#` CHANGE `isbn` `isbn` VARCHAR(32) NULL DEFAULT NULL;
+```
+
+# New Theme: 98.
+Theme based on https://jdan.github.io/98.css/
+To use it, change UI_THEME in config.php to 98
--- /dev/null
+# Added a new global search field
+As of version 1.6, the field 'Combined Search' provides a much better search base.
+How to change and use new field: Run the following sql query. Replace #REPLACEME# with the used DB prefix.
+```
+INSERT INTO `#REPLACEME#_sys_fields` (`id`, `identifier`, `displayname`, `type`, `searchtype`, `createstring`, `inputValidation`, `value`, `apiinfo`, `created`, `modified`, `modificationuser`, `owner`, `group`, `rights`) VALUES (NULL, 'combSearch', 'Combined Search', 'hidden', 'entryText', '`combSearch` text NULL DEFAULT NULL, ADD FULLTEXT (`combSearch`)', '', NULL, 'mysql text - Content will be auto generated from other entry fields', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, '1', '1', 'rw-r--r--');
+```
+Add the new field 'Combined Search' to a collection.
+Change the 'Default gloabal seach field' to 'Combined search' and save.
+After that check the 'Update combined search field data' option to create the search data
+for the selected collection. Do this for every collection.
+For all new entries the data will be created automatically.
+
+# Added new constants to config.php file.
+Use config.php.default as a help. The new lines are:
+```
+const LOGFILE = PATH_SYSTEMOUT.'/bibliotheca.log';
+# CURL browser settings
+const BROWSER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64; rv:120.0) Gecko/20100101 Firefox/120.0';
+const BROWSER_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
+const BROWSER_ACCEPT_LANG = 'en-US,en;q=0.5';
+```
+
+# Updated tools configs
+Please compare the default config files for googlebooks, imdbweb and musicbrainz and make the required changes.
+
+# Added new theme config to config.php file
+Use config.php.default as a help. The new setting is:
+```
+# additional config for each theme with fallback
+const UI_THEME_CONFIG = array(
+ 'default' => array(
+ 'coverImageMaxWidth' => 260 // in pixel. Supports image/jpeg, image/png, image/webp
+ ),
+ '98' => array(
+ 'coverImageMaxWidth' => 500 // in pixel. Supports image/jpeg, image/png, image/webp
+ )
+);
+```
--- /dev/null
+# Config changes
+
+Add the following lines to your `config.php`.
+```
+# language setting
+# see i18n.md file for syntax
+const FRONTEND_LANGUAGE = array('iso3' => 'eng', 'iso2' => 'en');
+```
+
+# DB changes. Run each line against your bibliotheca DB.
+
+Replace #REPLACEME# with your table prefix. Default is bib
+```
+UPDATE `#REPLACEME#_sys_fields` SET `value` = 'DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 98,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7,Windows 8,Windows 10,Windows 11', `apiinfo` = 'One of DOS,Windows 1,Windows 2,Windows 3,Windows 95,Windows 98,Windows XP,Windows 2000,Windows ME,Windows Vista,Windows 7,Windows 8,Windows 10,Windows 11' WHERE `#REPLACEME#_sys_fields`.`id` = 17;
+UPDATE `#REPLACEME#_menu` SET `action` = 'dashboard' WHERE `#REPLACEME#_menu`.`id` = 1;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.show.dashboard' WHERE `#REPLACEME#_menu`.`id` = 1;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.show.collections' WHERE `#REPLACEME#_menu`.`id` = 2;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.show.tags' WHERE `#REPLACEME#_menu`.`id` = 3;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.show.sysinfo' WHERE `#REPLACEME#_menu`.`id` = 19;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.add' WHERE `#REPLACEME#_menu`.`id` = 4;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.tags' WHERE `#REPLACEME#_menu`.`id` = 6;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.collections' WHERE `#REPLACEME#_menu`.`id` = 7;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.users' WHERE `#REPLACEME#_menu`.`id` = 8;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.profile' WHERE `#REPLACEME#_menu`.`id` = 16;
+UPDATE `#REPLACEME#_menu` SET `text` = 'menu.manage.groups' WHERE `#REPLACEME#_menu`.`id` = 17;
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.title' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'title';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.description' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'description';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.content' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'content';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.tag' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'tag';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.category' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'category';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.publisher' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'publisher';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.developer' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'developer';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.platform' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'platform';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.storage' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'storage';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.rating' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'rating';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.year' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'year';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.coverimage' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'coverimage';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.attachment' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'attachment';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.os' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'os';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.actors' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'actors';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.countries' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'countries';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.directors' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'directors';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.genres' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'genres';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.languages' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'languages';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.runtime' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'runtime';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.imdbrating' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'imdbrating';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.viewcount' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'viewcount';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.writers' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'writers';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.localizedTitle' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'localizedTitle';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.gameEngine' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'gameEngine';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.view' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'view';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.sysReq' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'sysReq';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.artist' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'artist';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.artists' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'artists';
+UPDATE `#REPLACEME#_sys_fields` SET `displayname` = 'sysfield.isbn' WHERE `#REPLACEME#_sys_fields`.`identifier` = 'isbn';
+ALTER TABLE `#REPLACEME#_sys_fields` CHANGE `displayname` `displayname` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL;
+UPDATE `#REPLACEME#_tool` SET `name` = 'IMDB' WHERE `id` = 1;
+```
--- /dev/null
+# Config changes
+
+Add/change the following lines to your `config.php`.
+```
+const UI_THEME_CONFIG = array(
+ 'default' => array(
+ 'coverImageMaxWidth' => 360 // in pixel. Supports image/jpeg, image/png, image/webp
+ ),
+ 'compact' => array(
+ 'coverImageMaxWidth' => 500 // in pixel. Supports image/jpeg, image/png, image/webp
+ ),
+ '98' => array(
+ 'coverImageMaxWidth' => 500 // in pixel. Supports image/jpeg, image/png, image/webp
+ )
+);
+```