Ejemplo n.º 1
0
 /**
  * BUILD SINGLE XML LOC FRAGMENT
  *
  * @param $loc        (string) full article url  [including lang]
  * @param $lastmod    (string) article last modified date  [UNIX date]
  * @param $changefreq (string) change frequency  [never|yearly|monthly|weekly|daily|hourly|always]
  * @param $priority   (float)  priority  [maximum: 1.0]
  *
  * @return            (string) xml location fragment
  */
 private function xml_loc_fragment($loc, $lastmod, $changefreq, $priority)
 {
     $xml_loc = "\t" . '<url>' . PHP_EOL . "\t\t" . '<loc>' . seo42::getServerUrl() . seo42::trimUrl($loc) . '</loc>' . PHP_EOL . "\t\t" . '<lastmod>' . $lastmod . '</lastmod>' . PHP_EOL . "\t\t" . '<changefreq>' . $changefreq . '</changefreq>' . PHP_EOL . "\t\t" . '<priority>' . number_format($priority, 1, ".", "") . '</priority>' . PHP_EOL . "\t" . '</url>' . PHP_EOL;
     return $xml_loc;
 }
Ejemplo n.º 2
0
 /**
  * REWRITE()
  *
  * rewrite URL
  * @param $params from EP URL_REWRITE
  */
 function rewrite($params)
 {
     // URL ALREADY SET BY OTHER EXTENSION
     if ($params['subject'] != '') {
         return $params['subject'];
     }
     // EP "SEO42_PRE_REWRITE"
     $url = rex_register_extension_point('SEO42_PRE_REWRITE', false, $params);
     if ($url !== false) {
         return $url;
     }
     global $REX, $SEO42_IDS;
     $id = $params['id'];
     $name = $params['name'];
     $clang = $params['clang'];
     $subdir = '';
     // 42 | $REX['ADDON']['seo42']['settings']['install_subdir']
     $notfound_id = $REX['NOTFOUND_ARTICLE_ID'];
     // GET PARAMS STRING
     $urlparams = self::makeUrlParams($params);
     // GET URL FROM PATHLIST AND APPEND PARAMS
     if (isset($SEO42_IDS[$id]) && isset($SEO42_IDS[$id][$clang])) {
         $base_url = $SEO42_IDS[$id][$clang]['url'];
         $url = $base_url . $urlparams;
         $notfound = false;
     } else {
         // RexDude
         $url = '';
         $base_url = '';
         if (!empty($SEO42_IDS)) {
             if (!isset($SEO42_IDS[$notfound_id][$clang]['url'])) {
                 $clang = $REX['START_CLANG_ID'];
             }
             $url = $base_url = $SEO42_IDS[$notfound_id][$clang]['url'];
         }
         $notfound = true;
     }
     // URL START
     // 42
     if ($REX['REDAXO'] && !(rex_request('page', 'string') == 'seo42' && rex_request('subpage', 'string') == 'help')) {
         // for seo42 debug page urls should look like in frontend
         $subdir = '';
     } else {
         $subdir = seo42::getUrlStart() . $subdir;
     }
     // HACK: EP URL_REWRITE WON'T ACCEPT EMPTY STRING AS RETURN
     if ($subdir == '' && $url == '') {
         $url = ' ';
     }
     // str_replace fixes a caching bug that appears while updating specific
     // modules/slices in the redaxo backend
     $url = str_replace('/redaxo/', '/', $subdir . $url);
     // retrieve trimmend url
     $trimmedUrl = seo42::trimUrl($url);
     // external urls / javascript urls etc. so we have to remove the url start string
     if (!seo42_utils::isInternalCustomUrl($trimmedUrl)) {
         $url = $trimmedUrl;
     }
     // EP "SEO42_POST_REWRITE"
     $ep_params = array('article_id' => $id, 'clang' => $clang, 'notfound' => $notfound, 'base_url' => $base_url, 'subdir' => $subdir, 'urlparams' => $urlparams, 'params' => $params['params'], 'divider' => $params['divider']);
     $url = rex_register_extension_point('SEO42_POST_REWRITE', $url, $ep_params);
     return $url;
 }