/** * Gets all the URLs which need to be banned * @param \ride\library\cms\node\Node $node Node to ban * @param string $baseUrl Base URL to the system * @param string $locale Code of the locale * @param boolean $recursive Flag to see if child nodes should be banned * @param array $result * @return array */ protected function getBanUrls(Node $node, $baseUrl, $locale = null, $recursive = false, array $result = array()) { if ($node instanceof SiteNode) { $recursive = true; } if ($locale === null) { $urls = $node->getUrls($baseUrl); $baseUrls = $urls; foreach ($baseUrls as $locale => $nodeUrl) { $urls = $this->getWidgetUrls($urls, $node, $locale, $nodeUrl); } } else { $nodeUrl = $node->getUrl($locale, $baseUrl); $urls = array($nodeUrl); $urls = $this->getWidgetUrls($urls, $node, $locale, $nodeUrl); } foreach ($urls as $url) { $result[$url] = $recursive; if (!$recursive) { $result[$url . '?'] = true; } } if (!$recursive || $node instanceof SiteNode) { return $result; } $children = $node->getChildren(); if ($children) { foreach ($children as $child) { $result = $this->getBanUrls($child, $locale, $baseUrl, true, $result); } } return $result; }