コード例 #1
0
 /**
  * Generate url
  * @param string $value
  * @throws InvalidArgumentException
  * @return Mage_Core_Model_Abstract|boolean
  */
 public function process($value)
 {
     if (false === is_array($value) || !isset($value['path'])) {
         throw new InvalidArgumentException('Passed value has incorrect format');
     }
     $params = array_key_exists('params', $value) ? $value['params'] : null;
     return $this->_urlModel->getUrl($value['path'], $params);
 }
コード例 #2
0
ファイル: Url.php プロジェクト: nickimproove/magento2
 /**
  * Generate url
  * @param string $value
  * @throws InvalidArgumentException
  * @return Mage_Core_Model_Abstract|boolean
  */
 public function process($value)
 {
     if (false === is_array($value) || (!isset($value['path']) || !isset($value['params']))) {
         throw new InvalidArgumentException('Passed value has incorrect format');
     }
     $path = $value['path'];
     $params = $value['params'];
     return $this->_urlModel->getUrl($path, $params);
 }
コード例 #3
0
ファイル: Url.php プロジェクト: vinayshuklasourcefuse/sareez
 public function getUrl($routePath = null, $routeParams = null)
 {
     //        $this->_escape = isset($routeParams['_escape']) ? $routeParams['_escape'] :
     //            (isset($routeParams['_m_escape']) ? $routeParams['_m_escape'] : $this->_escape);
     $this->_routeParams = $routeParams;
     if ($this->_isValidPageType($routePath) && (isset($routeParams['_use_rewrite']) || $routePath == 'catalogsearch/result')) {
         /* @var $seo Mana_Seo_Helper_Data */
         $seo = Mage::helper('mana_seo');
         if ($this->_schema = $seo->getActiveSchema($this->getStore()->getId())) {
             $this->_routePath = $this->_populateCurrentRouteFromRequest($routePath);
             $query = null;
             if (isset($this->_routeParams['_query'])) {
                 $this->purgeQueryParams();
                 $query = $this->_routeParams['_query'];
                 unset($this->_routeParams['_query']);
             }
             $this->_query = $query;
             if ($this->_pageType = $this->_getPageType($this->_routePath)) {
                 $this->_suffix = $this->_pageType->getCurrentSuffix();
                 $this->_pageUrlKey = $this->_pageType->getUrlKey($this);
                 if (Mage::getStoreConfig('web/default/front') == 'cms' && $this->_pageUrlKey == Mage::getStoreConfig('web/default/cms_home_page')) {
                     $this->_routePath = 'cms/index/index';
                     unset($this->_routeParams['page_id']);
                     $this->_pageType = $this->_getPageType($this->_routePath);
                     $this->_suffix = $this->_pageType->getCurrentSuffix();
                     $this->_pageUrlKey = $this->_pageType->getUrlKey($this);
                 }
             }
         }
     }
     return parent::getUrl($routePath, $this->_routeParams);
 }
コード例 #4
0
ファイル: UrlTest.php プロジェクト: natxetee/magento2
 /**
  * Note: isolation flushes the URL memory cache
  * @magentoAppIsolation enabled
  *
  * @dataProvider consequentCallsDataProvider
  *
  * @param string $firstCallUrl
  * @param string $secondCallUrl
  * @param array $firstRouteParams
  * @param array $secondRouteParams
  * @param string $firstExpectedUrl
  * @param string $secondExpectedUrl
  * @covers Mage_Core_Model_Url::getUrl
  */
 public function testGetUrlOnConsequentCalls($firstCallUrl, $secondCallUrl, $firstRouteParams, $secondRouteParams, $firstExpectedUrl, $secondExpectedUrl)
 {
     $result = $this->_model->getUrl($firstCallUrl, $firstRouteParams);
     $this->assertEquals($firstExpectedUrl, $result);
     $result = $this->_model->getUrl($secondCallUrl, $secondRouteParams);
     $this->assertEquals($secondExpectedUrl, $result);
 }
