404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.149.25.87: ~ $
<?php
/**
 * @author    ThemePunch <info@themepunch.com>
 * @link      https://www.themepunch.com/
 * @copyright 2022 ThemePunch
 */
 
if(!defined('ABSPATH')) exit();

class RevSliderWpml extends RevSliderFunctions {
	
	private $cur_lang;
	
	/**
	 * load the wpml filters ect.
	 **/
	public function __construct(){
		add_filter('revslider_get_posts_by_category', array($this, 'translate_category_lang'), 10, 2);
		add_filter('revslider_get_parent_slides_pre', array($this, 'change_lang'), 10, 4);
		add_filter('revslider_get_parent_slides_post', array($this, 'change_lang_to_orig'), 10, 4);
		
		add_action('revslider_header_content', array($this, 'add_javascript_language'));
	}
	
	
	/**
	 * true / false if the wpml plugin exists
	 */
	public function wpml_exists(){
		return did_action('wpml_loaded');
	}
	
	
	/**
	 * valdiate that wpml exists
	 */
	public function validateWpmlExists(){
		if(!$this->wpml_exists()){
			$this->throw_error(__('The WPML plugin is not activated', 'revslider'));
		}
	}
	
	
	/**
	 * get languages array
	 */
	public function getArrLanguages($get_all = true){
		$this->validateWpmlExists();
		
		$langs		= apply_filters('wpml_active_languages', array());
		$response	= array();
		
		if($get_all == true){
			$response['all'] = __('All Languages', 'revslider');
		}
		
		foreach($langs as $code => $lang){
			$name			 = $lang['native_name'];
			$response[$code] = $name;
		}
		
		return $response;
	}
	
	
	/**
	 * get assoc array of lang codes
	 */
	public function getArrLangCodes($get_all = true){
		$codes = array();
		
		if($get_all == true){
			$codes['all'] = 'all';
		}
		
		$this->validateWpmlExists();
		$langs = apply_filters('wpml_active_languages', array());
		
		foreach($langs as $code => $arr){
			$codes[$code] = $code;
		}
		
		return $codes;
	}
	
	
	/**
	 * check if all languages exists in the given langs array
	 */
	public function isAllLangsInArray($codes){
		$all_codes	= $this->getArrLangCodes();
		$diff		= array_diff($all_codes, $codes);
		return empty($diff);
	}
	
	
	/**
	 * get flag url
	 */
	public function getFlagUrl($code){
		
		$this->validateWpmlExists();
		
		$path = (defined('ICL_PLUGIN_URL')) ? ICL_PLUGIN_URL . '/res/img/icon16.png' : RS_PLUGIN_URL . 'admin/assets/images/icon16.png';

		if(empty($code) || $code == 'all'){
            $url = $path;
        }else{
            $active_languages = apply_filters('wpml_active_languages', array());
            $url = isset($active_languages[$code]['country_flag_url']) ? $active_languages[$code]['country_flag_url'] : null;
        }
		
		//default: show all
		return (!empty($url)) ? $url : $path;
	}
	
	
	/**
	 * get language title by code
	 */
	public function getLangTitle($code){
		if($code == 'all'){
			return(__('All Languages', 'revslider'));
		}else{
			$def = apply_filters('wpml_default_language', null);
			return apply_filters('wpml_translated_language_name', '', $code, $def);
		}
	}
	
	
	/**
	 * get current language
	 */
	public function getCurrentLang(){
		$this->validateWpmlExists();
		
		return (is_admin()) ? apply_filters('wpml_default_language', null) : apply_filters('wpml_current_language', null);
	}
	
	
	/**
	 * was before in RevSliderFunctions::get_posts_by_category();
	 **/
	public function translate_category_lang($data, $type){
		$cat_id = $this->get_val($data, 'cat_id');
		$cat_id	= (strpos($cat_id, ',') !== false) ? explode(',', $cat_id) : array($cat_id);
		
		if($this->wpml_exists()){ //translate categories to languages
			$newcat = array();
			foreach($cat_id as $id){
				$newcat[] = apply_filters('wpml_object_id', $id, 'category', true);
			}
			$data['cat_id'] = implode(',', $newcat);
		}
		
		return $data;
	}
	
	
	/**
	 * switch the language if WPML is used in Slider
	 **/
	public function change_lang($lang, $published, $gal_ids, $slider){
		if($this->wpml_exists() && $slider->get_param('use_wpml', 'off') == 'on'){
			$this->cur_lang = apply_filters('wpml_current_language', null);
			do_action('wpml_switch_language', $lang);
		}
	}
	
	
	/**
	 * switch the language back to original, if WPML is used in Slider
	 **/
	public function change_lang_to_orig($lang, $published, $gal_ids, $slider){
		if($this->wpml_exists() && $slider->get_param(array('general', 'useWPML'), false) == true){ //switch language back
			do_action('wpml_switch_language', $this->cur_lang);
		}
	}
	
	
	/**
	 * modify slider language
	 * @before: RevSliderOutput::setLang()
	 */
	public function get_language($use_wpml, $slider){
		$lang = ($this->wpml_exists() && $use_wpml == true) ? ICL_LANGUAGE_CODE : 'all';
		
		return $lang;
	}
	
	
	public function get_slider_language($slider){
		$use_wmpl = $slider->get_param(array('general', 'useWPML'), false);
		
		return $this->get_language($use_wmpl, $slider);
	}
	
	/**
	 * add languages as javascript object to the RevSlider BackEnd Header
	 **/
	public function add_javascript_language($rsad){
		if(!$this->wpml_exists()) return '';
		
		$langs = $this->getArrLanguages();
		
		$use_langs = array();
		foreach($langs as $code => $lang){
			$use_langs[$code] = array(
				'title' => $lang,
				'image'	=> $this->getFlagUrl($code)
			);
		}
		echo '<script>';
		echo 'var RS_WPML_LANGS = JSON.parse(\''.json_encode($use_langs).'\');';
		echo '</script>';
	}
}

global $rs_wmpl;
$rs_wmpl = new RevSliderWpml();

/**
 * old classname extends new one (old classnames will be obsolete soon)
 * @since: 5.0
 **/
class UniteWpmlRev extends RevSliderWpml {}

Filemanager

Name Type Size Permission Actions
external Folder 0755
aq-resizer.class.php File 7.77 KB 0644
backwards.php File 1.44 KB 0644
basic-css.php File 11.57 KB 0644
cache.class.php File 5.77 KB 0644
coloreasing.class.php File 6.4 KB 0644
colorpicker.class.php File 15.29 KB 0644
cssparser.class.php File 24.9 KB 0644
data.class.php File 76.23 KB 0644
em-integration.class.php File 5.76 KB 0644
extension.class.php File 6.38 KB 0644
favorite.class.php File 1.24 KB 0644
functions.class.php File 56.52 KB 0644
globals.class.php File 2.49 KB 0644
googlefonts.php File 232.29 KB 0644
index.php File 27 B 0644
navigation.class.php File 19.14 KB 0644
navigations.php File 101.14 KB 0644
object-library.class.php File 51.63 KB 0644
output.class.php File 323.76 KB 0644
page-template.class.php File 3.97 KB 0644
slide.class.php File 112.61 KB 0644
slider.class.php File 79.55 KB 0644
update.class.php File 7.32 KB 0644
woocommerce.class.php File 6.64 KB 0644
wpml.class.php File 5.32 KB 0644