Commit ce9dff7d authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Gestion des sous-dossiers pour le code

parent c53abc66
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ class Controller extends AbstractActionController
            $viewModel->setTemplate('unicaen-code/index');
        }

        $viewName = str_replace('.', '/', $viewName);

        $viewModel->setVariables([
            'controller' => $this,
            'container'  => Util::getContainer(),
+24 −10
Original line number Diff line number Diff line
@@ -35,22 +35,34 @@ class CollectorService implements CollectorInterface
        $viewDirs  = $this->getServiceConfig()->getViewDirs();
        $viewFiles = [];
        foreach ($viewDirs as $viewDir) {
            $files = scandir($viewDir, SCANDIR_SORT_ASCENDING);
            foreach ($files as $file) {
            $files  = new \RecursiveDirectoryIterator(
                $viewDir,
                \RecursiveDirectoryIterator::SKIP_DOTS
            );
            $rFiles = new \RecursiveIteratorIterator($files);
            foreach ($rFiles as $file) {
                $file = $file->getPathname();
                if (str_starts_with($file, $viewDir)) {
                    $file = substr($file, strlen($viewDir));
                    if (str_starts_with($file, '/')) {
                        $file = substr($file, 1);
                    }
                    if (!str_starts_with($file, 'generator') && !str_starts_with($file, 'template')) {
                        $viewFiles[] = $file;
                    }
                }
            }
        }
        $viewFiles = array_unique($viewFiles);
        sort($viewFiles);
        $items = [];
        foreach ($viewFiles as $viewFile) {
            if ($viewFile != '.' && $viewFile != '..') {
            if (false !== strrpos($viewFile, '.php')) {
                $name         = substr($viewFile, 0, strrpos($viewFile, '.php'));
                    $url = $this->urlVH->__invoke('unicaen-code', ['view' => $name]);
                $url          = $this->urlVH->__invoke('unicaen-code', ['view' => str_replace('/', '.', $name)]);
                $items[$name] = $url;
            }
        }
        }
        return $items;
    }

@@ -67,6 +79,8 @@ class CollectorService implements CollectorInterface
        return $items;
    }



    /**
     * {@inheritDoc}
     */