Skip to content

Commit ebf44de

Browse files
Daniel BerthereauDaniel Berthereau
authored andcommitted
Released version 3.6.20.
1 parent 09f7d26 commit ebf44de

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

config/module.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ author_link = "https://gitlab.com/Daniel-KM"
88
module_link = "https://gitlab.com/Daniel-KM/Omeka-S-module-IiifServer"
99
support_link = "https://gitlab.com/Daniel-KM/Omeka-S-module-IiifServer/-/issues"
1010
configurable = true
11-
version = "3.6.19"
11+
version = "3.6.20"
1212
omeka_version_constraint = "^4.0.0"

data/scripts/upgrade.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*
1313
* @var \Omeka\Api\Manager $api
1414
* @var \Omeka\Settings\Settings $settings
15+
* @var \Common\Stdlib\EasyMeta $easyMeta
1516
* @var \Doctrine\DBAL\Connection $connection
1617
* @var \Doctrine\ORM\EntityManager $entityManager
1718
* @var \Omeka\Mvc\Controller\Plugin\Messenger $messenger
@@ -20,6 +21,8 @@
2021
$api = $plugins->get('api');
2122
$settings = $services->get('Omeka\Settings');
2223
$translate = $plugins->get('translate');
24+
$urlPlugin = $plugins->get('url');
25+
$easyMeta = $services->get('EasyMeta');
2326
$connection = $services->get('Omeka\Connection');
2427
$messenger = $plugins->get('messenger');
2528
$entityManager = $services->get('Omeka\EntityManager');
@@ -355,3 +358,40 @@
355358
);
356359
$messenger->addWarning($message);
357360
}
361+
362+
363+
if (version_compare($oldVersion, '3.6.20', '<')) {
364+
$structureProperty = $settings->get('iiifserver_manifest_structures_property');
365+
$structurePropertyId = $easyMeta->propertyId($structureProperty);
366+
if ($structurePropertyId) {
367+
// Module classes are not available during upgrade.
368+
$qb = $connection->createQueryBuilder();
369+
$qb
370+
->select('COUNT(value.id)')
371+
->from('value', 'value')
372+
->innerJoin('value', 'item', 'item', 'item.id = value.resource_id')
373+
->where('value.property_id = ' . $structurePropertyId)
374+
->andWhere('value.value IS NOT NULL')
375+
->andWhere('value.value != ""')
376+
->orderBy('value.id', 'asc');
377+
$structures = $connection->executeQuery($qb)->fetchOne();
378+
if ($structures) {
379+
require_once dirname(__DIR__, 2) . '/src/Job/UpgradeStructures.php';
380+
$dispatcher = $services->get(\Omeka\Job\Dispatcher::class);
381+
$job = $dispatcher->dispatch(\IiifServer\Job\UpgradeStructures::class);
382+
$message = new PsrMessage(
383+
'A job was launched to upgrade the format of "table of contents". Replaced tocs will be stored in logs ({link}job #{job_id}{link_end}, {link_log}logs{link_end}).', // @translate' // @translate
384+
[
385+
'link' => sprintf('<a href="%s">', htmlspecialchars($urlPlugin->fromRoute('admin/id', ['controller' => 'job', 'id' => $job->getId()]))),
386+
'job_id' => $job->getId(),
387+
'link_end' => '</a>',
388+
'link_log' => class_exists('Log\Entity\Log')
389+
? sprintf('<a href="%1$s">', $urlPlugin->fromRoute('admin/default', ['controller' => 'log'], ['query' => ['job_id' => $job->getId()]]))
390+
: sprintf('<a href="%1$s">', $urlPlugin->fromRoute('admin/id', ['controller' => 'job', 'action' => 'log', 'id' => $job->getId()])),
391+
]
392+
);
393+
$message->setEscapeHtml(false);
394+
$messenger->addWarning($message);
395+
}
396+
}
397+
}

0 commit comments

Comments
 (0)