public static function loadSavedForms($generatorName)
{
$suffix = str_replace(' ', '', $generatorName);
if (self::$savedFormList) {
return self::$savedFormList;
}
/*
* get all possible gii directories with out validation on existing
*/
$giiDirs = [];
$giiDirs[] = \Yii::getAlias('@app/gii');
if ($commonGiiDir = \Yii::getAlias('@common/gii', false)) {
$giiDirs[] = $commonGiiDir;
}
foreach (\Yii::$app->modules as $moduleId => $module) {
/*
* get module base path
*/
if (method_exists($module, 'getBasePath')) {
$basePath = $module->getBasePath();
} else {
$reflector = new \ReflectionClass($module['class']);
$basePath = StringHelper::dirname($reflector->getFileName());
}
$basePath .= '/gii';
$giiDirs[] = $basePath;
}
/*
* from all gii directories collec forms
*/
$forms = [];
foreach ($giiDirs as $basePath) {
/*
* search in module gii directory all forms json files
* with required suffix
*/
if (!file_exists($basePath)) {
continue;
}
$files = scandir($basePath);
foreach ($files as $file) {
if (!preg_match('#' . $suffix . '\\.json$#', $file)) {
continue;
}
$name = preg_replace('#' . $suffix . '\\.json$#', '', $file);
$forms[$moduleId . $name] = ['jsonData' => file_get_contents($basePath . '/' . $file), 'label' => $moduleId . ' - ' . $name];
}
}
return self::$savedFormList = $forms;
}