コード例 #1
0
 /**
  * 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;
 }