protected function getPageData(&$keys, $page, $language) { $parentID = (int) $page['parent_id']; // init URLs $hasMultiLanguages = BackendModel::getContainer()->getParameter('site.multilanguage'); $languageURL = $hasMultiLanguages ? '/' . $language . '/' : '/'; $url = isset($keys[$parentID]) ? $keys[$parentID] : ''; // home is special if ($page['id'] == 1) { $page['url'] = ''; if ($hasMultiLanguages) { $languageURL = rtrim($languageURL, '/'); } } // add it $keys[$page['id']] = trim($url . '/' . $page['url'], '/'); // unserialize if (isset($page['meta_data'])) { $page['meta_data'] = @unserialize($page['meta_data']); } // build navigation array $pageData = array('page_id' => (int) $page['id'], 'url' => $page['url'], 'full_url' => $languageURL . $keys[$page['id']], 'title' => $page['title'], 'navigation_title' => $page['navigation_title'], 'has_extra' => (bool) ($page['has_extra'] == 'Y'), 'no_follow' => (bool) (isset($page['meta_data']['seo_follow']) && $page['meta_data']['seo_follow'] == 'nofollow'), 'hidden' => (bool) ($page['hidden'] == 'Y'), 'extra_blocks' => null, 'has_children' => (bool) ($page['has_children'] == 'Y')); $pageData['extra_blocks'] = $this->getPageExtraBlocks($page); $pageData['tree_type'] = $this->getPageTreeType($page, $pageData); return $pageData; }