예제 #1
0
 /**
  * @param Theme $theme
  * @return array
  */
 protected function collectThemeAssets(Theme $theme)
 {
     $formulae = [];
     $assets = $theme->getDataByKey('assets', []);
     foreach ($assets as $assetKey => $asset) {
         $name = self::RESOURCE_ALIAS . '_' . $theme->getName() . '_' . $assetKey;
         $formulae[$name] = [$asset['inputs'], $asset['filters'], ['output' => $asset['output'], 'name' => $name]];
     }
     return $formulae;
 }
예제 #2
0
 /**
  * @param Theme $theme
  * @return array
  */
 protected function collectThemeAssets(Theme $theme)
 {
     $assets = $theme->getDataByKey('assets', []);
     $parentTheme = $theme->getParentTheme();
     if ($parentTheme) {
         $parentTheme = $this->themeManager->getTheme($parentTheme);
         $assets = array_merge_recursive($this->collectThemeAssets($parentTheme), $assets);
     }
     return $assets;
 }
예제 #3
0
 /**
  * @return array
  */
 public function themeDefinitionDataProvider()
 {
     $minimalDefinition = new Theme('base');
     $fullDefinition = new Theme('oro-black', 'base');
     $fullDefinition->setIcon('oro-black-icon.ico');
     $fullDefinition->setLogo('oro-black-logo.png');
     $fullDefinition->setScreenshot('oro-black-screenshot.png');
     $fullDefinition->setLabel('Oro Black Theme');
     $fullDefinition->setDirectory('OroBlack');
     $fullDefinition->setGroups(['main', 'frontend']);
     $fullDefinition->setDescription('description');
     $fullDefinition->setData(['key' => 'value']);
     return ['minimal definition given' => ['$name' => 'base', '$definition' => [], '$expectedResult' => $minimalDefinition], 'full definition given' => ['$name' => 'oro-black', '$definition' => ['parent' => 'base', 'groups' => ['main', 'frontend'], 'label' => 'Oro Black Theme', 'screenshot' => 'oro-black-screenshot.png', 'icon' => 'oro-black-icon.ico', 'logo' => 'oro-black-logo.png', 'directory' => 'OroBlack', 'description' => 'description', 'data' => ['key' => 'value']], '$expectedResult' => $fullDefinition]];
 }
예제 #4
0
 public function testDataMethods()
 {
     $data = ['key' => 'value'];
     $this->assertEquals([], $this->theme->getData());
     $this->theme->setData($data);
     $this->assertEquals($data, $this->theme->getData());
     $this->assertEquals($data['key'], $this->theme->getDataByKey('key'));
     $this->assertEquals('default value', $this->theme->getDataByKey('unknown key', 'default value'));
     $this->theme->setDataByKey('unknown key', 'unknown value');
     $this->assertEquals('unknown value', $this->theme->getDataByKey('unknown key', 'default value'));
 }
예제 #5
0
 public function testParentThemeMethods()
 {
     $this->assertNull($this->theme->getParentTheme());
     $this->theme->setParentTheme('base');
     $this->assertEquals('base', $this->theme->getParentTheme());
 }
예제 #6
0
 public function testDescriptionMethods()
 {
     $this->assertNull($this->theme->getDescription());
     $this->theme->setDescription('test');
     $this->assertEquals('test', $this->theme->getDescription());
 }