Ejemplo n.º 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']);
 }
Ejemplo n.º 2
0
 protected static function reparseChildernStructure($websiteId, &$orgPageOptionalUnit, &$newPageUnit, &$templateUnit, &$pageUnits, &$newPageUnits, &$pageTemplateUnits, $reparseType)
 {
     // Kindelemente vorhanden?
     if (isset($templateUnit['children']) && is_array($templateUnit['children']) && count($templateUnit['children']) > 0) {
         // Kinder zuruecksetzen
         $newPageUnit['children'] = array();
         // Sind die Kindelemente optional?
         $ghostContainer = isset($templateUnit['ghostContainer']) && $templateUnit['ghostContainer'] ? true : false;
         // Als erstes die nicht 'optionalen Kindelemente' aufnehmen
         // Die ist bei Kindelementen der Fall wenn:
         // wir nicht in einem ghostContainer sind oder
         // wenn sich Elemente mit dem ModulTyp 'extension' innerhalb eines ghostContainers befinden
         $ret = self::reparseStructure($websiteId, $newPageUnit['children'], $templateUnit['children'], $pageUnits, $newPageUnits, $pageTemplateUnits, $reparseType, $ghostContainer);
         if ($ret === false) {
             // Fehler
             return false;
         }
         // Kindelemente als Ghost aufnehmen?
         if ($ghostContainer) {
             // In der Page kommen diese Units in den seperaten ghost Bereich
             $newPageUnit['ghostChildren'] = array();
             self::createGhostChildrenStructure($websiteId, $newPageUnit['ghostChildren'], $templateUnit['children'], $pageTemplateUnits, $reparseType);
             // evtl. Optionale Elemente ermitteln
             if (!isset($orgPageOptionalUnit)) {
                 self::findUnitForReparse($pageUnits, $templateUnit['id'], $orgPageOptionalUnit, $reparseType);
             }
             // Optionale Kindunits vorhanden?
             if (isset($orgPageOptionalUnit['children']) && is_array($orgPageOptionalUnit['children']) && count($orgPageOptionalUnit['children']) > 0) {
                 // Duerfen ueberhaupt optionale Units unter dieser Unit vorhanden sein
                 if (isset($templateUnit['children']) && is_array($templateUnit['children']) && count($templateUnit['children']) > 0) {
                     // Alle optionalen Elemente ermitteln
                     $nextGhostUnits = array('units' => array(), 'tunits' => array());
                     UnitExtractor::getUnitsFromContent($newPageUnit['ghostChildren'], $nextGhostUnits, true, false, true);
                     // Vorhandene optionale Units wieder einfuegen
                     $ret = self::reparseOptionalStructure($websiteId, $newPageUnit['children'], $orgPageOptionalUnit['children'], $pageUnits, $newPageUnits, $nextGhostUnits, $templateUnit['children'], $pageTemplateUnits, $reparseType);
                     if ($ret === false) {
                         // Fehler
                         return false;
                     }
                 }
             }
         }
     }
     // reparsen der Kindelemente erfolgreich
     return true;
 }