New function to help resolve not-found files/directories (#217)
* ServerUIPropertiesMenu for Configurator to edit builtin UIProperties of MP * fixed unregister-functions of CallbackManager * Reducing menuItemHeight in Configurator to avoid overlapping of the menu items * Fully rebuild the admins menu after a player rights changed * Added function to FileUtil to improve realpath, so symbolic links can be resolved * Fixed indentation * Update FileUtil.php Fixed error in case of an absolute path on Unix-like systems.
This commit is contained in:
		
				
					committed by
					
						
						Lukas Kremsmayr
					
				
			
			
				
	
			
			
			
						parent
						
							e241f729ce
						
					
				
				
					commit
					0c28d683f5
				
			@@ -236,4 +236,31 @@ abstract class FileUtil {
 | 
				
			|||||||
	public static function isHiddenFile($fileName) {
 | 
						public static function isHiddenFile($fileName) {
 | 
				
			||||||
		return (substr($fileName, 0, 1) === '.');
 | 
							return (substr($fileName, 0, 1) === '.');
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Shortens a path.
 | 
				
			||||||
 | 
						 * Opposed to realpath, it follows symbolic links.
 | 
				
			||||||
 | 
						 *
 | 
				
			||||||
 | 
						 * @param string $path
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public static function shortenPath(string $path) {
 | 
				
			||||||
 | 
							$root = substr($path, 0, 1) === '/';
 | 
				
			||||||
 | 
							$path = str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $path);
 | 
				
			||||||
 | 
							$parts = array_filter(explode(DIRECTORY_SEPARATOR, $path), 'strlen');
 | 
				
			||||||
 | 
							$absolutes = array();
 | 
				
			||||||
 | 
							foreach ($parts as $part) {
 | 
				
			||||||
 | 
								if ('.' === $part)
 | 
				
			||||||
 | 
									continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if ('..' === $part)
 | 
				
			||||||
 | 
									array_pop($absolutes);
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									array_push($absolutes, $part);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							$path = implode(DIRECTORY_SEPARATOR, $absolutes);
 | 
				
			||||||
 | 
							if ($root)
 | 
				
			||||||
 | 
								$path = '/'.$path;
 | 
				
			||||||
 | 
							return $path;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user