/** * Get all resources for a site * * @param Site $site Rcm Site Entity * * @return array */ protected function getSiteResources(Site $site) { $primaryDomain = $site->getDomain(); if (empty($primaryDomain)) { // no resources if domain missing return array(); } $primaryDomainName = $primaryDomain->getDomainName(); $siteId = $site->getSiteId(); $return['sites.' . $siteId] = ['resourceId' => 'sites.' . $siteId, 'parentResourceId' => 'sites', 'name' => $primaryDomainName, 'description' => "Resource for site '{$primaryDomainName}'"]; $return['sites.' . $siteId] = array_merge($this->resources['sites'], $return['sites.' . $siteId]); $return['sites.' . $siteId . '.pages'] = ['resourceId' => 'sites.' . $siteId . '.pages', 'parentResourceId' => 'sites.' . $siteId, 'name' => $primaryDomainName . ' - pages', 'description' => "Resource for pages on site '{$primaryDomainName}'"]; $return['sites.' . $siteId . '.pages'] = array_merge($this->resources['pages'], $return['sites.' . $siteId . '.pages']); $pages = $site->getpages(); /** @var \Rcm\Entity\Page $page */ foreach ($pages as &$page) { $pageResources = $this->getPageResources($page, $site); $return = array_merge($pageResources, $return); } return $return; }