54 lines
1.7 KiB
PHP
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();
|
|
}
|
|
}
|