forked from Public/pics
		
	Dispatcher: check actions before tags.
This commit is contained in:
		
							parent
							
								
									7487068171
								
							
						
					
					
						commit
						c4f65aaa0a
					
				@ -36,23 +36,24 @@ class Dispatcher
 | 
			
		||||
				$_SERVER['PATH_INFO'] = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Nothing in particular? Just show the root of the album list.
 | 
			
		||||
		// Just showing the album index?
 | 
			
		||||
		if (empty($_SERVER['PATH_INFO']) || $_SERVER['PATH_INFO'] == '/')
 | 
			
		||||
		{
 | 
			
		||||
			return new ViewPhotoAlbum();
 | 
			
		||||
		}
 | 
			
		||||
		// Look for particular actions...
 | 
			
		||||
		elseif (preg_match('~^/(?<action>[a-z]+)/?~', $_SERVER['PATH_INFO'], $path) && isset($possibleActions[$path['action']]))
 | 
			
		||||
		{
 | 
			
		||||
			$_GET = array_merge($_GET, $path);
 | 
			
		||||
			return new $possibleActions[$path['action']]();
 | 
			
		||||
		}
 | 
			
		||||
		// An album, person, or any other tag?
 | 
			
		||||
		elseif (preg_match('~^/(?<tag>.+?)(?:/page/(?<page>\d+))?/?$~', $_SERVER['PATH_INFO'], $path) && Tag::matchSlug($path['tag']))
 | 
			
		||||
		{
 | 
			
		||||
			$_GET = array_merge($_GET, $path);
 | 
			
		||||
			return new ViewPhotoAlbum();
 | 
			
		||||
		}
 | 
			
		||||
		// Look for an action...
 | 
			
		||||
		elseif (preg_match('~^/(?<action>[a-z]+)(?:/page/(?<page>\d+))?/?~', $_SERVER['PATH_INFO'], $path) && isset($possibleActions[$path['action']]))
 | 
			
		||||
		{
 | 
			
		||||
			$_GET = array_merge($_GET, $path);
 | 
			
		||||
			return new $possibleActions[$path['action']]();
 | 
			
		||||
		}
 | 
			
		||||
		// No idea, then?
 | 
			
		||||
		else
 | 
			
		||||
			throw new NotFoundException();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user