コード例 #1
0
 /**
  * This will read the $name file and parse it to the PageTemplate
  *
  * @param string $name
  * @return PageTemplateInterface
  * @throws \Exception
  */
 public function parse($name)
 {
     $rawData = $this->getRawData($name);
     $result = new PageTemplate();
     $result->setName($rawData['name']);
     $rows = [];
     foreach ($rawData['rows'] as $rawRow) {
         $regions = [];
         foreach ($rawRow['regions'] as $rawRegion) {
             $region = $this->buildRegion($rawRegion);
             $regions[] = $region;
         }
         $rows[] = new Row($regions);
     }
     $result->setRows($rows);
     $result->setTemplate($rawData["template"]);
     return $result;
 }
コード例 #2
0
 /**
  * This will read the $name file and parse it to the PageTemplate
  *
  * @param string $name
  * @return PageTemplate
  * @throws \Exception
  */
 public function parse($name)
 {
     if (false === ($pos = strpos($name, ':'))) {
         throw new \Exception(sprintf('Malformed namespaced configuration name "%s" (expecting "namespace:pagename.yml").', $name));
     }
     $namespace = substr($name, 0, $pos);
     $name = substr($name, $pos + 1);
     $result = new PageTemplate();
     $path = $this->kernel->locateResource('@' . $namespace . '/Resources/config/pagetemplates/' . $name . '.yml');
     $rawData = Yaml::parse($path);
     $result->setName($rawData['name']);
     $rows = array();
     foreach ($rawData['rows'] as $rawRow) {
         $regions = array();
         foreach ($rawRow['regions'] as $rawRegion) {
             $region = $this->buildRegion($rawRegion);
             $regions[] = $region;
         }
         $rows[] = new Row($regions);
     }
     $result->setRows($rows);
     $result->setTemplate($rawData["template"]);
     return $result;
 }