Пример #1
0
 /**
  * 根据后台设定和通用规则,对指定的当前页面进行30X 跳转. 来源:需求#6894
  * @param boolean $forceExit 是否强制终止程序
  */
 public function fix($forceExit = false)
 {
     $redirected = false;
     $m = new \Model\Redirect30X();
     $rules = $m->getRules();
     $requestUrl = \Helper\RequestUtil::getUrl();
     $key = md5($requestUrl . SELLER_LANG);
     //指定的规则优先与通用规则
     if (isset($rules[$key]['target_url'])) {
         //根据后台指定的规则进行修正
         $this->redirect($rules[$key]['target_url']);
         $redirected = true;
         $m->increaseClicks($rules[$key]['id']);
     } else {
         //通用规则跳转
         $params = Rq::getParams();
         if (isset($params->module) && $params->module == 'thing') {
             if (isset($params->action) && $params->action == 'glist' && isset($params->class) && empty($params->aparams)) {
                 $catId = $params->class;
                 $model = new \Model\Navigator();
                 $catInfo = $model->getNav($catId, '0:0:0');
                 if (isset($catInfo['code']) && $catInfo['code'] == 0) {
                     $seoUrl = Rp::rewrite(array('url' => '?module=thing&action=glist&class=' . $catId, 'isxs' => 'no', 'seo' => stripslashes($catInfo['selfCategory']['categoryName'])));
                     $origUrl = Rq::getUrl(false);
                     $origQueryStr = Rq::getRawQueryString();
                     if ($origUrl != $seoUrl) {
                         if ($origQueryStr) {
                             $seoUrl .= '?' . $origQueryStr;
                         }
                         $this->redirect($seoUrl);
                         $redirected = true;
                     }
                 }
             }
         }
     }
     if ($redirected && $forceExit) {
         die;
     }
 }
Пример #2
0
 /**
  * 
  * 生成包含验证成功参数的URL
  */
 public function creatUrl()
 {
     $url = \Helper\RequestUtil::getUrl();
     $url .= substr($url, -1) == '&' ? 'redirect=true' : '&redirect=true';
     return $url;
 }
Пример #3
0
 /**
  * 设置语种相关的初始化参数,包括cookie及session
  */
 public static function setLang()
 {
     $rewriteDir = array('en-uk' => 'en', 'ja-jp' => 'jp', 'fr-fr' => 'fr', 'es-sp' => 'es', 'de-ge' => 'de', 'it-it' => 'it', 'pt-pt' => 'pt', 'ru-ru' => 'ru', 'zh-hk' => 'hk', 'cn-cn' => 'cn', 'en' => 'en-uk', 'jp' => 'ja-jp', 'ja' => 'ja-jp', 'fr' => 'fr-fr', 'es' => 'es-sp', 'de' => 'de-ge', 'it' => 'it-it', 'ru' => 'ru-ru', 'hk' => 'zh-hk', 'cn' => 'cn-cn', 'pt' => 'pt-pt');
     if (isset($_COOKIE['lang_cookie'])) {
         $SELLER_LANG = $_COOKIE['lang_cookie'];
     } else {
         $SELLER_LANG = '';
     }
     $path = \Helper\RequestUtil::getUrl();
     $path = explode('/', $path);
     if ($path[3] == 'ja') {
         $rewriteDir['ja-jp'] = "ja";
     }
     if ($path[3] == 'jp' || $path[3] == 'ja' || $path[3] == "en" || $path[3] == 'fr' || $path[3] == 'es' || $path[3] == 'de' || $path[3] == 'it' || $path[3] == 'pt' || $path[3] == 'ru' || $path[3] == 'hk' || $path[3] == 'ar' || $path[3] == 'cn') {
         $SELLER_LANG = $rewriteDir[$path[3]];
     } elseif (isset($_GET['adlang'])) {
         $SELLER_LANG = $_GET['adlang'];
     }
     if (empty($SELLER_LANG)) {
         if (!self::$langMap) {
             self::$langMap = \config\Language::$client_lang_to_web_lang;
         }
         $SELLER_LANG = self::$langMap[self::getClientLang()];
     }
     //后台服务器访问需求增加
     if (!empty($_GET['lang'])) {
         $SELLER_LANG = $_GET['lang'];
     }
     if (!defined('SELLER_LANG')) {
         define('SELLER_LANG', $SELLER_LANG);
     }
     if (!defined('LangDirName')) {
         /**
          * URL中的语种名称目录
          * @var string
          */
         define('LangDirName', $rewriteDir[$SELLER_LANG]);
     }
     if (!defined('CurrencyCode')) {
         if (!isset($_COOKIE['lang_cookie']) || $_COOKIE['lang_cookie'] != $SELLER_LANG || isset($_COOKIE['CurrencyCode']) && $_COOKIE['CurrencyCode'] == 'RMB' || !isset($_COOKIE['CurrencyCode'])) {
             //当语种变化时, 或者币种的cookie不存在,或者为RMB时, 则重新根据语种进行币种设置
             switch (SELLER_LANG) {
                 case 'ja-jp':
                     $CurrencyC = 'JPY';
                     break;
                 case 'ru-ru':
                     $CurrencyC = 'RUB';
                     break;
                 case 'fr-fr':
                 case 'es-sp':
                 case 'de-ge':
                 case 'it-it':
                 case 'pt-pt':
                     $CurrencyC = 'EUR';
                     break;
                 default:
                     if (isset($_SERVER['HTTP_X_REAL_COUNTRY']) && $_SERVER['HTTP_X_REAL_COUNTRY'] == 'GB') {
                         //当来IP自英国时,默认货币使用英镑
                         $CurrencyC = 'GBP';
                     } else {
                         $CurrencyC = 'USD';
                     }
                     break;
             }
         } else {
             if (isset($_COOKIE['CurrencyCode'])) {
                 $CurrencyC = $_COOKIE['CurrencyCode'];
             }
         }
         //日语站只使用日元
         if (SELLER_LANG == 'ja-jp') {
             $CurrencyC = 'JPY';
         }
         if (!isset($CurrencyC)) {
             $CurrencyC = 'USD';
         }
         if (!isset($_COOKIE['CurrencyCode']) || $_COOKIE['CurrencyCode'] != $CurrencyC) {
             setcookie("CurrencyCode", $CurrencyC, time() + 24 * 3600 * 365 * 10, '/');
             $_COOKIE['CurrencyCode'] = $CurrencyC;
         }
         define('CurrencyCode', $CurrencyC);
         define('Currency', \config\Currency::$currencyTranslations[CurrencyCode]['Currency']);
     }
     if (!isset($_COOKIE['lang_cookie']) || $_COOKIE['lang_cookie'] != $SELLER_LANG) {
         setcookie("lang_cookie", $SELLER_LANG, time() + 24 * 3600 * 365 * 10, '/');
         $_COOKIE['lang_cookie'] = $SELLER_LANG;
     }
     if ($_SERVER['REQUEST_URI'] == '/en' || $_SERVER['REQUEST_URI'] == '/en/') {
         header('HTTP/1.1 302 Moved Temporarily');
         //发出302头部
         header('Location:http://' . $_SERVER["HTTP_HOST"]);
     }
 }