110 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
		
		
			
		
	
	
			110 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
|  | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * class Settings | ||
|  |  * | ||
|  |  * Handles editing and fetching jilo configuration. | ||
|  |  */ | ||
|  | class Settings { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Loads the config.js file from the Jitsi server. | ||
|  |      * | ||
|  |      * @param string $jitsiUrl The base URL of the Jitsi server. | ||
|  |      * @param bool $raw Whether to return the full file (true) or only uncommented values (false). | ||
|  |      * | ||
|  |      * @return string The content of the config.js file or an error message. | ||
|  |      */ | ||
|  |     public function getPlatformConfigjs($jitsiUrl, $raw = false) { | ||
|  |         // constructing the URL
 | ||
|  |         $configjsFile = $jitsiUrl . '/config.js'; | ||
|  | 
 | ||
|  |         // default content, if we can't get the file contents
 | ||
|  |         $platformConfigjs = "The file $configjsFile can't be loaded."; | ||
|  | 
 | ||
|  |         // ssl options
 | ||
|  |         $contextOptions = [ | ||
|  |             'ssl' => [ | ||
|  |                 'verify_peer'		=> true, | ||
|  |                 'verify_peer_name'	=> true, | ||
|  |             ], | ||
|  |         ]; | ||
|  |         $context = stream_context_create($contextOptions); | ||
|  | 
 | ||
|  |         // get the file
 | ||
|  |         $fileContent = @file_get_contents($configjsFile, false, $context); | ||
|  | 
 | ||
|  |         if ($fileContent !== false) { | ||
|  | 
 | ||
|  |             // when we need only uncommented values
 | ||
|  |             if ($raw === false) { | ||
|  |                 // remove block comments
 | ||
|  |                 $platformConfigjs = preg_replace('!/\*.*?\*/!s', '', $fileContent); | ||
|  |                 // remove single-line comments
 | ||
|  |                 $platformConfigjs = preg_replace('/\/\/[^\n]*/', '', $platformConfigjs); | ||
|  |                 // remove empty lines
 | ||
|  |                 $platformConfigjs = preg_replace('/^\s*[\r\n]/m', '', $platformConfigjs); | ||
|  | 
 | ||
|  |             // when we need the full file as it is
 | ||
|  |             } else { | ||
|  |                 $platformConfigjs = $fileContent; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         return $platformConfigjs; | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Loads the interface_config.js file from the Jitsi server. | ||
|  |      * | ||
|  |      * @param string $jitsiUrl The base URL of the Jitsi server. | ||
|  |      * @param bool $raw Whether to return the full file (true) or only uncommented values (false). | ||
|  |      * | ||
|  |      * @return string The content of the interface_config.js file or an error message. | ||
|  |      */ | ||
|  |     public function getPlatformInterfaceConfigjs($jitsiUrl, $raw = false) { | ||
|  |         // constructing the URL
 | ||
|  |         $interfaceConfigjsFile = $jitsiUrl . '/interface_config.js'; | ||
|  | 
 | ||
|  |         // default content, if we can't get the file contents
 | ||
|  |         $platformInterfaceConfigjs = "The file $interfaceConfigjsFile can't be loaded."; | ||
|  | 
 | ||
|  |         // ssl options
 | ||
|  |         $contextOptions = [ | ||
|  |             'ssl' => [ | ||
|  |                 'verify_peer'		=> true, | ||
|  |                 'verify_peer_name'	=> true, | ||
|  |             ], | ||
|  |         ]; | ||
|  |         $context = stream_context_create($contextOptions); | ||
|  | 
 | ||
|  |         // get the file
 | ||
|  |         $fileContent = @file_get_contents($interfaceConfigjsFile, false, $context); | ||
|  | 
 | ||
|  |         if ($fileContent !== false) { | ||
|  | 
 | ||
|  |             // when we need only uncommented values
 | ||
|  |             if ($raw === false) { | ||
|  |                 // remove block comments
 | ||
|  |                 $platformInterfaceConfigjs = preg_replace('!/\*.*?\*/!s', '', $fileContent); | ||
|  |                 // remove single-line comments
 | ||
|  |                 $platformInterfaceConfigjs = preg_replace('/\/\/[^\n]*/', '', $platformInterfaceConfigjs); | ||
|  |                 // remove empty lines
 | ||
|  |                 $platformInterfaceConfigjs = preg_replace('/^\s*[\r\n]/m', '', $platformInterfaceConfigjs); | ||
|  | 
 | ||
|  |             // when we need the full file as it is
 | ||
|  |             } else { | ||
|  |                 $platformInterfaceConfigjs = $fileContent; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         return $platformInterfaceConfigjs; | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  | } | ||
|  | 
 | ||
|  | ?>
 |