Kitodo.Presentation 6.0.0-rc1
Pre-release
Pre-release
Feature Release (Candidate 1)
This release contains new features and supports TYPO3 v11 and v12 with PHP 8.1+.
THIS IS NOT READY FOR PRODUCTION!
New Features
- Support for digitized musical sources (in MEI format) was extended and is now regarded stable. This feature renders musical scores using Verovio and allows navigating through the document bar by bar.
- The multi-view feature displays several documents in parallel and allows synchronized page-turning. The view port of each document can be freely rearranged, resized, as well as independently navigated. Although originally developed for musical sources the multi-view can be used with any composition of documents either by adding them to the view one by one manually or by providing a METS file containing references to all documents to be displayed. By default, this METS file's main structure type has to be
composition, but you can configure other document types for the multi-view as well. - The two-level metadata feature allows hierarchical metadata mappings or metadata grouping. Instead of providing each metadata field separately with its full MODS XPath, you can define a metadata group (by selecting a MODS node) and then configure multiple sub-fields within this node. This comes in handy for example for personal or corporate names, related works or title statements. Each metadata group and sub-field can be configured using TypoScript like any single metadata field, and both hierarchical and single fields can even be mixed together. (Using hierarchical metadata is optional. No changes to your current mappings are needed.)
- Support for audio and video was also extended with a new version of shaka-player including multiple plugins (e. g. equalizer and screenshot tool) and support for addressing timecodes directly from table of contents.
- The validation framework added in Kitodo.Presentation 5.1.0 now has its own frontend plugin providing a form to submit a METS document and displaying validation results.
- The fulltext feature now fully supports TEI. This includes displaying the fulltext as well as indexing it for search.
Bugfixes and Maintenance
- A LOT OF BUGS were fixed and maintenance work was performed, especially by @beatrycze-volk, @fschoelzel, @stweil, @thomaslow and @markusweigelt (see the changelog below). Many thanks to every contributor!
What's Changed
- [MAINTENANCE] Add support for TYPO3 v12 (fixes #900) by @thomaslow in #1337
- [MAINTENANCE] Adjust language field in TCA by @beatrycze-volk in #1104
- [FEATURE] Implement MIME type filtering for files in Helper class by @fschoelzel in #1338
- [DOCUMENTATION] Deploy documentation to GitHub Pages by @markusweigelt in #1355
- [MAINTENANCE] Organize plugins in
tt_content.phpfile by @beatrycze-volk in #1357 - [BUGFIX] Iterate over metadata IDs only if there are any metadata sections by @beatrycze-volk in #1356
- [BUGFIX] Fix logger for score file groups by @beatrycze-volk in #1358
- [BUGFIX] ExpressionLanguage function
getDocumentType()ofDocumentTypeFunctionProviderdoes not work correctly by @markusweigelt in #1359 - [MAINTENANCE] Fix some typos in configuration, documentation and code comments by @stweil in #1360
- [MAINTENANCE] Cleanup and improvements regarding TYPO3 v12 update by @markusweigelt in #1362
- [BUGFIX] Fix exception 'data structure identifier must be set' by @thomaslow in #1363
- [MAINTENANCE] Fix TYPO3 v11 TCA migration warning 89672 by @thomaslow in #1364
- [MAINTENANCE] Improvements regarding TYPO3 v12 update by @markusweigelt in #1368
- [FEATURE] Update schema using Solr Schema API by @frank-ulrich-weber in #1369
- [SECURITY] Update Symfony components to mitigate security issues by @sebastian-meyer in #1370
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.8 to 1.12.9 by @dependabot[bot] in #1373
- [BUGFIX] Fix passing page ID in
ToolboxControllerby @beatrycze-volk in #1372 - [MAINTENANCE] Change log level to
INFOby @markusweigelt in #1376 - [BUGFIX] Fix highlighting for words by @beatrycze-volk in #1377
- [BUGFIX] Fix return and var tags in PHPDocs by @beatrycze-volk in #1378
- [BUGFIX] Fix
getStructureDepth()to match its documentation by @beatrycze-volk in #1379 - [BUGFIX] Fix displaying count of documents by @beatrycze-volk in #1382
- [BUGFIX] Adjust null checks so they also check for non-existent key arrays by @beatrycze-volk in #1383
- [BUGFIX] Reverse sort the keys in JSON array by @beatrycze-volk in #1384
- [BUGFIX] Fix message for missing fields by @beatrycze-volk in #1385
- [BUGFIX] Define
$entryvariable by @beatrycze-volk in #1386 - [BUGFIX] Improve score loading condition in PageView.js by @fschoelzel in #1387
- [BUGFIX] Remove redundant call to
array_values()by @beatrycze-volk in #1388 - [MAINTENANCE] Remove unused function
getCollectionForMetadata()by @beatrycze-volk in #1389 - [MAINTENANCE] Bump solarium/solarium from 6.3.5 to 6.3.6 by @dependabot[bot] in #1390
- [FEATURE] Implement document cache manager by @beatrycze-volk in #1401
- [MAINTENANCE] Extract load of IIIF resource to protected function by @beatrycze-volk in #1403
- [FEATURE] Implement fulltext reader by @beatrycze-volk in #1402
- [FEATURE] Implement
IntlDateFormatterforSolrCoreStatustimestamps by @fschoelzel in #1394 - [BUGFIX] Use the document cache in
getDocumentByUid()by @michaelkubina in #1405 - [MAINTENANCE] Simplify reading of use groups in document classes by @beatrycze-volk in #1404
- [MAINTENANCE] Add function for getting index annotations by @beatrycze-volk in #1409
- [MAINTENANCE] Remove paramater from the magic get function by @beatrycze-volk in #1412
- [MAINTENANCE] Don't use file conf as function parameter by @beatrycze-volk in #1413
- [MAINTENANCE] Move set up of fulltext to correct function by @beatrycze-volk in #1414
- [MAINTENANCE] Simplify attributes' reading by @beatrycze-volk in #1415
- [MAINTENANCE] Bump caseyamcl/phpoaipmh from 3.3.1 to 3.3.2 by @dependabot[bot] in #1416
- [BUGFIX] Fix regression for METS files without physical structure by @stweil in #1417
- [BUGFIX] Run tests with Solr 9.7.x by @sebastian-meyer in #1450
- [FEATURE] Seamless document browsing by @michaelkubina in #1381
- [MAINTENANCE] Filter array for empty search parameters by @beatrycze-volk in #1411
- [BUGFIX] Check for undefined array key for fileGrp in mets:fileSec by @fschoelzel in #1418
- [FEATURE] Add MIME type and file extension Helper methods by @fschoelzel in #1420
- [BUGFIX] Handle missing 'DEFAULT' fileGrp in METS by @fschoelzel in #1421
- [BUGFIX] Fixes for runtime issues noticed in tests with main branch by @stweil in #1430
- [BUGFIX] Update hide/show of loading and clearing elements by @fschoelzel in #1433
- [BUGFIX] Re-introduce search for coordinates in
ol.Featurearray by @fschoelzel in #1434 - [MAINTENANCE] Clear document cache if force reload is true by @beatrycze-volk in #1435
- [MAINTENANCE] Update to relative path for dotenv in functional tests by @fschoelzel in #1440
- [BUGFIX] Fix displaying extended search fields by @beatrycze-volk in #1446
- [BUGFIX] Pass correct collection uid to list of search parameters by @beatrycze-volk in #1449
- [FEATURE] Include facets from all associated metadata sections for fulltext pages by @michaelkubina in #1441
- [BUGFIX] Remove old code relict which creates wrong log entries by @stweil in #1452
- [BUGFIX] Avoid recursion in function
Solr::getNextCoreNumber()by @stweil in #1453 - [CONFIGURATION] Do not run the GitHub action deploy job in forks by @stweil in #1456
- [MAINTENANCE] Use https for openarchives.org, kitodo.org and slub-dresden.de by @stweil in #1454
- [MAINTENANCE] Update
composer.lockby @stweil in #1457 - [MAINTENANCE] Drop support for PHP 7.4 and 8.0 by @stweil in #1458
- [BUGFIX] Filter
nullcollections by @beatrycze-volk in #1461 - [FEATURE] Implement
UseGroupsConfigurationclass by @beatrycze-volk in #1422 - [BUGFIX] Restore merging of arrays for physical nodes by @beatrycze-volk in #1467
- [BUGFIX] Fix several runtime issues by @stweil in #1468
- [MAINTENANCE] Format XML output of OAI-PMH by @stweil in #1473
- [MAINTENANCE] Improve documentation by @stweil in #1474
- [BUGFIX] Trim ID for fulltext element by @beatrycze-volk in #1475
- [BUGFIX] Add missing
useGroupsConfigurationinitialization inAbstractControllerby @beatrycze-volk in #1479 - [BUGFIX] Add missing label for
tx_dlf_tokensby @stweil in #1482 - [MAINTENANCE] Bump phpstan/phpstan from 1.12.16 to 1.12.17 by @dependabot[bot] in #1484
- [BUGFIX] Tiny refactoring of metadata handling with subentries by @markusweigelt in #1478
- [BUGFIX] Allow OAI-PMH set names which are required for DINI by @stweil in #1483
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.17 to 1.12.18 by @dependabot[bot] in #1491
- [FEATURE] Add caching to PageGrid by @michaelkubina in #1406
- [BUGFIX] MIME type filter by @fschoelzel in #1419
- [FEATURE] [BUGFIX] Support for musical sources and compositas by @markusweigelt in #1485
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.18 to 1.12.19 by @dependabot[bot] in #1495
- [MAINTENANCE] Bump solarium/solarium from 6.3.6 to 6.3.7 by @dependabot[bot] in #1496
- [FEATURE] 3D viewer selection by @markusweigelt in #1395
- [BUGFIX] Refactor providing asset path for wildwebmidi.data by @markusweigelt in #1500
- [BUGFIX] Add undefined constant check by @markusweigelt in #1501
- [BUGFIX] Fix calendar view by @stweil in #1504
- [MAINTENANCE] Improvements for extended search by @beatrycze-volk in #1509
- [BUGFIX] Enable suggester before action exits with empty search parameters by @beatrycze-volk in #1510
- [MAINTENANCE] Declare
makeFacetsMenuArray()function asprivateby @beatrycze-volk in #1511 - [BUGFIX] Generate database documentation via typo3 command by @thomaslow in #1486
- [BUGFIX] Ensure proper type casting and null handling in Helper and MetsDocument classes by @fschoelzel in #1513
- [BUGFIX] Fix runtime exception while running
kitodo:indexby @stweil in #1514 - [MAINTENANCE] Fix documentation (mainly an -> a) by @stweil in #1522
- [MAINTENANCE] Use local
OAI-PMH.xsdfor CI tests by @stweil in #1537 - [BUGFIX] Explicitly declare nullable function parameters by @stweil in #1505
- [BUGFIX] Fix runtime warnings in several controllers by @stweil in #1521
- [MAINTENANCE] Run tests for all working PHP versions (including PHP 8.4) by @stweil in #1455
- [BUGFIX] Adjust reading and assigning
pageUidby @beatrycze-volk in #1523 - [BUGFIX] Fix caching for classes IiifManifest and MetsDocument by @stweil in #1536
- [MAINTENANCE] Remove bugfix versions of TYPO3 from dependencies by @stweil in #1534
- [BUGFIX] Fix
dbdocscommand in TYPO3 v12 by @thomaslow in #1546 - [BUGFIX] Correctly get page ID from request in AbstractController in TYPO3 v12 by @fschoelzel in #1549
- [MAINTENANCE] Simplify attributes reading in
MetsDocumentby @fschoelzel in #1552 - [BUGFIX] Fix condition in conditional statement by @stweil in #1554
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.21 to 1.12.23 by @dependabot[bot] in #1556
- [MAINTENANCE] Add default SOLR core UID as constant in
tx_dlfplugin by @beatrycze-volk in #1548 - [DOCUMENTATION] Fix documentation for
kitodo:dbdocsby @stweil in #1559 - [FEATURE] Always show OAI-PMH request type by @stweil in #1560
- [FEATURE] Integrate media player from slub_web_sachsendigital by @fschoelzel in #1320
- [BUGFIX] Fix some issues reported by PHPStan (nullable function parameters) by @stweil in #1561
- [BUGFIX] Update documentation for
AbstractController::loadDocumentby @stweil in #1562 - [BUGFIX] Fix thumbnail reference being always from
toplevelIdby @michaelkubina in #1563 - [BUGFIX] Fix adding empty xpath results to metadata array by @michaelkubina in #1564
- [MAINTENANCE] Use package
softcreatr/jsonpathinstead offlow/jsonpathby @stweil in #1565 - [BUGFIX] Sync listview with facets and fix wrong hitcount by @michaelkubina in #1566
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.23 to 1.12.24 by @dependabot[bot] in #1579
- [MAINTENANCE] Bump http-proxy-middleware from 2.0.7 to 2.0.9 in /Build by @dependabot[bot] in #1580
- [FEATURE] Validation form plugin by @markusweigelt in #1578
- [BUGFIX] Fix null pointer exception when calling musical structure by @markusweigelt in #1581
- [BUGFIX] Move fullscreen to own section by @chrizzor in #1531
- [BUGFIX] Add counter to identify image manipulation button by @chrizzor in #1532
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.24 to 1.12.25 by @dependabot[bot] in #1582
- [BUGFIX] Display author URI as an external link by @beatrycze-volk in #1571
- [MAINTENANCE] Bump vlucas/phpdotenv from 5.6.1 to 5.6.2 by @dependabot[bot] in #1584
- [MAINTENANCE] Simplify displaying external URLs in Metadata plugin by @beatrycze-volk in #1585
- [BUGFIX] Fix sorting results by @beatrycze-volk in #1591
- [BUGFIX] Remove non-existent widget from
NavigationControllerby @beatrycze-volk in #1594 - [BUGFIX] Iterate over documents inside
SolrSearchby @beatrycze-volk in #1599 - [MAINTENANCE] Unify naming for search parameters by @beatrycze-volk in #1600
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.25 to 1.12.26 by @dependabot[bot] in #1605
- [BUGFIX] Fix displaying of metadata for search result by @beatrycze-volk in #1611
- [BUGFIX] Fix displaying newspaper title by @beatrycze-volk in #1608
- [MAINTENANCE] Fix some issues reported by PHPStan by @stweil in #1573
- [BUGFIX] Translate alt text for thumbnail by @beatrycze-volk in #1614
- [MAINTENANCE] Format translation files by @beatrycze-volk in #1615
- [BUGFIX] Fix getting author name in
Indexerby @beatrycze-volk in #1619 - [MAINTENANCE] Bump phpstan/phpstan from 1.12.26 to 1.12.27 by @dependabot[bot] in #1626
- [MAINTENANCE] Bump webpack-dev-server from 5.2.0 to 5.2.1 in /Build by @dependabot[bot] in #1634
- [MAINTENANCE] Use the same default
userAgentas defined in extension configuration by @beatrycze-volk in #1622 - [BUGFIX] Replace magic getter for
toplevelIdproperty by @beatrycze-volk in #1625 - [OPTIMIZATION] Speed up pagegrid generation by @michaelkubina in #1627
- [BUGFIX] Fix variable name for metadata authors by @beatrycze-volk in #1629
- [BUGFIX] Check for
docPagearray key by @beatrycze-volk in #1631 - [BUGFIX] Fix validator for mandatory fields by @beatrycze-volk in #1633
- [MAINTENANCE] Replace returns for command result by @beatrycze-volk in #1632
- [MAINTENANCE] Reimplement assignment for configuration PID by @beatrycze-volk in #1636
- [MAINTENANCE] Break up duplicate parts of
Resultstemplate by @beatrycze-volk in #1616 - [BUGFIX] Display correct error message for indexing by @beatrycze-volk in #1630
- [MAINTENANCE] Replace usage of
strpos()by @beatrycze-volk in #1638 - [MAINTENANCE] Adjust SQL queries by @beatrycze-volk in #1637
- [FEATURE] Handle TEI fulltexts by @markusweigelt in #1639
- [MAINTENANCE] Adjustments in repository classes by @beatrycze-volk in #1641
- [BUGFIX] Fix return type for magic get
record_idby @beatrycze-volk in #1642 - [DOCUMENTATION] Update documentation about kitodo:dbdocs command by @thomaslow in #1643
- [MAINTENANCE] Insert metadata format in Kitodo storage by @beatrycze-volk in #1635
- [MAINTENANCE] Adjustments in functional test classes by @beatrycze-volk in #1644
- [MAINTENANCE] Adjustments in functional test classes - part 2 by @beatrycze-volk in #1645
- [MAINTENANCE] Rename and add missing PHPDoc to time code conversion function by @beatrycze-volk in #1646
- [MAINTENANCE] Change way of the document validation exclusion for
record_idby @beatrycze-volk in #1647 - [MAINTENANCE] Remove PHPStan warning about missing
setField()function by @beatrycze-volk in #1648 - [MAINTENANCE] Remove PHPStan warnings about missing canvas functions by @beatrycze-volk in #1649
- [MAINTENANCE] Adjust API classes by @beatrycze-volk in #1650
- [MAINTENANCE] Replace
switchwithmatchexpression by @beatrycze-volk in #1652 - [MAINTENANCE] Remove unused load functions by @beatrycze-volk in #1655
- [BUGFIX] Multiview for TYPO3 v12 by @markusweigelt in #1656
- [BUGFIX] Force reload document in
BaseCommandby @beatrycze-volk in #1654 - [MAINTENANCE] Adjustments in unit test classes by @beatrycze-volk in #1659
- [BUGFIX] Fixes navigation URL encoding and measure navigation by @markusweigelt in #1660
- [BUGFIX] Fix assignment for
is_administrativekey by @beatrycze-volk in #1666 - [BUGFIX] Fix displaying of metadata by @markusweigelt in #1668
- [BUGFIX] Ensure 'fulltext' parameter is checked before accessing it in
SolrSearchby @fschoelzel in #1669 - [SECURITY] Bump form-data from 3.0.3 to 3.0.4 in /Build by @dependabot[bot] in #1672
- [SECURITY] Bump on-headers and compression in /Build by @dependabot[bot] in #1670
- [MAINTENANCE] Bump phpstan/phpstan from 1.12.27 to 1.12.28 by @dependabot[bot] in #1671
- [MAINTENANCE] DlfMediaPlayer UI updates regarding to shaka-player UI update by @fschoelzel in #1675
- [BUGFIX] Parsing timecode in
TableOfContentschapter links for A/V media files by @fschoelzel in #1673 - [FEATURE] Add a Github-Actions workflow for webpack build production by @fschoelzel in #1676
- [BUGFIX] Incorrectly named key for thumbnails' usegroup by @fschoelzel in #1677
- [BUGFIX] Add Label and Translation for
tx_dlf_metadatasubentriesby @fschoelzel in #1678 - [BUGFIX] Fix
storagePidassignment for parent document by @beatrycze-volk in #1679 - [BUGFIX] Fix exception indexing documents if some pages miss fulltext by @thomaslow in #1680
- [BUGFIX] Fix error if there is no previous or next document by @thomaslow in #1681
- [BUGFIX] Fix wrong viewer Javascript is triggered due to multiview setting by @thomaslow in #1682
- [BUGFIX] Check if array key exist by @markusweigelt in #1687
- [BUGFIX] Document caching by @markusweigelt in #1689
- [BUGFIX] Clean shell script (addresses hints from shellcheck) by @stweil in #1693
- [MAINTENANCE] Minor maintenance in
IndexCommandby @beatrycze-volk in #1694 - [BUGFIX] Fix exception when filtering search results via facet constraints by @thomaslow in #1685
- [BUGFIX] Add check for Array Key
multiViewTypeas it is not mandatory in typoscript config by @fschoelzel in #1695 - [BUGFIX] Allow null for 1st argument of
DocumentRepository::getChildrenOfYearAnchor()by @stweil in #1697 - [BUGFIX] Fix more runtime warnings by @stweil in #1698
- [MAINTENANCE] Adjust date displaying in calendar by @beatrycze-volk in #1704
- [BUGFIX] Prevent loading media sources from shaka-player video elements by @fschoelzel in #1705
- [BUGFIX] Check for imageUrls where empty nested arrays returned false positives by @fschoelzel in #1706
- [BUGFIX] Implement workaround for Fluid parser with equalizer script by @fschoelzel in #1707
- [BUGFIX] Create/resume
AudioContextonly in response to user gestures to avoid autoplay blocks by @fschoelzel in #1709 - [FEATURE] Indexing TEI full texts by @markusweigelt in #1712
- [BUGFIX] Initialize properties in
AbstractControllerdepending on application context by @beatrycze-volk in #1640
Full Changelog: v5.1.0...v6.0.0-rc1