From 87b25b922e1549a6eecc8dbf3ad1b4a46e1578a1 Mon Sep 17 00:00:00 2001 From: Etienne Roudeix Date: Fri, 15 Nov 2013 12:19:06 +0100 Subject: [PATCH] configure button in module page --- core/lib/Thelia/Core/Template/Loop/Module.php | 17 +++++++++++++++++ .../default/includes/module-block.html | 9 +++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/lib/Thelia/Core/Template/Loop/Module.php b/core/lib/Thelia/Core/Template/Loop/Module.php index 786990b66..68d9243dd 100755 --- a/core/lib/Thelia/Core/Template/Loop/Module.php +++ b/core/lib/Thelia/Core/Template/Loop/Module.php @@ -148,6 +148,23 @@ class Module extends BaseI18nLoop implements PropelSearchLoopInterface ->set("CLASS", $module->getFullNamespace()) ->set("POSITION", $module->getPosition()); + $hasConfigurationInterface = false; + $routerId = "router." . $module->getBaseDir(); + /* first test if module defines it's own config route */ + if($this->container->has($routerId)) { + if($this->container->get($routerId)->match('/admin/module/' . $module->getCode())) { + $hasConfigurationInterface = true; + } + } + /* if not ; test if it uses admin inclusion : module_configuration.html */ + if(false === $hasConfigurationInterface) { + if(file_exists( sprintf("%s/%s/AdminIncludes/%s.html", THELIA_MODULE_DIR, $module->getBaseDir(), "module_configuration"))) { + $hasConfigurationInterface = true; + } + } + + $loopResultRow->set("CONFIGURABLE", $hasConfigurationInterface ? 1 : 0); + if (null !== $this->getProfile()) { $accessValue = $module->getVirtualColumn('access'); $manager = new AccessManager($accessValue); diff --git a/templates/backOffice/default/includes/module-block.html b/templates/backOffice/default/includes/module-block.html index af58c3573..386b28e6f 100644 --- a/templates/backOffice/default/includes/module-block.html +++ b/templates/backOffice/default/includes/module-block.html @@ -41,10 +41,11 @@ - - {loop type="auth" name="can_change" role="ADMIN" module=$CODE access="VIEW"} - {intl l="Configure"} - {/loop} + {if $CONFIGURABLE == 1} + {loop type="auth" name="can_change" role="ADMIN" module=$CODE access="VIEW"} + {intl l="Configure"} + {/loop} + {/if} {*loop type="auth" name="can_change" role="ADMIN" resource="admin.modules" access="VIEW"}