From 9a4d3e282220ce3275b6c3ead30e445e34c14bd4 Mon Sep 17 00:00:00 2001 From: buttle Date: Tue, 4 May 2021 12:53:55 +0200 Subject: [PATCH] adds viewhelper factory to pass global settings to helper --- config/module.config.php | 7 ++-- .../ArchiveSiteMetaViewHelperFactory.php | 17 +++++++++ ...Meta.php => ArchiveSiteMetaViewHelper.php} | 35 +++++++++++++++---- 3 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 src/Service/ViewHelper/ArchiveSiteMetaViewHelperFactory.php rename src/View/Helper/{ArchiveSiteMeta.php => ArchiveSiteMetaViewHelper.php} (73%) diff --git a/config/module.config.php b/config/module.config.php index d55cbf4..b357186 100644 --- a/config/module.config.php +++ b/config/module.config.php @@ -11,9 +11,10 @@ return [ ], ], 'view_helpers' => [ - 'invokables' => [ - 'archiveSiteMeta' => View\Helper\ArchiveSiteMeta::class, - 'siteCollections' => View\Helper\SiteCollections::class, + 'factories' => [ + 'archiveSiteMeta' => Service\ViewHelper\ArchiveSiteMetaViewHelperFactory::class, + //'archiveSiteMeta' => View\Helper\ArchiveSiteMeta::class, + //'siteCollections' => View\Helper\SiteCollections::class, ], ], 'block_layouts' => [ diff --git a/src/Service/ViewHelper/ArchiveSiteMetaViewHelperFactory.php b/src/Service/ViewHelper/ArchiveSiteMetaViewHelperFactory.php new file mode 100644 index 0000000..6eb424e --- /dev/null +++ b/src/Service/ViewHelper/ArchiveSiteMetaViewHelperFactory.php @@ -0,0 +1,17 @@ +get('Config'); + return new ArchiveSiteMetaViewHelper($services->get('Omeka\Settings')); + } +} diff --git a/src/View/Helper/ArchiveSiteMeta.php b/src/View/Helper/ArchiveSiteMetaViewHelper.php similarity index 73% rename from src/View/Helper/ArchiveSiteMeta.php rename to src/View/Helper/ArchiveSiteMetaViewHelper.php index 2a484dd..c7f5db9 100644 --- a/src/View/Helper/ArchiveSiteMeta.php +++ b/src/View/Helper/ArchiveSiteMetaViewHelper.php @@ -1,14 +1,25 @@ omekaSettings = $omekaSettings; + } /** * Get data for all pages of the specified type in the current site. * @@ -45,14 +56,26 @@ class ArchiveSiteMeta extends AbstractHelper } public function getCollections($sites){ - $collections = []; + $collections = $this->omekaSettings->get('sitemeta_collections'); + $collection_options = []; + + foreach ( explode("\n", $collections) as $value ) { + $key_value = explode("=", str_replace(array("\r", "\n"), '',$value)); + $collection_options[trim($key_value[1])] = trim($key_value[0]); + } + //return $collections; + //$site = $sites[0]->setting('sitemeta_collections'); + //$collections = []; + $result = []; foreach ($sites as $site) { $settings = $this->getSiteMetaValues($site); - if ($settings && !in_array($settings['collection'], $collections)) { - array_push($collections, $settings['collection']); + if ($settings && !in_array($settings['collection'], $result)) { + $name = $collection_options[$settings['collection']]; + $result[$settings['collection']] = $name; + //array_push($collections, $settings['collection']); } } - return $collections; + return $result; } public function getPages()