/var/www/html_it/wp-content/plugins/loco-translate/src/ajax/common/BundleController.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
<?php
/**
 * Common functions for all Ajax actions that operate on a bundle 
 */
abstract class Loco_ajax_common_BundleController extends Loco_mvc_AjaxController {
    

    
/**
     * @return Loco_package_Bundle
     */
    
protected function getBundle(){
        if( 
$id $this->get('bundle') ){
            
// type may be passed as separate argument    
            
if( $type $this->get('type') ){
                return 
Loco_package_Bundle::createType$type$id );
            }
            
// else embedded in standalone bundle identifier
            // TODO standardize this across all Ajax end points 
            
return Loco_package_Bundle::fromId($id);
        }
        
// else may have type embedded in bundle
        
throw new Loco_error_Exception('No bundle identifier posted');
    }



    
/**
     * @param Loco_package_Bundle $bundle
     * @return Loco_package_Project
     */
    
protected function getProjectLoco_package_Bundle $bundle ){
        
$project $bundle->getProjectById$this->get('domain') );
        if( ! 
$project ){
            throw new 
Loco_error_Exception('Failed to find translation project');
        }
        return 
$project;
    }
    
}