diff --git a/src/Admin/Controller/SoldierController.php b/src/Admin/Controller/SoldierController.php index 3fe96b9..ddb956b 100644 --- a/src/Admin/Controller/SoldierController.php +++ b/src/Admin/Controller/SoldierController.php @@ -21,6 +21,8 @@ #[Route('/soldiers', 'soldier')] class SoldierController extends AbstractCrudController { + public const FREE_SOLDIER_LIMIT = 5; + protected string $listTemplate = '@ForumifyMilhqPlugin/admin/soldiers/list/list.html.twig'; protected string $formTemplate = '@ForumifyMilhqPlugin/admin/soldiers/edit/form.html.twig'; @@ -56,7 +58,7 @@ public function create(Request $request): Response { if (!$this->pluginVersionChecker->isVersionInstalled('forumify/forumify-milhq-plugin', ['basic', 'premium'])) { $soldierCount = $this->soldierRepository->count([]); - if ($soldierCount >= 5) { + if ($soldierCount >= self::FREE_SOLDIER_LIMIT) { $this->addFlash('error', 'You have exceeded the maximum allowed soldiers for the free version of MILHQ.'); return $this->redirectToRoute($this->getRoute('list')); } @@ -84,6 +86,11 @@ protected function templateParams(array $params = []): array 'soldier' => $soldier, ]); + if (!$this->pluginVersionChecker->isVersionInstalled('forumify/forumify-milhq-plugin', ['basic', 'premium'])) { + $params['freeSoldierCount'] = $this->soldierRepository->count([]); + $params['freeSoldierLimit'] = self::FREE_SOLDIER_LIMIT; + } + return $params; } } diff --git a/src/EventSubscriber/SoldierLicenseListener.php b/src/EventSubscriber/SoldierLicenseListener.php index fdca611..8b4caf8 100644 --- a/src/EventSubscriber/SoldierLicenseListener.php +++ b/src/EventSubscriber/SoldierLicenseListener.php @@ -6,6 +6,7 @@ use Doctrine\Bundle\DoctrineBundle\Attribute\AsEntityListener; use Doctrine\ORM\Events; +use Forumify\Milhq\Admin\Controller\SoldierController; use Forumify\Milhq\Entity\Soldier; use Forumify\Milhq\Repository\SoldierRepository; use Forumify\Plugin\Service\PluginVersionChecker; @@ -27,7 +28,7 @@ public function checkLicense(): void } $count = $this->soldierRepository->count([]); - if ($count >= 5) { + if ($count >= SoldierController::FREE_SOLDIER_LIMIT) { throw new AccessDeniedException('You can only have up to 5 soldiers in the free version of MILHQ.'); } } diff --git a/templates/admin/soldiers/list/list.html.twig b/templates/admin/soldiers/list/list.html.twig index 8724a06..2596c87 100644 --- a/templates/admin/soldiers/list/list.html.twig +++ b/templates/admin/soldiers/list/list.html.twig @@ -3,6 +3,19 @@ {{ 'milhq.admin.soldiers.list.title'|trans }} {% endblock %} {% block body %} + {% if freeSoldierLimit is defined %} + {% if freeSoldierCount >= freeSoldierLimit %} +
{{ 'milhq.admin.soldiers.list.free_limit_reached'|trans({ 'count': freeSoldierCount, 'limit': freeSoldierLimit }) }}
+ {{ 'milhq.admin.soldiers.list.upgrade'|trans }} +{{ 'milhq.admin.soldiers.list.free_limit_info'|trans({ 'count': freeSoldierCount, 'limit': freeSoldierLimit }) }}
+ {{ 'milhq.admin.soldiers.list.upgrade'|trans }} +