Browse Source
			
			
			Allow `{lang}` as a placeholder in the skeleton directory
			
				Signed-off-by: Joas Schilling <coding@schilljs.com>
			
			
				pull/7334/head
			
			
		 
		
			
				
					
						
						Joas Schilling
					
					8 years ago
					
				 
				
			 
		 
		
			
				
				  
				  No known key found for this signature in database
				  
				  	
						GPG Key ID: 7076EA9751AACDDA
				  	
				  
				
			
		
		
		
	
		
			
				 2 changed files with 
17 additions and 
1 deletions
			 
			
		 
		
			
				- 
					
					
					 
					config/config.sample.php
				
 
			
				- 
					
					
					 
					lib/private/legacy/util.php
				
 
			
		
		
			
				
					
					
						
							
								
									
										
											
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -242,6 +242,9 @@ $CONFIG = array( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * The directory where the skeleton files are located. These files will be | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * copied to the data directory of new users. Leave empty to not copy any | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * skeleton files. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * ``{lang}`` can be used as a placeholder for the language of the user. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * If the directory does not exist, it falls back to non dialect (from ``de_DE`` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * to ``de``). If that does not exist either, it falls back to ``en`` | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 * Defaults to ``core/skeleton`` in the Nextcloud directory. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 */ | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  | 
				
			
			
		
	
										
									
								
							
						 
					 
				 
			
		
			
				
					
					
						
							
								
									
										
											
	
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -379,7 +379,20 @@ class OC_Util { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						 */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						public static function copySkeleton($userId, \OCP\Files\Folder $userDirectory) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$skeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$plainSkeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$userLang = \OC::$server->getL10NFactory()->findLanguage(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$skeletonDirectory = str_replace('{lang}', $userLang, $plainSkeletonDirectory); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if (!file_exists($skeletonDirectory)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								$dialectStart = strpos($userLang, '_'); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if ($dialectStart !== false) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									$skeletonDirectory = str_replace('{lang}', substr($userLang, 0, $dialectStart), $plainSkeletonDirectory); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								if ($dialectStart === false || !file_exists($skeletonDirectory)) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									$skeletonDirectory = str_replace('{lang}', 'en', $plainSkeletonDirectory); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							$instanceId = \OC::$server->getConfig()->getSystemValue('instanceid', ''); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							if ($instanceId === null) { | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |