当前位置: 首页>>代码示例>>PHP>>正文


PHP JRouter::parse方法代码示例

本文整理汇总了PHP中JRouter::parse方法的典型用法代码示例。如果您正苦于以下问题:PHP JRouter::parse方法的具体用法?PHP JRouter::parse怎么用?PHP JRouter::parse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JRouter的用法示例。


在下文中一共展示了JRouter::parse方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parse

 function parse(&$uri)
 {
     $vars = array();
     // Get the application
     $app =& JFactory::getApplication();
     if ($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
         //forward to https
         $uri->setScheme('https');
         $app->redirect($uri->toString());
     }
     // Get the path
     $path = $uri->getPath();
     //Remove the suffix
     if ($this->_mode == JROUTER_MODE_SEF) {
         if ($app->getCfg('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/')) {
             if ($suffix = pathinfo($path, PATHINFO_EXTENSION)) {
                 $path = str_replace('.' . $suffix, '', $path);
                 $vars['format'] = $suffix;
             }
         }
     }
     //Remove basepath
     $path = substr_replace($path, '', 0, strlen(JURI::base(true)));
     //Remove prefix
     $path = str_replace('index.php', '', $path);
     //Set the route
     $uri->setPath(trim($path, '/'));
     $vars += parent::parse($uri);
     return $vars;
 }
开发者ID:hrishikesh-kumar,项目名称:NBSNIP,代码行数:30,代码来源:router.php

示例2: testParse

 /**
  * Tests the parse method
  *
  * @param   array    $uri       An associative array with variables
  * @param   integer  $mode      JROUTER_MODE_RAW or JROUTER_MODE_SEF
  * @param   array    $vars      An associative array with global variables
  * @param   array    $expected  Expected value
  *
  * @return  void
  *
  * @dataProvider  casesParse
  * @since         3.4
  */
 public function testParse($url, $mode, $vars, $expected)
 {
     $this->object->setMode($mode);
     $this->object->setVars($vars);
     $uri = new JUri($url);
     $this->assertEquals($this->object->parse($uri), $expected);
 }
开发者ID:nirpan,项目名称:joomla-cms,代码行数:20,代码来源:JRouterTest.php

示例3: testFirstParseRuleTakesPrecedence

 /**
  * @param   array  $preset   Initial router variables
  * @param   array  $rules    Callback to execute
  * @param   string $stage    Stage to process
  * @param   string $expected Expected return value
  *
  * @dataProvider  casesParseRulesForPrecedence
  * @since         3.4
  */
 public function testFirstParseRuleTakesPrecedence($preset, $rules, $stage, $expected)
 {
     $this->object->setVars($preset, false);
     foreach ($rules as $rule) {
         $this->object->attachParseRule($rule, $stage);
     }
     $uri = $this->getMock('JUri');
     $this->assertEquals($expected, $this->object->parse($uri));
 }
开发者ID:joomla-agency,项目名称:joomla-cms,代码行数:18,代码来源:JRouterTest.php

示例4: testParseRedirect

 /**
  * Tests the parse methods redirect
  *
  * @return  void
  *
  * @since   3.4
  */
 public function testParseRedirect()
 {
     $uri = new JUri('http://www.example.com/index.php');
     $app = $this->object->getApp();
     $app->expects($this->any())->method('get')->will($this->returnValue(2));
     $app->expects($this->once())->method('redirect');
     $this->object->setApp($app);
     $this->object->parse($uri);
 }
开发者ID:nirpan,项目名称:joomla-cms,代码行数:16,代码来源:JRouterSiteTest.php

示例5: testParse

 /**
  * Tests the parse() method
  *
  * @dataProvider casesParse
  * @return  void
  * @testdox JRouter::parse() parses a JUri object into an array of parameters
  * @since   4.0
  */
 public function testParse($rules, $stages, $setVars, $url, $expected, $expectedVars)
 {
     foreach ($rules as $i => $rule) {
         $this->object->attachParseRule($rule, $stages[$i]);
     }
     $uri = new JUri($url);
     $result = $this->object->parse($uri, $setVars);
     $this->assertEquals($expected, $result);
     $this->assertEquals($expectedVars, $this->object->getVars());
 }
开发者ID:Rai-Ka,项目名称:joomla-cms,代码行数:18,代码来源:JRouterTest.php

示例6: parse

	/**
	 * Parse the URI
	 *
	 * @param	object	The URI
	 *
	 * @return	array
	 */
	public function parse(&$uri)
	{
		$vars = array();

		// Get the application
		$app = JFactory::getApplication();

		if ($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
			//forward to https
			$uri->setScheme('https');
			$app->redirect((string)$uri);
		}

		// Get the path
		$path = $uri->getPath();

		// Remove the base URI path.
		$path = substr_replace($path, '', 0, strlen(JURI::base(true)));

		// Check to see if a request to a specific entry point has been made.
		if (preg_match("#.*\.php#u", $path, $matches)) {

			// Get the current entry point path relative to the site path.
			$scriptPath = realpath($_SERVER['SCRIPT_FILENAME'] ? $_SERVER['SCRIPT_FILENAME'] : str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']));
			$relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_SITE, '', $scriptPath));

			// If a php file has been found in the request path, check to see if it is a valid file.
			// Also verify that it represents the same file from the server variable for entry script.
			if (file_exists(JPATH_SITE.$matches[0]) && ($matches[0] == $relativeScriptPath)) {

				// Remove the entry point segments from the request path for proper routing.
				$path = str_replace($matches[0], '', $path);
			}
		}

		//Remove the suffix
		if ($this->_mode == JROUTER_MODE_SEF) {
			if ($app->getCfg('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/')) {
				if ($suffix = pathinfo($path, PATHINFO_EXTENSION)) {
					$path = str_replace('.'.$suffix, '', $path);
					$vars['format'] = $suffix;
				}
			}
		}

		//Set the route
		$uri->setPath(trim($path , '/'));

		$vars += parent::parse($uri);

		return $vars;
	}
开发者ID:nikosdion,项目名称:Akeeba-Example,代码行数:59,代码来源:router.php

示例7: parse

 function parse(&$uri)
 {
     $vars = array();
     // Get the path
     $path = $uri->getPath();
     //Remove basepath
     $path = substr_replace($path, '', 0, strlen(JURI::base(true)));
     //Remove prefix
     $path = str_replace('index.php', '', $path);
     //Set the route
     $uri->setPath(trim($path, '/'));
     $vars += parent::parse($uri);
     return $vars;
 }
开发者ID:skyview059,项目名称:e-learning-website,代码行数:14,代码来源:router.php