コード例 #5
0
ファイル: Url.php プロジェクト: ausger/myporto
 public function getUrl($routePath = null, $routeParams = null)
 {
     $route = Mage::helper('blog')->getRoute();
     if (!empty($route)) {
         $isUseCategoryUrl = Mage::helper('blog')->isCategoryUrl();
         $category = Mage::getSingleton('blog/cat');
         $post = Mage::getSingleton('blog/post');
         $tag = $this->getRequest()->getParam('tag', false);
         if ($isUseCategoryUrl && $category->getCatId()) {
             $route .= '/' . Smartwave_Blog_Helper_Data::CATEGORY_URI_PARAM . '/' . $category->getIdentifier();
         }
         if ($post->getIdentifier()) {
             if ($isUseCategoryUrl && $category->getCatId()) {
                 $route .= '/' . Smartwave_Blog_Helper_Data::POST_URI_PARAM . '/' . $post->getIdentifier();
             } else {
                 $route .= '/' . $post->getIdentifier();
             }
         }
         if ($tag) {
             $route .= '/' . Smartwave_Blog_Helper_Data::TAG_URI_PARAM . '/' . $tag;
         }
         $routePath = $route;
     }
     return parent::getUrl($routePath, $routeParams);
 }
コード例 #6
0
 /**
  * Retrieve link on product rss feed tagged with loaded tag
  *
  * @return bool|string
  */
 public function getLinkUrl()
 {
     if ($this->_isRssEnabled && $this->_tagId) {
         /** @var $tagModel Mage_Tag_Model_Tag */
         $this->_tagModel->load($this->_tagId);
         if ($this->_tagModel && $this->_tagModel->getId()) {
             return $this->_coreUrlModel->getUrl('rss/catalog/tag', array('tagName' => urlencode($this->_tagModel->getName())));
         }
     }
     return false;
 }
コード例 #7
0
ファイル: Url.php プロジェクト: xiaoguizhidao/magento
 public function getUrl($routePath = null, $routeParams = null)
 {
     $forceVendorUrl = !empty($routeParams['_current']);
     if ($forceVendorUrl) {
         Mage::app()->getStore()->useVendorUrl(true);
     }
     $url = parent::getUrl($routePath, $routeParams);
     if ($forceVendorUrl) {
         Mage::app()->getStore()->resetUseVendorUrl();
     }
     return $url;
 }
コード例 #8
0
ファイル: Url.php プロジェクト: jronatay/ultimo-magento-jron
 public function getUrl($routePath = null, $routeParams = null)
 {
     $url = parent::getUrl($routePath, $routeParams);
     if (substr($url, -1) != "/") {
         if (strpos($url, "?") !== false) {
             if (substr($url, strpos($url, "?") - 1, 1) != "/") {
                 $url = substr_replace($url, "/?", strpos($url, "?"), 1);
             }
         } else {
             $url .= "/";
         }
     }
     return $url;
 }
コード例 #9
0
 public function getUrl($routePath = null, $routeParams = null)
 {
     $this->_escape = isset($routeParams['_escape']) ? $routeParams['_escape'] : isset($routeParams['_m_escape']);
     $result = $this->encodeUrl($routePath, parent::getUrl($routePath, $routeParams));
     $result = preg_replace('#\\/[-_\\w\\d]+\\/\\.#', '.', $result);
     if (strpos($result, '/.html') !== false) {
         $currentUrl = parent::getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true, '_secure' => Mage::app()->getFrontController()->getRequest()->isSecure()));
         Mage::log("Wrong URL {$result} on page {$currentUrl}", Zend_Log::DEBUG, 'seo_errors.log');
         try {
             throw new Exception();
         } catch (Exception $e) {
             Mage::log("{$e->getMessage()}\n{$e->getTraceAsString()}", Zend_Log::DEBUG, 'seo_errors.log');
         }
     }
     return $result;
 }
