Files
kupshop/bundles/KupShop/I18nBundle/Util/TranslationsMenuUtil.php
2025-08-02 16:30:27 +02:00

54 lines
1.7 KiB
PHP

<?php
namespace KupShop\I18nBundle\Util;
class TranslationsMenuUtil
{
private $translationLocator;
public function __construct(TranslationLocator $translationLocator)
{
$this->translationLocator = $translationLocator;
}
public function getTranslationsMenu()
{
$menuCls = new \AdminBarMenu();
$menu = $menuCls->getMenu();
$menu = array_combine(array_column($menu, 'name'), $menu);
$translate_menu = $menu['translate']['submenu'];
$translate_menu[] = ['name' => 'translate.translateSlidersImages'];
$this->getTranslationsClasses($translate_menu);
return $translate_menu;
}
protected function getTranslationsClasses(&$menu)
{
$translations = $this->translationLocator->getTranslations();
foreach ($menu as $key => &$menu_item) {
if (($menu_item['name'] == 'translationsStats') || ($menu_item['name'] == 'languageCheck') || ($menu_item['name'] == 'languageCheckAdmin')) {
unset($menu[$key]);
continue;
}
if (!empty($menu_item['submenu'])) {
$this->getTranslationsClasses($menu_item['submenu']);
} else {
$listType = str_replace('translate.', '', $menu_item['name']);
$className = str_replace('translate.translate', '', $menu_item['name']).'Translation';
$menu_item['listType'] = $listType;
$menu_item['className'] = $translations[$className] ?? '';
}
}
return $menu;
}
public function getTranslationsServices()
{
return $this->translationLocator->getTranslations();
}
}