10 use Zend\Mvc\Controller\AbstractActionController;
11 use Zend\View\Model\JsonModel;
14 class Modules extends AbstractActionController
21 private $objectManager;
35 $this->objectManager = $objectManagerProvider->
get();
48 if ($module[
'selected']) {
49 $enabledModules[] = $module[
'name'];
52 $validity = $this->checkGraph($enabledModules);
54 if ($validity->getVariable(
"success")) {
55 return new JsonModel([
'success' =>
true,
'modules' =>
$allModules]);
57 $errorMessage = $validity->getVariable(
"error");
58 return new JsonModel([
'success' =>
false,
'modules' =>
$allModules,
59 'error' =>
'<b> Corrupt config.php!</b> <br />' . $errorMessage]);
71 $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
72 $enabledModules = isset(
$params[
'selectedModules']) ?
$params[
'selectedModules'] : [];
73 return $this->checkGraph($enabledModules);
75 return new JsonModel([
'success' =>
false,
'error' => $e->getMessage()]);
86 private function checkGraph(array $toBeEnabledModules, $prettyFormat =
false)
91 $constraints =
$status->checkConstraints(
true, $toBeEnabledModules, [], $prettyFormat);
93 $message = $this->getConstraintsFailureMessage(
true, $constraints);
94 return new JsonModel([
'success' =>
false,
'error' =>
$message]);
97 return new JsonModel([
'success' =>
true]);
107 $params = Json::decode($this->getRequest()->getContent(), Json::TYPE_ARRAY);
110 $constraints =
$status->checkConstraints(
116 $message = $this->getConstraintsFailureMessage(
$params[
'status'], $constraints);
117 return new JsonModel([
'success' =>
false,
'error' =>
$message]);
120 $this->allModules->setIsEnabled(
$params[
'status'],
$params[
'module']);
133 private function getConstraintsFailureMessage($isEnable, array $constraints)
136 $updateType =
'enable';
138 $updateType =
'disable';
140 $message =
" Unable to $updateType modules because of the following constraints:<br>" . PHP_EOL
141 . implode(
"<br>" . PHP_EOL, $constraints);
__construct(ModuleStatus $allModules, ObjectManagerProvider $objectManagerProvider)
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]