コード例 #10
0
ファイル: Url.php プロジェクト: evinw/project_bloom_magento
 public function getUrl($routePath = null, $routeParams = null)
 {
     $url = parent::getUrl($routePath, $routeParams);
     if ($subD = Mage::registry('current_subdomain')) {
         $urlParts = parse_url($url);
         $urlHostParts = explode('.', $urlParts['host']);
         // Custom case for dev server
         if ('dev.bloomnation.com' == $urlParts['host']) {
             $urlParts['host'] = 'lapremier.dev.bloomnation.com';
         } else {
             $urlHostParts[0] = $subD;
             $urlParts['host'] = implode('.', $urlHostParts);
         }
         $url = (isset($urlParts["scheme"]) ? $urlParts["scheme"] . "://" : "") . (isset($urlParts["user"]) ? $urlParts["user"] . ":" : "") . (isset($urlParts["pass"]) ? $urlParts["pass"] . "@" : "") . (isset($urlParts["host"]) ? $urlParts["host"] : "") . (isset($urlParts["port"]) ? ":" . $urlParts["port"] : "") . (isset($urlParts["path"]) ? $urlParts["path"] : "") . (isset($urlParts["query"]) ? "?" . $urlParts["query"] : "") . (isset($urlParts["fragment"]) ? "#" . $urlParts["fragment"] : "");
     }
     return $url;
 }
コード例 #11
0
ファイル: Url.php プロジェクト: jauderho/magento-mirror
 /**
  * Custom logic to retrieve Urls
  *
  * @param string $routePath
  * @param array $routeParams
  * @return string
  */
 public function getUrl($routePath = null, $routeParams = null)
 {
     $result = parent::getUrl($routePath, $routeParams);
     if (!$this->useSecretKey()) {
         return $result;
     }
     $_route = $this->getRouteName() ? $this->getRouteName() : '*';
     $_controller = $this->getControllerName() ? $this->getControllerName() : $this->getDefaultControllerName();
     $_action = $this->getActionName() ? $this->getActionName() : $this->getDefaultActionName();
     $secret = array(self::SECRET_KEY_PARAM_NAME => $this->getSecretKey($_controller, $_action));
     if (is_array($routeParams)) {
         $routeParams = array_merge($secret, $routeParams);
     } else {
         $routeParams = $secret;
     }
     if (is_array($this->getRouteParams())) {
         $routeParams = array_merge($this->getRouteParams(), $routeParams);
     }
     return parent::getUrl("{$_route}/{$_controller}/{$_action}", $routeParams);
 }
コード例 #12
0
ファイル: Filter.php プロジェクト: Rinso/magento-mirror
 /**
  * Retrieve store URL directive
  * Support url and direct_url properties
  *
  * @param array $construction
  * @return string
  */
 public function storeDirective($construction)
 {
     $params = $this->_getIncludeParameters($construction[2]);
     if (!isset($params['_query'])) {
         $params['_query'] = array();
     }
     foreach ($params as $k => $v) {
         if (strpos($k, '_query_') === 0) {
             $params['_query'][substr($k, 7)] = $v;
             unset($params[$k]);
         }
     }
     $params['_absolute'] = $this->_useAbsoluteLinks;
     if ($this->_useSessionInUrl === false) {
         $params['_nosid'] = true;
     }
     if (isset($params['direct_url'])) {
         $path = '';
         $params['_direct'] = $params['direct_url'];
         unset($params['direct_url']);
     } else {
         $path = $params['url'];
         unset($params['url']);
     }
     if (!self::$_urlInstance) {
         self::$_urlInstance = Mage::getModel('core/url')->setStore(Mage::app()->getStore(Mage::getDesign()->getStore())->getId());
     }
     $_urlInstanceOldStore = null;
     if (!empty($path) && !Mage::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_STORE_IN_URL) && !Mage::app()->isSingleStoreMode()) {
         $params['_query']['___store'] = Mage::app()->getStore(Mage::getDesign()->getStore())->getCode();
     } elseif (!empty($path) && Mage::getStoreConfigFlag(Mage_Core_Model_Store::XML_PATH_STORE_IN_URL) && !Mage::app()->isSingleStoreMode()) {
         $_urlInstanceOldStore = self::$_urlInstance->getStore();
         self::$_urlInstance->setStore(Mage::app()->getStore(Mage::getDesign()->getStore())->getCode());
     }
     $url = self::$_urlInstance->getUrl($path, $params);
     if (null == !$_urlInstanceOldStore) {
         self::$_urlInstance->setStore($_urlInstanceOldStore);
     }
     return $url;
 }
