Exemple #1
0
 public function testGetTemplateName()
 {
     $element = new Element();
     $element->setName('name1');
     $this->assertEquals('name1', $element->getTemplateName());
 }
Exemple #2
0
 private function setElementsValues(Element $element, $isIndexPage = false, $isPermalinkPage = false, $posts = array(), $id = 1, $totalPages = 1, $pages = array(), $level = 1)
 {
     if ($level >= 100) {
         throw new RuntimeException(__FUNCTION__ . ': Maximum level of 100 reached.', 1);
     }
     $elemtents = $element->getChildren();
     foreach ($elemtents as $elementId => $element) {
         $elementName = $element->getTemplateName();
         $elementNameOut = '';
         if ($elementName) {
             $elementNameOut = ', "' . $elementName . '"';
         }
         $rc = new ReflectionClass(get_class($element));
         $className = $rc->getShortName();
         #fwrite(STDOUT, str_repeat('    |', ($level - 1)).'- element '.$elementId.': '.$className.$elementNameOut.PHP_EOL);
         #fwrite(STDOUT, str_repeat('    |', ($level - 1)).'- element '.$elementId.': '.$element->getPath().PHP_EOL);
         #fwrite(STDOUT, 'element: '.$element->getPath().PHP_EOL);
         $setSub = true;
         if ($element instanceof VariableElement) {
             #fwrite(STDOUT, 'element: '.$element->getPath().PHP_EOL);
             $content = $element->getDefaultContent();
             if ($element instanceof LangVariableElement) {
                 #fwrite(STDOUT, '    lang "'.$elementName.'"'.PHP_EOL);
                 if ($isIndexPage && $elementName == 'lang:Page CurrentPage of TotalPages') {
                     $content = 'Page ' . $id . ' of ' . $totalPages;
                 } else {
                     if (isset($this->variables[$elementName])) {
                         $content = $this->variables[$elementName]->getValue();
                     }
                 }
             } elseif ($elementName == 'PreviousPage') {
                 #fwrite(STDOUT, '    PreviousPage '.(int)$isIndexPage.', '.$id.', '.$totalPages.PHP_EOL);
                 if ($isIndexPage && $id > 1) {
                     $content = '?type=page&id=' . ($id - 1);
                     #fwrite(STDOUT, '        url "'.$content.'"'.PHP_EOL);
                     #$element->setContent($url);
                 }
             } elseif ($elementName == 'NextPage') {
                 #fwrite(STDOUT, '    NextPage '.(int)$isIndexPage.', '.$id.', '.$totalPages.PHP_EOL);
                 if ($isIndexPage && $id < $totalPages) {
                     $content = '?type=page&id=' . ($id + 1);
                     #fwrite(STDOUT, '        url "'.$content.'"'.PHP_EOL);
                     #$element->setContent($url);
                 }
             }
             if (!$content && isset($this->variables[$elementName])) {
                 $content = $this->variables[$elementName]->getValue();
             }
             $element->setContent($content);
             $setSub = false;
         } elseif ($element instanceof IndexPageBlockElement) {
             #fwrite(STDOUT, 'element index:  '.$element->getPath().' "'.$elementName.'" '.(int)$isIndexPage.PHP_EOL);
             $element->setContent($isIndexPage);
         } elseif ($element instanceof PermalinkPageBlockElement) {
             #fwrite(STDOUT, 'element perm:  '.$element->getPath().' "'.$elementName.'" '.(int)$isPermalinkPage.PHP_EOL);
             $element->setContent($isPermalinkPage);
         } elseif ($element instanceof PostTitleBlockElement) {
             $element->setContent($isPermalinkPage);
         } elseif ($element instanceof IfNotBlockElement) {
             #fwrite(STDOUT, 'element not:  '.$element->getPath().' "'.$elementName.'"'.PHP_EOL);
             if (isset($this->variables[$elementName])) {
                 #$val = !(bool)$this->variables[$elementName]->getValue();
                 $val = (bool) $this->variables[$elementName]->getValue();
                 #fwrite(STDOUT, 'element not:  '.$element->getPath().'    - val: '.(int)$val.PHP_EOL);
                 $element->setContent((bool) $val);
             } else {
                 #fwrite(STDOUT, 'element not:  '.$element->getPath().'    - default: '.(int)$element->getDefaultContent().PHP_EOL);
                 $element->setContent($element->getDefaultContent());
             }
         } elseif ($element instanceof IfBlockElement) {
             #fwrite(STDOUT, 'element if:   '.$element->getPath().' "'.$elementName.'"'.PHP_EOL);
             if (isset($this->variables[$elementName])) {
                 $val = (bool) $this->variables[$elementName]->getValue();
                 #fwrite(STDOUT, 'element if:   '.$element->getPath().'    - val: '.(int)$val.PHP_EOL);
                 $element->setContent((bool) $val);
             } else {
                 #fwrite(STDOUT, 'element if:   '.$element->getPath().'    - default: '.(int)$element->getDefaultContent().PHP_EOL);
                 $element->setContent($element->getDefaultContent());
             }
         } elseif ($element instanceof AskEnabledBlockElement) {
             $elementName = 'IfAskEnabled';
             #fwrite(STDOUT, str_repeat('    |', ($level - 1)).'- element '.$elementId.': '.$className.$elementNameOut.PHP_EOL);
             if (isset($this->variables[$elementName])) {
                 #fwrite(STDOUT, ''.str_repeat('    |', $level + 1).'- val: '.$this->variables[$elementName]->getValue().PHP_EOL);
                 $element->setContent(true);
             } else {
                 $element->setContent($element->getDefaultContent());
             }
         } elseif ($element instanceof DescriptionBlockElement) {
             $elementName = 'MetaDescription';
             #fwrite(STDOUT, str_repeat('    |', ($level - 1)).'- element '.$elementId.': '.$className.$elementNameOut.PHP_EOL);
             if (isset($this->variables[$elementName])) {
                 #fwrite(STDOUT, ''.str_repeat('    |', $level + 1).'- val: '.$this->variables[$elementName]->getValue().PHP_EOL);
                 $element->setContent(true);
             } else {
                 $element->setContent($element->getDefaultContent());
             }
         } elseif ($element instanceof PaginationBlockElement) {
             #fwrite(STDOUT, 'element: '.$element->getPath().PHP_EOL);
             $element->setContent($isIndexPage);
         } elseif ($element instanceof PreviousPageBlockElement) {
             #fwrite(STDOUT, 'element: '.$element->getPath().PHP_EOL);
             if ($isIndexPage && $id > 1) {
                 $element->setContent(true);
             }
         } elseif ($element instanceof NextPageBlockElement) {
             #fwrite(STDOUT, 'element: '.$element->getPath().PHP_EOL);
             if ($isIndexPage && $id < $totalPages) {
                 $element->setContent(true);
             }
         } elseif ($element instanceof HasPagesBlockElement) {
             $element->setContent(count($pages) > 0);
         } elseif ($element instanceof PagesBlockElement) {
             $element->setContent($pages);
         } elseif ($element instanceof PostsBlockElement) {
             #fwrite(STDOUT, "    PostsBlockElement".PHP_EOL);
             $element->setContent($posts);
         }
         if ($setSub) {
             $this->setElementsValues($element, $isIndexPage, $isPermalinkPage, $posts, $id, $totalPages, $pages, $level + 1);
         }
     }
 }