FluidTYPO3\Fluidpages\Backend\TemplateFileLayoutSelector::addLayoutOptions PHP Метод

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

Renders a Fluid Template Layout select field
public addLayoutOptions ( array &$parameters, mixed &$pObj ) : string
$parameters array
$pObj mixed
Результат string
    public function addLayoutOptions(&$parameters, &$pObj)
    {
        $referringField = $parameters['config']['arguments']['referring_field'];
        $currentValue = $parameters['row'][$referringField];
        $configuration = $this->configurationService->getViewConfigurationByFileReference($currentValue);
        $templatePaths = new TemplatePaths($configuration);
        $files = $templatePaths->resolveAvailableLayoutFiles();
        $files = array_map('basename', $files);
        foreach ($files as $file) {
            if (0 !== strpos($file, '.')) {
                $file = pathinfo($file, PATHINFO_FILENAME);
                array_push($parameters['items'], [$file, $file]);
            }
        }
    }

Usage Example

 /**
  * @return void
  */
 public function testAddLayoutOptions()
 {
     $layoutRootPath = 'EXT:fluidpages/Tests/Fixtures/Templates/Page/';
     $parameters = array('items' => array());
     $instance = new TemplateFileLayoutSelector();
     $parent = '';
     $service = $this->getMock('FluidTYPO3\\Fluidpages\\Service\\ConfigurationService', array('getViewConfigurationByFileReference'));
     $service->expects($this->once())->method('getViewConfigurationByFileReference')->willReturn(array('layoutRootPaths' => array($layoutRootPath)));
     $instance->injectConfigurationService($service);
     $instance->addLayoutOptions($parameters, $parent);
     $this->assertEquals(array('Dummy', 'Dummy'), $parameters['items'][0]);
 }