/var/www/html_nl/wp-content/plugins/loco-translate/src/ajax/DownloadConfController.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
/**
 * Downloads a bundle configuration as XML or Json
 */
class Loco_ajax_DownloadConfController extends Loco_ajax_common_BundleController {
    
    
    
/**
     * {@inheritdoc}
     */
    
public function render(){
        
        
$this->validate();
        
$bundle $this->getBundle();

        
$file = new Loco_fs_File$this->get('path') );

        
// Download actual loco.xml file if bundle is configured from it
        
if( 'file' === $bundle->isConfigured() && 'xml' === $file->extension() ){
            
$file->normalize$bundle->getDirectoryPath() );
            if( 
$file->readable() ){
                return 
$file->getContents(); 
            }
        }
        
        
// else render temporary config file
        
$writer = new Loco_config_BundleWriter($bundle);
        
        switch( 
$file->extension() ){
        case 
'xml':
            return 
$writer->toXml();
        case 
'json':
            return 
json_encode$writer->jsonSerialize() );
        }
        
        
// @codeCoverageIgnoreStart
        
throw new Loco_error_Exception('Specify either XML or JSON file path');
    }
        
    
}