/** * Return all urls of a page * * @param Page $page Page entity * @param string $type ['sql'] * * @return array * @access public * @author Etienne de Longeaux <*****@*****.**> * @since 2012-06-21 */ public function getUrlByPage(Page $page, $type = '') { $urls = array(); // we register all urls of the page foreach ($page->getTranslations() as $key => $translationPage) { if ($translationPage instanceof TranslationPage) { $locale = $translationPage->getLangCode()->getId(); $url = $page->getUrl(); $slug = $translationPage->getSlug(); if (!empty($url) && !empty($slug)) { $urls[$locale] = $url . "/" . $slug; } elseif (!empty($url) && empty($slug)) { $urls[$locale] = $url; } elseif (empty($url) && !empty($slug)) { $urls[$locale] = $slug; } elseif (empty($url) && empty($slug)) { $urls[$locale] = ""; } $is_prefix_locale = $this->container->getParameter("pi_app_admin.page.route.with_prefix_locale"); if ($is_prefix_locale) { $locale_tmp = explode('_', $locale); $urls[$locale] = $locale_tmp[0] . '/' . $urls[$locale]; } $urls[$locale] = str_replace("//", "/", $urls[$locale]); if ($type == 'sql') { $urls[$locale] = str_replace("/", "\\\\\\\\\\/", $urls[$locale]); } } } return $urls; }