* @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\PsEditionBasic\Traits\Hooks; use PrestaShop\Module\PsEditionBasic\Install\Tabs\Tabs; use PrestaShop\PrestaShop\Adapter\Configuration; trait UseActionAdminControllerSetMedia { /** * @return void */ public function hookActionAdminControllerSetMedia(): void { /** @var Configuration $configuration */ $configuration = $this->get('prestashop.adapter.legacy.configuration'); (int) $configuration->get(self::PS_EDITION_BASIC_MODULE_TABS_LANG_UPDATE_REQUIRED); // If new language is added we want to update module tabs. // dd((int) $configuration->get(self::PS_EDITION_BASIC_MODULE_TABS_LANG_UPDATE_REQUIRED)); if ((int) $configuration->get(self::PS_EDITION_BASIC_MODULE_TABS_LANG_UPDATE_REQUIRED)) { $this->updateModuleTabsNames(); } // Loading the reskin because this hook is call inside iframes $this->context->controller->addCSS($this->getParameter('ps_edition_basic.edition_basic_admin_css')); } /** * @return void */ private function updateModuleTabsNames(): void { $tabs = Tabs::getTabs(); foreach ($tabs as $tab) { $moduleTab = \Tab::getInstanceFromClassName($tab['class_name']); if (!$moduleTab->id) { continue; } $names = $tab['name']; $languages = \Language::getLanguages(false); foreach ($languages as $language) { $moduleTab->name[(int) $language['id_lang']] = $names[$language['iso_code']] ?? $names['en']; } $moduleTab->update(); } /** @var Configuration $configuration */ $configuration = $this->get('prestashop.adapter.legacy.configuration'); $configuration->set(self::PS_EDITION_BASIC_MODULE_TABS_LANG_UPDATE_REQUIRED, '0'); } }