197 lines
4.1 KiB
PHP
Raw Normal View History

2016-11-28 21:52:15 -08:00
<?php
/* Provider: - *
* @author ThemePunch <info@themepunch.com>
* @link http://www.themepunch.com/
* @copyright 2015 ThemePunch
*/
if( !defined( 'ABSPATH') ) exit();
class RevSliderWpml{
/* Provider: - *
*
* true / false if the wpml plugin exists
*/
public static function isWpmlExists(){
if(class_exists("SitePress"))
return(true);
else
return(false);
}
/* Provider: - *
*
* valdiate that wpml exists
*/
private static function validateWpmlExists(){
if(!self::isWpmlExists())
RevSliderFunctions::throwError("The wpml plugin is not activated");
}
/* Provider: - *
*
* get languages array
*/
public static function getArrLanguages($getAllCode = true){
self::validateWpmlExists();
$wpml = new SitePress();
$arrLangs = $wpml->get_active_languages();
$response = array();
if($getAllCode == true)
$response["all"] = __("All Languages",REVSLIDER_TEXTDOMAIN);
foreach($arrLangs as $code=>$arrLang){
$name = $arrLang["native_name"];
$response[$code] = $name;
}
return($response);
}
/* Provider: - *
*
* get assoc array of lang codes
*/
public static function getArrLangCodes($getAllCode = true){
$arrCodes = array();
if($getAllCode == true)
$arrCodes["all"] = "all";
self::validateWpmlExists();
$wpml = new SitePress();
$arrLangs = $wpml->get_active_languages();
foreach($arrLangs as $code=>$arr){
$arrCodes[$code] = $code;
}
return($arrCodes);
}
/* Provider: - *
*
* check if all languages exists in the given langs array
*/
public static function isAllLangsInArray($arrCodes){
$arrAllCodes = self::getArrLangCodes();
$diff = array_diff($arrAllCodes, $arrCodes);
return(empty($diff));
}
/* Provider: - *
*
* get langs with flags menu list
* @param $props
*/
public static function getLangsWithFlagsHtmlList($props = "",$htmlBefore = ""){
$arrLangs = self::getArrLanguages();
if(!empty($props))
$props = " ".$props;
$html = "<ul".$props.">"."\n";
$html .= $htmlBefore;
foreach($arrLangs as $code=>$title){
$urlIcon = self::getFlagUrl($code);
$html .= "<li data-lang='".$code."' class='item_lang'><a data-lang='".$code."' href='javascript:void(0)'>"."\n";
$html .= "<img src='".$urlIcon."'/> $title"."\n";
$html .= "</a></li>"."\n";
}
$html .= "</ul>";
return($html);
}
/* Provider: - *
* get flag url
*/
public static function getFlagUrl($code){
self::validateWpmlExists();
$wpml = new SitePress();
if(empty($code) || $code == "all")
$url = RS_PLUGIN_URL.'admin/assets/images/icon-all.png';
else
$url = $wpml->get_flag_url($code);
//default: show all
if(empty($url))
$url = RS_PLUGIN_URL.'admin/assets/images/icon-all.png';
return($url);
}
/* Provider: - *
/* Provider: - get language details by code
*/
private function getLangDetails($code){
global $wpdb;
$details = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."icl_languages WHERE code='$code'");
if(!empty($details))
$details = (array)$details;
return($details);
}
/* Provider: - *
*
* get language title by code
*/
public static function getLangTitle($code){
$langs = self::getArrLanguages();
if($code == "all")
return(__("All Languages", REVSLIDER_TEXTDOMAIN));
if(array_key_exists($code, $langs))
return($langs[$code]);
$details = self::getLangDetails($code);
if(!empty($details))
return($details["english_name"]);
return("");
}
/* Provider: - *
*
* get current language
*/
public static function getCurrentLang(){
self::validateWpmlExists();
$wpml = new SitePress();
if(is_admin())
$lang = $wpml->get_default_language();
else
$lang = RevSliderFunctionsWP::getCurrentLangCode();
return($lang);
}
}
/* Provider: - *
* old classname extends new one (old classnames will be obsolete soon)
* @since: 5.0
**/
class UniteWpmlRev extends RevSliderWpml {}
?>