Beispiel #1
0
 /**
  * @test
  * @group library
  * @dataProvider templateContentProvider
  */
 public function getUnitsFromTemplateContentSuccess($content)
 {
     $units = CmsUnitExtractor::getUnitsFromTemplateContent($content);
     $this->assertInternalType('array', $units);
     $this->assertSame(6, count($units['units']));
     $this->assertArrayHasKey('MUNIT-7c470156-7a6c-4075-90ab-e8d8637ab3b5-MUNIT', $units['units']);
     $this->assertArrayHasKey('MUNIT-371aeeb6-903b-4d43-876d-78497475d716-MUNIT', $units['units']);
     $this->assertSame('UVK Basismodul', $units['units']['MUNIT-7c470156-7a6c-4075-90ab-e8d8637ab3b5-MUNIT']['name']);
     $this->assertSame('UVK Bildgalerie', $units['units']['MUNIT-371aeeb6-903b-4d43-876d-78497475d716-MUNIT']['name']);
 }
Beispiel #2
0
 /**
  * Content einer Page reparsen
  *
  * @param string $websiteId
  * @param string $pageContentAsJson
  * @param string $pageTemplateContentAsJson
  * @param string $templateContentAsJson
  * @param string $reparseType
  */
 public static function reparseContent($websiteId, $pageContentAsJson, $pageTemplateContentAsJson, $templateContentAsJson, $reparseType = self::TYPE_REPARSE)
 {
     $pageUnits = UnitExtractor::getUnitsFromPageContent($pageContentAsJson);
     $pageTemplateUnits = UnitExtractor::getUnitsFromTemplateContent($pageTemplateContentAsJson);
     $templateUnits = UnitExtractor::getUnitsFromTemplateContent($templateContentAsJson);
     // Alle Units der Page durchlaufen und Reparsen
     $newPageUnits = array('units' => array(), 'tunits' => array());
     if (is_array($pageUnits['units'])) {
         foreach ($pageUnits['units'] as $unitId => &$pageUnit) {
             // Template Unit-ID vorhanden
             if (isset($pageUnit['templateUnitId']) && isset($pageTemplateUnits['units'][$pageUnit['templateUnitId']]) && isset($templateUnits['units'][$pageUnit['templateUnitId']])) {
                 $newPageUnit = array();
                 $state = self::reparseUnit($newPageUnit, $pageUnit, $pageTemplateUnits['units'][$pageUnit['templateUnitId']], $templateUnits['units'][$pageUnit['templateUnitId']], $reparseType);
                 if ($state) {
                     // Unit aufnehmen
                     $newPageUnits['units'][$unitId] = $newPageUnit;
                     if (!isset($newPageUnits['tunits'][$pageUnit['templateUnitId']])) {
                         $newPageUnits['tunits'][$pageUnit['templateUnitId']] = array();
                     }
                     $newPageUnits['tunits'][$pageUnit['templateUnitId']][$unitId] =& $newPageUnits['units'][$unitId];
                 }
             } elseif (!isset($pageUnit['templateUnitId']) || empty($pageUnit['templateUnitId'])) {
                 // Fehler -> Nicht Reparsen
                 // Template Unit-IDs muessen in den Page-Units vorhanden sein, damit
                 // die Zuordnung der Page-Units zu den Template-Units hergestellt
                 // werden kann
                 $pageUnitId = isset($pageUnit['id']) && $pageUnit != '' ? $pageUnit['id'] : 'unknown';
                 $pageUnitName = isset($pageUnit['name']) && $pageUnit != '' ? $pageUnit['name'] : 'unknown';
                 $data = array('unitId' => $pageUnitId, 'unitName' => $pageUnitName);
                 throw new Exception(801, __METHOD__, __LINE__, $data);
             }
         }
     }
     // Die Struktur reparsen
     $templateContent = \Zend_Json::decode($templateContentAsJson);
     $newPageContent = array();
     $state = self::reparseStructure($websiteId, $newPageContent, $templateContent, $pageUnits, $newPageUnits, $pageTemplateUnits, $reparseType);
     return $newPageContent;
 }