New versions of this module and support for Omeka S version 3.0 and above are available on GitLab, which seems to respect users and privacy better than the previous repository.
Blocks Disposition is a module for Omeka S that allows to manage automatic display of features of the modules in the resource pages.
For example, it can display the viewer Mirador or Universal Viewer, then the citation provided by the module Citation, then the map of the module Mapping. then the tagging form of the module Folksonomy, then the comments of the module Comment, etc. Without this module, these features would be displayed in the alphabetic order, so the theme would be edited to get the same result.
So, this module simplifies the creation of the five main public views (item/show
,
item/browse
, item-set/show
, item-set/browse
, media/show
), and make them
reorderable directly in the admin interface, like the simple pages.
Uncompress files and rename module folder BlocksDisposition
. Then install it
like any other Omeka module and follow the config instructions.
See general end user documentation for Installing a module.
The options can be set differently for each site in the site settings, under
Blocks Disposition
. Simply enable and set the order of each feature for each
type of page.
The process uses the trigger view.show.before
to reorder the modules that use
the trigger view.show.after
, so they must not be removed from the theme. It is
the same for the triggers view.browse.before
and view.browse.after
.
Some modules may not be listed: add them in the module config/module.config.php. This module is not yet enable to determine all modules that are used in the public resources pages
Some module blocks are not sortable, because they use closures instead of a simple object/method callable, so the module doesn’t know the initial module.
So to make them orderable, closures should be replaced by raw callable. For
example, for module Mapping, the method attachListeners()
in the main file
of the module modules/Mapping/Module.php
must be updated:
101 $sharedEventManager->attach(
102 'Omeka\Controller\Site\Item',
103 'view.show.after',
104-- function (Event $event) {
105-- echo $event->getTarget()->partial('mapping/index/show');
106-- }
++ [$this, 'handleViewShowAfterItem']
107 );
Add:
public function handleViewShowAfterItem(Event $event)
{
echo $event->getTarget()->partial('mapping/index/show');
}
This process creates a cleaner code too, since loading step is not mixed with
the display step in the same method. This fix is the same for any module that
uses a closure for the public trigger view.show.after
, for example Collecting.
Another point to check is the fact that the namespace of the callable that is triggered must be the same than the module name. This is always the case for all known public modules.
NOTE This fix is integrated upstream in last version of Mapping, Collecting, and some other modules, so you only have to check your own modules.
- Determine the list of modules automatically via the events they listen.
- Manage events "view.layout" so appended blocks can be prepended and vice-versa.
Use it at your own risk.
It’s always recommended to backup your files and your databases and to check your archives regularly so you can roll back if needed.
See online issues on the module issues page on GitLab.
This module is published under the CeCILL v2.1 license, compatible with GNU/GPL and approved by FSF and OSI.
In consideration of access to the source code and the rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software’s author, the holder of the economic rights, and the successive licensors only have limited liability.
In this respect, the risks associated with loading, using, modifying and/or developing or reproducing the software by the user are brought to the user’s attention, given its Free Software status, which may make it complicated to use, with the result that its use is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the suitability of the software as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions of security. This Agreement may be freely reproduced and published, provided it is not altered, and that no provisions are either added or removed herefrom.
- Copyright Daniel Berthereau, 2019-2024 (see Daniel-KM on GitLab)