From 9468491ea7253f13f0742eb602c10c55a81f0718 Mon Sep 17 00:00:00 2001 From: Felix Hamader Date: Mon, 14 Nov 2022 14:55:43 +0100 Subject: [PATCH 1/2] :sparkles: [WP-46] Add support for more template Files --- Error/Maintenance.php | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/Error/Maintenance.php b/Error/Maintenance.php index f471726..d88ee86 100644 --- a/Error/Maintenance.php +++ b/Error/Maintenance.php @@ -15,6 +15,8 @@ use Magento\Framework\Filesystem\Io\File as FileReader; use Magento\Framework\ObjectManagerInterface; use Magento\Framework\Phrase; +use Magento\Store\Model\StoreManager; +use Magento\Framework\Filesystem\Driver\File; class Maintenance { @@ -33,21 +35,34 @@ class Maintenance * @var FileReader */ private $fileReader; + /** + * @var StoreManager + */ + private $storeManager; + /** + * @var File + */ + private $fileDriver; /** * Maintenance constructor. - * * @param Filesystem $filesystem * @param FileReader $fileReader + * @param StoreManager $storeManager + * @param File $fileDriver */ public function __construct( Filesystem $filesystem, - FileReader $fileReader + FileReader $fileReader, + StoreManager $storeManager, + File $fileDriver ) { $this->filesystem = $filesystem; $this->fileReader = $fileReader; $objectManagerFactory = Bootstrap::createObjectManagerFactory(BP, $_SERVER); $this->objectManager = $objectManagerFactory->create($_SERVER); + $this->storeManager = $storeManager; + $this->fileDriver = $fileDriver; } /** @@ -69,11 +84,25 @@ public function renderPage() */ private function setTemplate() { - $templatePath = $this->filesystem - ->getDirectoryRead(DirectoryList::PUB) - ->getAbsolutePath('maintenance/index.html'); + $path = $this->filesystem->getDirectoryRead(DirectoryList::PUB)->getAbsolutePath() . "maintenance/"; + $store = $this->storeManager->getStore(); + + // Default template ([store_code].html) + $template = $path . $store->getCode() . ".html"; + if (!$this->fileDriver->isExists($template)) { + // Second template ([website_code].html) + $template = $path . $store->getWebsite()->getCode() . ".html"; + if (!$this->fileDriver->isExists($template)) { + // Third template (fallback.html) + $template = $path . "fallback.html"; + if (!$this->fileDriver->isExists($template)) { + // Last template (index.html) + $template = $path . "index.html"; + } + } + } - $template = $this->fileReader->read($templatePath); + $template = $this->fileReader->read($template); if (!$template) { return __('Maintenance html file not found. Upload your index.html file under pub/maintenance directory.'); From 561565ea45c3f4822f62326eb33c1316e5efe5c5 Mon Sep 17 00:00:00 2001 From: Marcus Correa Date: Thu, 15 Dec 2022 13:42:44 +0100 Subject: [PATCH 2/2] Update PHP version dependency --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index dab34d0..163fcfa 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "alpine/maintenance", "description": "Custom maintenance page from html file placed in pub/maintenance directory", "require": { - "php": "~7.1.3||~7.2.0||~7.3.0||~7.4.0", + "php": "^7.1.3||^8.1", "magento/magento-composer-installer": "*", "magento/framework": "102.0.*||103.0.*" },