示例8: parse

 /**
  * Parse the URI
  *
  * @param	object	The URI
  *
  * @return	array
  */
 public function parse(&$uri)
 {
     $vars = array();
     // Get the application
     $app = JApplication::getInstance('site');
     if ($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
         //forward to https
         $uri->setScheme('https');
         $app->redirect((string) $uri);
     }
     // Get the path
     $path = $uri->getPath();
     // Remove the base URI path.
     $path = substr_replace($path, '', 0, strlen(JURI::base(true)));
     // Check to see if a request to a specific entry point has been made.
     if (preg_match("#.*?\\.php#u", $path, $matches)) {
         // Get the current entry point path relative to the site path.
         $scriptPath = realpath($_SERVER['SCRIPT_FILENAME'] ? $_SERVER['SCRIPT_FILENAME'] : str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']));
         $relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_SITE, '', $scriptPath));
         // If a php file has been found in the request path, check to see if it is a valid file.
         // Also verify that it represents the same file from the server variable for entry script.
         if (file_exists(JPATH_SITE . $matches[0]) && $matches[0] == $relativeScriptPath) {
             // Remove the entry point segments from the request path for proper routing.
             $path = str_replace($matches[0], '', $path);
         }
     }
     // Identify format
     if ($this->_mode == JROUTER_MODE_SEF) {
         if ($app->getCfg('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/')) {
             if ($suffix = pathinfo($path, PATHINFO_EXTENSION)) {
                 $vars['format'] = $suffix;
             }
         }
     }
     //Remove prefix
     $path = str_replace('index.php', '', $path);
     //Set the route
     $uri->setPath(trim($path, '/'));
     $vars += parent::parse($uri);
     if (empty($vars['option']) && isset($_POST['option'])) {
         $vars['option'] = JRequest::getCmd('option', '', 'post');
     }
     if (empty($vars['option'])) {
         JError::raiseError(404, JText::_('JGLOBAL_RESOURCE_NOT_FOUND'));
     }
     /* START: HUBzero Extensions Follow to force registration and email confirmation */
     $juser = JFactory::getUser();
     if (!$juser->get('guest')) {
         $session = JFactory::getSession();
         $registration_incomplete = $session->get('registration.incomplete');
         if ($registration_incomplete) {
             if ($vars['option'] == 'com_users') {
                 if ($vars['view'] == 'logout' || $vars['task'] == 'logout') {
                     return $vars;
                 }
             }
             if ($vars['option'] == 'com_members' && (isset($vars['controller']) && $vars['controller'] == 'register' || isset($vars['view']) && $vars['view'] == 'register')) {
                 $session->set('linkaccount', false);
                 return $vars;
             }
             if ($uri->getPath() != 'legal/terms') {
                 $originalVars = $vars;
                 $vars = array();
                 if ($juser->get('tmp_user')) {
                     $vars['option'] = 'com_members';
                     $vars['controller'] = 'register';
                     $vars['task'] = 'create';
                     $vars['act'] = '';
                 } else {
                     if (substr($juser->get('email'), -8) == '@invalid') {
                         // First, allow ticket creation
                         if ($originalVars['option'] == 'com_support' && $originalVars['controller'] == 'tickets' && $originalVars['task'] == 'save') {
                             // Do nothing...allow it to pass through
                             $vars = $originalVars;
                         } elseif ($session->get('linkaccount', true)) {
                             $vars['option'] = 'com_users';
                             $vars['view'] = 'link';
                         } else {
                             $vars['option'] = 'com_members';
                             $vars['controller'] = 'register';
                             $vars['task'] = 'update';
                             $vars['act'] = '';
                         }
                     } else {
                         $o = JRequest::getVar('option', '');
                         $t = JRequest::getVar('task', '');
                         $nh = JRequest::getInt('no_html', 0);
                         //are we trying to use the tag autocompletor when forcing registration update?
                         if ($o == 'com_tags' && $t == 'autocomplete' && $nh) {
                             $vars['option'] = 'com_tags';
                         } else {
                             $vars['option'] = 'com_members';
                             $vars['id'] = $juser->get("id");
//.........这里部分代码省略.........
开发者ID:mined-gatech,项目名称:hubzero-cms,代码行数:101,代码来源:router.php

示例9: parse

 function parse(&$uri)
 {
     $vars = parent::parse($uri);
     return $vars;
 }
开发者ID:sangkasi,项目名称:joomla,代码行数:5,代码来源:shsef.php

示例10: parse

 /**
  * Function to convert a route to an internal URI
  *
  * @param   JUri  &$uri  The uri.
  *
  * @return  array
  *
  * @since   1.5
  */
 public function parse(&$uri)
 {
     $vars = array();
     if ($this->app->get('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
         // Forward to https
         $uri->setScheme('https');
         $this->app->redirect((string) $uri, 301);
     }
     // Get the path
     // Decode URL to convert percent-encoding to unicode so that strings match when routing.
     $path = urldecode($uri->getPath());
     // Remove the base URI path.
     $path = substr_replace($path, '', 0, strlen(JUri::base(true)));
     // Check to see if a request to a specific entry point has been made.
     if (preg_match("#.*?\\.php#u", $path, $matches)) {
         // Get the current entry point path relative to the site path.
         $scriptPath = realpath($_SERVER['SCRIPT_FILENAME'] ? $_SERVER['SCRIPT_FILENAME'] : str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']));
         $relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_SITE, '', $scriptPath));
         // If a php file has been found in the request path, check to see if it is a valid file.
         // Also verify that it represents the same file from the server variable for entry script.
         if (file_exists(JPATH_SITE . $matches[0]) && $matches[0] == $relativeScriptPath) {
             // Remove the entry point segments from the request path for proper routing.
             $path = str_replace($matches[0], '', $path);
         }
     }
     // Identify format
     if ($this->_mode == JROUTER_MODE_SEF) {
         if ($this->app->get('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/')) {
             if ($suffix = pathinfo($path, PATHINFO_EXTENSION)) {
                 $vars['format'] = $suffix;
             }
         }
     }
     // Set the route
     $uri->setPath(trim($path, '/'));
     // Set the parsepreprocess components methods
     $components = JComponentHelper::getComponents();
     foreach ($components as $component) {
         $componentRouter = $this->getComponentRouter($component->option);
         if (method_exists($componentRouter, 'parsepreprocess')) {
             $this->attachParseRule(array($componentRouter, 'parsepreprocess'), static::PROCESS_BEFORE);
         }
     }
     $vars += parent::parse($uri);
     return $vars;
 }
开发者ID:eshiol,项目名称:joomla-cms,代码行数:55,代码来源:site.php

示例11: parse

 /**
  * Short description for 'parse'
  *
  * Long description (if any) ...
  *
  * @param      object &$uri Parameter description (if any) ...
  * @return     array Return description (if any) ...
  */
 function parse(&$uri)
 {
     $vars = array();
     // Get the application
     $app = JFactory::getApplication();
     if ($app->getCfg('force_ssl') == 2 && strtolower($uri->getScheme()) != 'https') {
         //forward to https
         $uri->setScheme('https');
         $app->redirect($uri->toString());
     }
     // Get the path
     $path = $uri->getPath();
     //Remove the suffix
     if ($this->_mode == JROUTER_MODE_SEF) {
         // Get the application
         $app = JFactory::getApplication();
         if ($app->getCfg('sef_suffix') && !(substr($path, -9) == 'index.php' || substr($path, -1) == '/')) {
             if ($suffix = pathinfo($path, PATHINFO_EXTENSION)) {
                 $path = str_replace('.' . $suffix, '', $path);
                 $vars['format'] = $suffix;
             }
         }
     }
     //Remove basepath
     $path = substr_replace($path, '', 0, strlen(JURI::base(true)));
     //Remove prefix
     $path = str_replace('index.php', '', $path);
     //Set the route
     $uri->setPath(trim($path, '/'));
     $vars += parent::parse($uri);
     /* HUBzero Extensions Follow to force registration and email confirmation */
     $juser = JFactory::getUser();
     if (!$juser->get('guest')) {
         $session = JFactory::getSession();
         $registration_incomplete = $session->get('registration.incomplete');
         if ($registration_incomplete) {
             if ($vars['option'] == 'com_user') {
                 if ($vars['view'] == 'logout' || $vars['task'] == 'logout') {
                     return $vars;
                 }
             }
             if ($vars['option'] == 'com_members' && (isset($vars['controller']) && $vars['controller'] == 'register' || isset($vars['view']) && $vars['view'] == 'register')) {
                 return $vars;
             }
             if ($uri->getPath() != 'legal/terms') {
                 $vars = array();
                 /*
                 					$vars['option'] = 'com_members';
                 					$vars['controller'] = 'register';
                 
                 					if ($juser->get('tmp_user'))
                 						$vars['task'] = 'create';
                 					else
                 						$vars['task'] = 'update';
                 
                 					$vars['act'] = '';
                 */
                 $vars['option'] = 'com_members';
                 $vars['id'] = $juser->get("id");
                 $vars['active'] = 'profile';
                 $this->setVars($vars);
                 JRequest::set($vars, 'get', true);
                 // overwrite existing
                 return $vars;
             }
         }
         $xprofile = \Hubzero\User\User::oneOrNew($juser->get('id'));
         if (is_object($xprofile) && $xprofile->get('activation') != 1 && $xprofile->get('activation') != 3) {
             if ($vars['option'] == 'com_user') {
                 if ($vars['view'] == 'logout' || $vars['task'] == 'logout') {
                     return $vars;
                 }
             } else {
                 if ($uri->getPath() == 'legal/terms') {
                     return $vars;
                 } else {
                     if ($vars['option'] == 'com_members' && (isset($vars['controller']) && $vars['controller'] == 'register' || isset($vars['view']) && $vars['view'] == 'register')) {
                         if (!empty($vars['task'])) {
                             if ($vars['task'] == 'unconfirmed' || $vars['task'] == 'change' || $vars['task'] == 'resend' || $vars['task'] == 'confirm') {
                                 return $vars;
                             }
                         }
                     }
                 }
             }
             $vars = array();
             $vars['option'] = 'com_members';
             $vars['controller'] = 'register';
             $vars['task'] = 'unconfirmed';
             $this->setVars($vars);
             JRequest::set($vars, 'get', true);
             // overwrite existing
//.........这里部分代码省略.........
开发者ID:kevinwojo,项目名称:hubzero-cms,代码行数:101,代码来源:router.php


注:本文中的JRouter::parse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。