diff --git a/config/vufind/config.ini b/config/vufind/config.ini index 4329328668333d2c36d854aebab55e6961177e97..1d05cc463db63e14f1d2035078e6ddeb277a727e 100644 --- a/config/vufind/config.ini +++ b/config/vufind/config.ini @@ -74,6 +74,8 @@ sidebarOnLeft = false showBookBag = false ; Set the maximum amount of items allowed in the Book Bag - Default is 100 bookBagMaxSize = 100 +; Generator value to display in an HTML header <meta> tag: +generator = "VuFind 2.0" ; This section allows you to configure the mechanism used for storing user ; sessions. Available types: File, Memcache, Database. diff --git a/module/VuFind/src/VuFind/Config/Upgrade.php b/module/VuFind/src/VuFind/Config/Upgrade.php index 6f4817619aef6575658a13a6a0d3062665e1b582..fb9702562904274c374112844b5c3e352fe77d8b 100644 --- a/module/VuFind/src/VuFind/Config/Upgrade.php +++ b/module/VuFind/src/VuFind/Config/Upgrade.php @@ -510,6 +510,13 @@ class Upgrade unset($newConfig['Statistics']['enabled']); } + // Update generator if it is default value: + if (isset($newConfig['Site']['generator']) + && $newConfig['Site']['generator'] == 'VuFind ' . $this->from + ) { + $newConfig['Site']['generator'] = 'VuFind ' . $this->to; + } + // Deal with shard settings (which may have to be moved to another file): $this->upgradeShardSettings(); diff --git a/module/VuFind/tests/fixtures/configs/customgenerator/config.ini b/module/VuFind/tests/fixtures/configs/customgenerator/config.ini new file mode 100644 index 0000000000000000000000000000000000000000..30491f29f9db6222e6803313c8cca5443488e372 --- /dev/null +++ b/module/VuFind/tests/fixtures/configs/customgenerator/config.ini @@ -0,0 +1,2 @@ +[Site] +generator = "Custom Generator" \ No newline at end of file diff --git a/module/VuFind/tests/fixtures/configs/defaultgenerator/config.ini b/module/VuFind/tests/fixtures/configs/defaultgenerator/config.ini new file mode 100644 index 0000000000000000000000000000000000000000..8d71fe49a1bc86be2e2d23a6ad09db7d6e870db1 --- /dev/null +++ b/module/VuFind/tests/fixtures/configs/defaultgenerator/config.ini @@ -0,0 +1,2 @@ +[Site] +generator = "VuFind defaultgenerator" \ No newline at end of file diff --git a/module/VuFind/tests/unit-tests/src/Config/UpgradeTest.php b/module/VuFind/tests/unit-tests/src/Config/UpgradeTest.php index 0e6ae3e8472828e3ff5ec441ab4abffbd74113e5..8940274523cf566d277575b3d26a34b1a01ef52c 100644 --- a/module/VuFind/tests/unit-tests/src/Config/UpgradeTest.php +++ b/module/VuFind/tests/unit-tests/src/Config/UpgradeTest.php @@ -40,6 +40,13 @@ use VuFind\Config\Upgrade; */ class UpgradeTest extends \VuFindTest\Unit\TestCase { + /** + * Target upgrade version + * + * @var string + */ + protected $targetVersion = '2.0'; + /** * Get an upgrade object for the specified source version: * @@ -51,7 +58,7 @@ class UpgradeTest extends \VuFindTest\Unit\TestCase { $oldDir = realpath(__DIR__ . '/../../../fixtures/configs/' . $version); $rawDir = realpath(__DIR__ . '/../../../../../../config/vufind'); - return new Upgrade($version, '2.0', $oldDir, $rawDir); + return new Upgrade($version, $this->targetVersion, $oldDir, $rawDir); } /** @@ -144,4 +151,29 @@ class UpgradeTest extends \VuFindTest\Unit\TestCase { $this->checkVersion('1.4'); } + + /** + * Test generator upgrade. + * + * @return void + */ + public function testDefaultGenerator() + { + // We expect the upgrader to switch default values: + $upgrader = $this->getUpgrader('defaultgenerator'); + $upgrader->run(); + $results = $upgrader->getNewConfigs(); + $this->assertEquals( + 'VuFind ' . $this->targetVersion, + $results['config.ini']['Site']['generator'] + ); + + // We expect the upgrader not to change custom values: + $upgrader = $this->getUpgrader('customgenerator'); + $upgrader->run(); + $results = $upgrader->getNewConfigs(); + $this->assertEquals( + 'Custom Generator', $results['config.ini']['Site']['generator'] + ); + } } \ No newline at end of file diff --git a/module/VuFindTheme/src/VuFindTheme/Initializer.php b/module/VuFindTheme/src/VuFindTheme/Initializer.php index 0e3a1de337c977f38c34233d8a9a09b52fa8d455..751ef013c214f1c0efca0d8c21ca6b123a948156 100644 --- a/module/VuFindTheme/src/VuFindTheme/Initializer.php +++ b/module/VuFindTheme/src/VuFindTheme/Initializer.php @@ -91,6 +91,8 @@ class Initializer * selected through the user interface; each entry is a colon-separated * name:description pair, where name may be 'standard,' 'mobile,' or one of * the parameter-values from the alternate_themes array.</li> + * <li>generator - a Generator value to display in the HTML header + * (optional)</li> * </ul> * @param MvcEvent $event Zend MVC Event object */ @@ -320,6 +322,11 @@ class Initializer // Grab the resource manager for tracking CSS, JS, etc.: $resources = $this->serviceManager->get('VuFindTheme\ResourceContainer'); + // Set generator if necessary: + if (isset($this->config->generator)) { + $resources->setGenerator($this->config->generator); + } + // Apply the loaded theme settings in reverse for proper inheritance: foreach ($themes as $key=>$currentThemeInfo) { if (isset($currentThemeInfo['helpers'])) { diff --git a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php index 2fcef78e932fe35fd075fafb4f07f17054546ca3..0743a3e28d52483fdb4d1d1ef3512e5e0dc3038e 100644 --- a/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php +++ b/module/VuFindTheme/src/VuFindTheme/ResourceContainer.php @@ -66,6 +66,13 @@ class ResourceContainer */ protected $encoding = 'UTF-8'; + /** + * Generator value for <meta> tag + * + * @var string + */ + protected $generator = ''; + /** * Add a CSS file. * @@ -165,4 +172,26 @@ class ResourceContainer { return $this->favicon; } + + /** + * Set the generator. + * + * @param string $generator New generator. + * + * @return void + */ + public function setGenerator($generator) + { + $this->generator = $generator; + } + + /** + * Get the generator. + * + * @return string + */ + public function getGenerator() + { + return $this->generator; + } } \ No newline at end of file diff --git a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php index aefe2af46173d358e9de52fd3dffa39c16bcde1e..f20876903af24cd25ea4def1538063c0e7d5a4ec 100644 --- a/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php +++ b/module/VuFindTheme/src/VuFindTheme/View/Helper/HeadThemeResources.php @@ -68,6 +68,12 @@ class HeadThemeResources extends \Zend\View\Helper\AbstractHelper 'Content-Type', 'text/html; charset=' . $this->container->getEncoding() ); + // Set up generator: + $generator = $this->container->getGenerator(); + if (!empty($generator)) { + $headMeta()->appendName('Generator', $generator); + } + // Load CSS (make sure we prepend them in the appropriate order; theme // resources should load before extras added by individual templates): $headLink = $this->getView()->plugin('headlink');