/** * Return TRUE/FALSE if the node is currently hidden or not in the menu; taking the "renderHiddenInIndex" configuration * of the Menu TypoScript object into account. * * This method needs to be called inside buildItems() in the subclasses. * * @param NodeInterface $node * @return boolean */ protected function isNodeHidden(NodeInterface $node) { return $node->isVisible() === false || $this->getRenderHiddenInIndex() === false && $node->isHiddenInIndex() === true || $node->isAccessible() === false; }
/** * @param \TYPO3\TYPO3CR\Domain\Model\NodeInterface $node * @param boolean $expand * @param array $children * @param string $contentTypeFilter * @return array */ public function collectTreeNodeData(\TYPO3\TYPO3CR\Domain\Model\NodeInterface $node, $expand = TRUE, array $children = array()) { $contentType = $node->getContentType()->getName(); $classes = array(strtolower(str_replace(array('.', ':'), array('_', '-'), $contentType))); if ($node->isHidden() === TRUE) { array_push($classes, 'hidden'); } if ($node->isHiddenInIndex() === TRUE) { array_push($classes, 'hiddenInIndex'); } $uriBuilder = $this->controllerContext->getUriBuilder(); $hasChildNodes = $children !== array() ? TRUE : FALSE; $contentType = $node->getContentType()->getName(); $treeNode = array('key' => $node->getContextPath(), 'title' => $node->getContentType() === 'TYPO3.Phoenix.ContentTypes:Page' ? $node->getProperty('title') : $node->getLabel(), 'href' => $uriBuilder->reset()->setFormat('html')->setCreateAbsoluteUri(TRUE)->uriFor('show', array('node' => $node), 'Frontend\\Node', 'TYPO3.TYPO3', ''), 'isFolder' => $hasChildNodes, 'isLazy' => $hasChildNodes && !$expand, 'contentType' => $contentType, 'expand' => $expand, 'addClass' => implode(' ', $classes), 'name' => $node->getName()); if ($hasChildNodes) { $treeNode['children'] = $children; } return $treeNode; }
/** * @param NodeInterface $node * @param boolean $expand * @param array $children * @param boolean $hasChildNodes * @param boolean $matched * @return array */ public function collectTreeNodeData(NodeInterface $node, $expand = TRUE, array $children = array(), $hasChildNodes = FALSE, $matched = FALSE) { $isTimedPage = FALSE; $now = new \DateTime(); $now = $now->getTimestamp(); $hiddenBeforeDateTime = $node->getHiddenBeforeDateTime(); $hiddenAfterDateTime = $node->getHiddenAfterDateTime(); if ($hiddenBeforeDateTime !== NULL && $hiddenBeforeDateTime->getTimestamp() > $now) { $isTimedPage = TRUE; } if ($hiddenAfterDateTime !== NULL) { $isTimedPage = TRUE; } $classes = array(); if ($isTimedPage === TRUE && $node->isHidden() === FALSE) { array_push($classes, 'neos-timedVisibility'); } if ($node->isHidden() === TRUE) { array_push($classes, 'neos-hidden'); } if ($node->isHiddenInIndex() === TRUE) { array_push($classes, 'neos-hiddenInIndex'); } if ($matched) { array_push($classes, 'neos-matched'); } $uriBuilder = $this->controllerContext->getUriBuilder(); $nodeType = $node->getNodeType(); $nodeTypeConfiguration = $nodeType->getFullConfiguration(); if ($node->getNodeType()->isOfType('TYPO3.Neos:Document')) { $uriForNode = $uriBuilder->reset()->setFormat('html')->setCreateAbsoluteUri(TRUE)->uriFor('show', array('node' => $node), 'Frontend\\Node', 'TYPO3.Neos'); } else { $uriForNode = '#'; } $label = $node->getLabel(); $nodeTypeLabel = $node->getNodeType()->getLabel(); $treeNode = array('key' => $node->getContextPath(), 'title' => $label, 'fullTitle' => $node->getProperty('title'), 'nodeTypeLabel' => $nodeTypeLabel, 'tooltip' => '', 'href' => $uriForNode, 'isFolder' => $hasChildNodes, 'isLazy' => $hasChildNodes && !$expand, 'nodeType' => $nodeType->getName(), 'isAutoCreated' => $node->isAutoCreated(), 'expand' => $expand, 'addClass' => implode(' ', $classes), 'name' => $node->getName(), 'iconClass' => isset($nodeTypeConfiguration['ui']) && isset($nodeTypeConfiguration['ui']['icon']) ? $nodeTypeConfiguration['ui']['icon'] : '', 'isHidden' => $node->isHidden()); if ($hasChildNodes) { $treeNode['children'] = $children; } return $treeNode; }
/** * Return TRUE/FALSE if the node is currently hidden or not in the menu; taking the "renderHiddenInIndex" configuration * of the Menu TypoScript object into account. * * This method needs to be called inside buildItems() in the subclasses. * * @param NodeInterface $node * @return boolean */ protected function isNodeHidden(NodeInterface $node) { return $node->isVisible() === FALSE || $this->getRenderHiddenInIndex() === FALSE && $node->isHiddenInIndex() === TRUE || $node->isAccessible() === FALSE; }