HEX
Server: Apache/2.4.65 (Debian)
System: Linux wordpress-7cb4c6b6f6-qgbk2 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: www-data (33)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/loco-translate/src/ajax/common/BundleController.php
<?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 getProject( Loco_package_Bundle $bundle ){
        $project = $bundle->getProjectById( $this->get('domain') );
        if( ! $project ){
            throw new Loco_error_Exception('Failed to find translation project');
        }
        return $project;
    }
    
}