Bolt\Twig\Handler\RecordHandler::listTemplates PHP Метод

listTemplates() публичный Метод

Lists templates, optionally filtered by $filter.
public listTemplates ( string $filter = null, boolean $safe = false ) : array
$filter string
$safe boolean
Результат array Sorted and possibly filtered templates
    public function listTemplates($filter = null, $safe = false)
    {
        // No need to list templates in safe mode.
        if ($safe) {
            return null;
        }
        $files = [];
        $name = $filter ? Glob::toRegex($filter, false, false) : '/^[a-zA-Z0-9]\\V+\\.twig$/';
        $finder = new Finder();
        $finder->files()->in($this->app['resources']->getPath('templatespath'))->notName('/^_/')->notPath('node_modules')->notPath('bower_components')->notPath('.sass-cache')->depth('<4')->path($name)->sortByName();
        foreach ($finder as $file) {
            $name = $file->getRelativePathname();
            $files[$name] = $name;
        }
        // Get the active themeconfig
        $themeConfig = $this->app['config']->get('theme/templateselect/templates', false);
        // Check: Have we defined names for any of the matched templates?
        if ($themeConfig) {
            foreach ($themeConfig as $templateFile) {
                if (!empty($templateFile['name']) && !empty($templateFile['filename']) && in_array($templateFile['filename'], $files)) {
                    $files[$templateFile['filename']] = $templateFile['name'];
                }
            }
        }
        return $files;
    }

Usage Example

Пример #1
0
 public function testListTemplatesTemplateSelect()
 {
     $app = $this->getApp();
     $app['config']->set('theme/templateselect/templates', ['koala' => ['name' => 'koala.twig', 'filename' => 'koala.twig'], 'clippy' => ['name' => 'clippy.twig', 'filename' => 'clippy.twig']]);
     $handler = new RecordHandler($app);
     $result = $handler->listTemplates('*.twig', false);
     $this->assertArrayHasKey('koala.twig', $result);
     $this->assertArrayHasKey('clippy.twig', $result);
     $this->assertArrayNotHasKey('entry.twig', $result);
     $this->assertArrayNotHasKey('extrafields.twig', $result);
     $this->assertArrayNotHasKey('index.twig', $result);
     $this->assertArrayNotHasKey('listing.twig', $result);
     $this->assertArrayNotHasKey('record.twig', $result);
 }