* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ declare(strict_types=1); namespace PrestaShop\Module\Mbo\Traits\Hooks; use Exception; use PrestaShop\Module\Mbo\Addons\Provider\LinksProvider; use PrestaShop\Module\Mbo\Exception\ExpectedServiceNotFoundException; use PrestaShop\Module\Mbo\Helpers\ErrorHelper; trait UseDisplayEmptyModuleCategoryExtraMessage { /** * Hook displayEmptyModuleCategoryExtraMessage. * Add extra message to display for an empty modules' category. */ public function hookDisplayEmptyModuleCategoryExtraMessage(array $params): string { $categoryName = $params['category_name']; try { /** @var \Twig\Environment $twig */ $twig = $this->get('twig'); /** @var LinksProvider $linksProvider */ $linksProvider = $this->get('mbo.addons.links_provider'); if (null === $linksProvider || null === $twig) { throw new ExpectedServiceNotFoundException( 'Some services not found in UseDisplayEmptyModuleCategoryExtraMessage' ); } return $twig->render( '@Modules/ps_mbo/views/templates/hook/twig/module_manager_empty_category.html.twig', [ 'categoryName' => $categoryName, 'categoryLink' => $linksProvider->getCategoryLink($categoryName), ] ); } catch (Exception $e) { ErrorHelper::reportError($e); return ''; } } }