コード例 #13
0
ファイル: Url.php プロジェクト: maffen/TypoGento
 /**
  * Build url by requested path and parameters
  *
  * @param   string $routePath
  * @param   array $routeParams
  * @return  string
  */
 public function getUrl($routePath = null, $routeParams = null, $getOriginalData = false)
 {
     if (!Mage::getSingleton('Flagbit_Typo3connect/Core')->isEnabled() || $getOriginalData) {
         return parent::getUrl($routePath, $routeParams);
     }
     $escapeQuery = false;
     if (isset($routeParams['_fragment'])) {
         $this->setFragment($routeParams['_fragment']);
         unset($routeParams['_fragment']);
     }
     if (isset($routeParams['_escape'])) {
         $escapeQuery = $routeParams['_escape'];
         unset($routeParams['_escape']);
     }
     $url = $this->getRouteUrl($routePath, $routeParams);
     $params = array("route" => $this->getRouteName(), "controller" => $this->getControllerName(), "action" => $this->getActionName());
     if ($routeParams) {
         $params = array_merge($params, $routeParams);
     }
     if (is_array($routeParams['_query'])) {
         $params = array_merge($params, $routeParams['_query']);
     }
     unset($params['_query']);
     unset($params['_use_rewrite']);
     if ($params['_current']) {
         unset($params['_current']);
         $url = Mage::getSingleton('Flagbit_Typo3connect/Core')->getTypolinkKeepPIvars($params);
     } else {
         $url = Mage::getSingleton('Flagbit_Typo3connect/Core')->getTypolink($params);
     }
     // Complete the typolink URL absolute using the base url
     if (strpos($url, 'http') !== 0) {
         $urlComponents = parse_url($this->getBaseUrl());
         $url = $urlComponents['scheme'] . '://' . rtrim($urlComponents['host'], '/') . '/' . ltrim($url, '/');
     }
     // save last URL in Response for the _isUrlInternal workaround
     Mage::getSingleton('Flagbit_Typo3connect/Core')->getResponse()->lastUrl = $url;
     return $url;
 }
コード例 #14
0
ファイル: Url.php プロジェクト: newjueqi/usehttps
 /**
  * Build url by requested path and parameters
  *
  * @param   string|null $routePath
  * @param   array|null $routeParams
  * @return  string
  */
 public function getUrl($routePath = null, $routeParams = null)
 {
     /*
              use https
              if url show in web browser start with https, all urls in the webpage must be start with https,
              for example: if main page is https, but ajax request send in this page is http, then ajax request will fail
                           if main page is http, but ajax request send in this page is https, then ajax request will fail also
     */
     //use https
     if (isset($_SERVER['SERVER_PORT']) && 443 == $_SERVER['SERVER_PORT']) {
         //if it has set $routeParams,then add  '_secure' => true
         if (is_array($routeParams)) {
             if (!isset($routeParams['_secure'])) {
                 $routeParams['_secure'] = true;
             }
         } else {
             //set $routeParams to use https
             $routeParams = array('_secure' => true);
         }
     }
     return parent::getUrl($routePath, $routeParams);
 }
コード例 #15
0
ファイル: Abstract.php プロジェクト: natxetee/magento2
 /**
  * Generate url by route and parameters
  *
  * @param   string $route
  * @param   array $params
  * @return  string
  */
 public function getUrl($route = '', $params = array())
 {
     return $this->_urlBuilder->getUrl($route, $params);
 }
コード例 #16
0
ファイル: UrlTest.php プロジェクト: nemphys/magento2
 /**
  * Note: isolation flushes the URL memory cache
  * @magentoAppIsolation enabled
  */
 public function testGetUrl()
 {
     $result = $this->_model->getUrl('catalog/product/view', array('_fragment' => 'anchor', '_escape' => 1, '_query' => 'foo=bar', '_nosid' => 1, 'id' => 100));
     $this->assertEquals('http://localhost/index.php/catalog/product/view/id/100/?foo=bar#anchor', $result);
 }
