1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
<?php
MainFactory::load_class('AdminHttpViewController');
class VPEController extends AdminHttpViewController
{
protected $languageProvider;
public function init()
{
$this->languageProvider = MainFactory::create('LanguageProvider',
StaticGXCoreLoader::getDatabaseQueryBuilder());
}
public function actionDefault()
{
$this->contentView->set_template_dir(DIR_FS_ADMIN . 'html/content/');
$vpeReadService = StaticGXCoreLoader::getService('VPERead');
$languageTextManager = MainFactory::create('LanguageTextManager');
$languageTextManager->init_from_lang_file('products_vpe');
$languageIds = $this->languageProvider->getIds()->getIntArray();
$langIds = [];
$langDirs = [];
foreach($languageIds as $languageId)
{
$idData = [
'id' => $languageId,
'code' => $this->languageProvider->getCodeById(new IdType($languageId))
];
$langIds[] = $idData;
$langDirs[$languageId]['directory'] = $this->languageProvider->getDirectoryById(new IdType($languageId));
$langDirs[$languageId]['icon'] = $this->languageProvider->getIconFilenameByCode($this->languageProvider->getCodeById(new IdType($languageId)));
}
$title = $languageTextManager->get_text($languageTextManager->get_text('HEADING_TITLE', 'products_vpe'));
$data = MainFactory::create('KeyValueCollection', [
'languages' => $langIds,
'languageCode' => $this->languageProvider->getCodeById(new IdType($_SESSION['languages_id'])),
'vpeEntities' => $vpeReadService->getAll()->getArray(),
'langPath' => DIR_WS_LANGUAGES,
'langDirs' => $langDirs
]);
return MainFactory::create('AdminLayoutHttpControllerResponse', new NonEmptyStringType($title),
MainFactory::create('ExistingFile', new NonEmptyStringType(DIR_FS_ADMIN
. 'html/content/vpe/vpe.html')),
$data, MainFactory::create('AssetCollection', [
MainFactory::create('Asset', 'products_vpe.lang.inc.php')
]));
}
private function _getIconPathByLangId()
{
return function ($langId)
{
$id = new IdType($langId);
return DIR_WS_LANGUAGES . $this->languageProvider->getDirectoryById($id) . '/admin/images/'
. $this->languageProvider->getIconFilenameByCode($this->languageProvider->getCodeById($id));
};
}
}