12345678910111213141516171819202122232425262728293031323334353637 |
- <?php
- namespace Modules\Common\Repository\Options;
- use Catch\CatchAdmin;
- use Illuminate\Support\Facades\File;
- use Illuminate\Support\Str;
- class Components implements OptionInterface
- {
- /**
- * @var array|string[]
- */
- protected array $components = [
- [
- 'label' => 'layout',
- 'value' => '/admin/layout/index.vue'
- ]
- ];
- public function get(): array
- {
- if ($module = request()->get('module')) {
- $components = File::glob(CatchAdmin::getModuleViewsPath($module).'*'.DIRECTORY_SEPARATOR.'*.vue');
- foreach ($components as $component) {
- $this->components[] = [
- 'label' => Str::of($component)->explode(DIRECTORY_SEPARATOR)->pop(2)->pop(),
- 'value' => Str::of($component)->replace(CatchAdmin::moduleRootPath(), '')->prepend('/')
- ];
- }
- }
- return $this->components;
- }
- }
|