コード例 #17
0
ファイル: Url.php プロジェクト: nemphys/magento2
 /**
  * Custom logic to retrieve Urls
  *
  * @param string $routePath
  * @param array $routeParams
  * @return string
  */
 public function getUrl($routePath = null, $routeParams = null)
 {
     $cacheSecretKey = false;
     if (is_array($routeParams) && isset($routeParams['_cache_secret_key'])) {
         unset($routeParams['_cache_secret_key']);
         $cacheSecretKey = true;
     }
     $result = parent::getUrl($routePath, $routeParams);
     if (!$this->useSecretKey()) {
         return $result;
     }
     $routeName = $this->getRouteName() ? $this->getRouteName() : '*';
     $controllerName = $this->getControllerName() ? $this->getControllerName() : $this->getDefaultControllerName();
     $actionName = $this->getActionName() ? $this->getActionName() : $this->getDefaultActionName();
     if ($cacheSecretKey) {
         $secret = array(self::SECRET_KEY_PARAM_NAME => "\${$routeName}/{$controllerName}/{$actionName}\$");
     } else {
         $secret = array(self::SECRET_KEY_PARAM_NAME => $this->getSecretKey($routeName, $controllerName, $actionName));
     }
     if (is_array($routeParams)) {
         $routeParams = array_merge($secret, $routeParams);
     } else {
         $routeParams = $secret;
     }
     if (is_array($this->getRouteParams())) {
         $routeParams = array_merge($this->getRouteParams(), $routeParams);
     }
     return parent::getUrl("{$routeName}/{$controllerName}/{$actionName}", $routeParams);
 }
コード例 #18
0
ファイル: Url.php プロジェクト: NBSW/mageplus
 /**
  * Custom logic to retrieve Urls
  *
  * @param string $routePath
  * @param array $routeParams
  * @return string
  */
 public function getUrl($routePath = null, $routeParams = null)
 {
     $cacheSecretKey = false;
     // automatically persist http/https state based on current state
     // this is is overridden if the secure flag has been explicitly
     // set in the params
     if (!isset($routeParams['_secure'])) {
         $routeParams['_secure'] = $this->getSecure();
     }
     if (is_array($routeParams) && isset($routeParams['_cache_secret_key'])) {
         unset($routeParams['_cache_secret_key']);
         $cacheSecretKey = true;
     }
     $result = parent::getUrl($routePath, $routeParams);
     if (!$this->useSecretKey()) {
         return $result;
     }
     $_route = $this->getRouteName() ? $this->getRouteName() : '*';
     $_controller = $this->getControllerName() ? $this->getControllerName() : $this->getDefaultControllerName();
     $_action = $this->getActionName() ? $this->getActionName() : $this->getDefaultActionName();
     if ($cacheSecretKey) {
         $secret = array(self::SECRET_KEY_PARAM_NAME => "\${$_controller}/{$_action}\$");
     } else {
         $secret = array(self::SECRET_KEY_PARAM_NAME => $this->getSecretKey($_controller, $_action));
     }
     if (is_array($routeParams)) {
         $routeParams = array_merge($secret, $routeParams);
     } else {
         $routeParams = $secret;
     }
     if (is_array($this->getRouteParams())) {
         $routeParams = array_merge($this->getRouteParams(), $routeParams);
     }
     return parent::getUrl("{$_route}/{$_controller}/{$_action}", $routeParams);
 }
コード例 #19
0
ファイル: Url.php プロジェクト: apiceweb/MageBridgeCore
 protected function setOriginalUrl($routePath = null, $routeParams = null)
 {
     // Get the original URLs from the registry
     $original_urls = Mage::registry('original_urls');
     // If this value is empty, it is not yet initialized
     if (empty($original_urls)) {
         return parent::getUrl($routePath, $routeParams);
     }
     // Fetch the result from this method
     $rt = parent::getUrl($routePath, $routeParams);
     // Replace the current URL with the original URL
     $store = Mage::app()->getStore();
     if ($store->getConfig('web/secure/use_in_frontend') == 1 && isset($original_urls['web/secure/base_url'])) {
         $rt = str_replace($store->getConfig('web/secure/base_url'), $original_urls['web/secure/base_url'], $rt);
     } elseif (isset($original_urls['web/unsecure/base_url'])) {
         $rt = str_replace($store->getConfig('web/unsecure/base_url'), $original_urls['web/unsecure/base_url'], $rt);
     }
     return $rt;
 }