public function testGetTemplateName() { $element = new Element(); $element->setName('name1'); $this->assertEquals('name1', $element->getTemplateName()); }
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); } } }