| Name | Size | Mode | Actions |
|---|---|---|---|
| flags/ | - | 0755 | rm |
| js/ | - | 0755 | rm |
| url_addon/ | - | 0755 | rm |
| gtranslate-notices.css | 1017 | 0644 | editdlrm |
| gtranslate.php | 187735 | 0644 | editdlrm |
| gt_logo.svg | 2887 | 0644 | editdlrm |
| readme.txt | 41233 | 0644 | editdlrm |
/home/techb158/on-time-movers.com/wp-content/plugins/gtranslate/gtranslate.php (187735B)
'.esc_html__('GTranslate Settings', 'gtranslate').''); ?>
; rel=dns-prefetch', false); } public static function enqueue_scripts() { $data = get_option('GTranslate'); self::load_defaults($data); if(is_admin()) wp_enqueue_script('jquery'); // make sure main_lang is set correctly in config.php file if($data['pro_version'] or $data['enterprise_version']) { include dirname(__FILE__) . '/url_addon/config.php'; if($main_lang != $data['default_language']) { // update main_lang in config.php $config_file = dirname(__FILE__) . '/url_addon/config.php'; if(is_readable($config_file) and wp_is_writable($config_file)) { $config = file_get_contents($config_file); if(strpos($config, 'main_lang') !== false) { $config = preg_replace('/\$main_lang = \'[a-z-]{2,5}\'/i', '$main_lang = \''.$data['default_language'].'\'', $config); if(is_string($config) and strlen($config) > 10) file_put_contents($config_file, $config); } } } } } public static function register_blocks() { add_action('enqueue_block_editor_assets', function() { wp_register_script('gt_block_editor', false, array(), GTRANSLATE_VERSION, true); wp_enqueue_script('gt_block_editor'); wp_add_inline_script( 'gt_block_editor', '(function(blocks, element, blockEditor, components, serverSideRender) { const el = element.createElement; const Fragment = element.Fragment; const { useBlockProps, InspectorControls } = blockEditor; const { PanelBody, SelectControl } = components; const ServerSideRender = serverSideRender; wp.blocks.registerBlockType("gtranslate/language-switcher", { title: "GTranslate Language Switcher", description: "Render GTranslate language switcher", icon: "translation", category: "widgets", apiVersion: 3, attributes: { widget_look: { type: "string", default: "float", enum: ["float", "dropdown_with_flags", "dropdown", "flags_dropdown", "popup", "popup_search", "flags", "globe", "flags_code", "flags_name", "lang_names", "lang_codes"] } }, save: function() { return null; }, edit: function(props) { const attributes = props.attributes; const setAttributes = props.setAttributes; return el( Fragment, {}, el( InspectorControls, {}, el( PanelBody, { title: "GTranslate Settings" }, el(SelectControl, { label: "Widget Look", value: attributes.widget_look || "float", options: [ { label: "Float", value: "float" }, { label: "Nice dropdown with flags", value: "dropdown_with_flags" }, { label: "Popup", value: "popup" }, { label: "Popup with search", value: "popup_search" }, { label: "Dropdown", value: "dropdown" }, { label: "Flags", value: "flags" }, { label: "Flags and dropdown", value: "flags_dropdown" }, { label: "Flags with language name", value: "flags_name" }, { label: "Flags with language code", value: "flags_code" }, { label: "Language names", value: "lang_names" }, { label: "Language codes", value: "lang_codes" }, { label: "Globe", value: "globe" }, ], onChange: function(value) { setAttributes({ widget_look: value }); } }) ) ), el( "div", useBlockProps(), el(ServerSideRender, { block: "gtranslate/language-switcher", attributes: attributes }) ) ); } }); })( window.wp.blocks, window.wp.element, window.wp.blockEditor, window.wp.components, window.wp.serverSideRender );' ); }); $keywords = array_unique(array('gtranslate', 'translate', 'language', 'translation', 'switcher', 'flag', 'flags', 'dropdown', __('translate', 'gtranslate'), __('language', 'gtranslate'), __('translation', 'gtranslate'), __('switcher', 'gtranslate'), __('flag', 'gtranslate'), __('flags', 'gtranslate'), __('dropdown', 'gtranslate'))); register_block_type( 'gtranslate/language-switcher', array( 'title' => __('GTranslate Language Switcher', 'gtranslate'), 'description' => __('Render GTranslate langauge switcher', 'gtranslate'), 'keywords' => $keywords, 'icon' => 'translation', 'category' => 'widgets', 'api_version' => 3, 'attributes' => array( 'widget_look' => array('type' => 'string', 'default' => 'float', 'enum' => array('float', 'dropdown_with_flags', 'dropdown', 'flags_dropdown', 'popup', 'popup_search', 'flags', 'globe', 'flags_code', 'flags_name', 'lang_names', 'lang_codes')) ), 'render_callback' => function ($attributes) { $shortcode = '[gtranslate widget_look="'.esc_attr($attributes['widget_look']).'"]'; $html = do_shortcode($shortcode); if(isset($_GET['context']) and $_GET['context'] == 'edit' and defined('REST_REQUEST') and REST_REQUEST) $html = str_replace('' . esc_html__('.htaccess file updated', 'gtranslate') . '
'; } } } else { $rewrite_rules = file_get_contents(dirname(__FILE__) . '/url_addon/rewrite.txt'); $rewrite_rules = str_replace('GTRANSLATE_PLUGIN_PATH', str_replace(home_url(), '', plugins_url()) . '/gtranslate', $rewrite_rules); echo '' . esc_html__('Please add the following rules to the top of your .htaccess file', 'gtranslate') . '
'; echo '' . esc_html($rewrite_rules) . ''; } // update main_lang in config.php $config_file = dirname(__FILE__) . '/url_addon/config.php'; if(is_readable($config_file) and wp_is_writable($config_file)) { $config = file_get_contents($config_file); $config = preg_replace('/\$main_lang = \'[a-z-]{2,5}\'/i', '$main_lang = \''.$data['default_language'].'\'', $config); file_put_contents($config_file, $config); } else { echo '
' . esc_html__('Cannot update gtranslate/url_addon/config.php file. Make sure to update it manually and set correct $main_lang.', 'gtranslate') . '
'; } } else { // todo: remove rewrite rules // do nothing } } public static function load_settings($data) { $languages = $data['fincl_langs']; $dropdown_languages = $data['incl_langs']; if($data['widget_look'] == 'dropdown' or $data['widget_look'] == 'globe' or $data['widget_look'] == 'lang_names' or $data['widget_look'] == 'lang_codes') $languages = $dropdown_languages; $url_structure = 'none'; if($data['pro_version']) $url_structure = 'sub_directory'; elseif($data['enterprise_version']) $url_structure = 'sub_domain'; $gt_settings = array( 'default_language' => $data['default_language'], 'languages' => $languages, 'dropdown_languages' => $dropdown_languages, 'url_structure' => $url_structure, 'wrapper_selector' => $data['wrapper_selector'], 'globe_size' => $data['globe_size'], 'globe_color' => $data['globe_color'], 'flag_size' => $data['flag_size'], 'flag_style' => $data['flag_style'], 'custom_domains' => $data['custom_domains'] ? $data['custom_domains_data'] : null, 'float_switcher_open_direction' => $data['float_switcher_open_direction'], 'switcher_open_direction' => $data['switcher_open_direction'], 'native_language_names' => $data['native_language_names'], 'add_new_line' => $data['add_new_line'], 'select_language_label' => $data['select_language_label'], 'detect_browser_language' => $data['detect_browser_language'], 'custom_css' => $data['custom_css'], 'switcher_text_color' => $data['switcher_text_color'], 'switcher_arrow_color' => $data['switcher_arrow_color'], 'switcher_border_color' => $data['switcher_border_color'], 'switcher_background_color' => $data['switcher_background_color'], 'switcher_background_shadow_color' => $data['switcher_background_shadow_color'], 'switcher_background_hover_color' => $data['switcher_background_hover_color'], 'dropdown_text_color' => $data['dropdown_text_color'], 'dropdown_hover_color' => $data['dropdown_hover_color'], 'dropdown_background_color' => $data['dropdown_background_color'], ); $alt_flags = array(); $raw_alt_flags = $data['alt_flags']; // example raw_alt_flags: ['us', 'br', 'ar'] foreach($raw_alt_flags as $country_code) { switch($country_code) { case 'us': $alt_flags['en'] = 'usa'; break; case 'ca': $alt_flags['en'] = 'canada'; break; case 'br': $alt_flags['pt'] = 'brazil'; break; case 'mx': $alt_flags['es'] = 'mexico'; break; case 'ar': $alt_flags['es'] = 'argentina'; break; case 'co': $alt_flags['es'] = 'colombia'; break; case 'qc': $alt_flags['fr'] = 'quebec'; break; default: break; } } $gt_settings['alt_flags'] = $alt_flags; if(!empty($gt_settings['custom_domains'])) $gt_settings['custom_domains'] = json_decode(stripslashes($gt_settings['custom_domains'])); return $gt_settings; } public static function load_defaults(& $data) { if(!is_array($data)) $data = array(); $data['pro_version'] = isset($data['pro_version']) ? $data['pro_version'] : ''; $data['enterprise_version'] = isset($data['enterprise_version']) ? $data['enterprise_version'] : ''; $data['wrapper_selector'] = isset($data['wrapper_selector']) ? $data['wrapper_selector'] : '.gtranslate_wrapper'; $data['custom_domains'] = isset($data['custom_domains']) ? $data['custom_domains'] : ''; $data['custom_domains_data'] = isset($data['custom_domains_data']) ? $data['custom_domains_data'] : ''; $data['url_translation'] = isset($data['url_translation']) ? $data['url_translation'] : ''; $data['add_hreflang_tags'] = isset($data['add_hreflang_tags']) ? $data['add_hreflang_tags'] : ''; $data['email_translation'] = isset($data['email_translation']) ? $data['email_translation'] : ''; $data['email_translation_debug'] = isset($data['email_translation_debug']) ? $data['email_translation_debug'] : ''; $data['show_in_menu'] = isset($data['show_in_menu']) ? $data['show_in_menu'] : ((isset($data['show_in_primary_menu']) and $data['show_in_primary_menu'] == 1) ? 'primary' : ''); $data['floating_language_selector'] = isset($data['floating_language_selector']) ? $data['floating_language_selector'] : 'no'; $data['floating_language_selector'] = str_replace('_sticky', '', $data['floating_language_selector']); $data['native_language_names'] = isset($data['native_language_names']) ? $data['native_language_names'] : ''; $data['enable_cdn'] = isset($data['enable_cdn']) ? $data['enable_cdn'] : ''; $data['detect_browser_language'] = isset($data['detect_browser_language']) ? $data['detect_browser_language'] : ''; $data['add_new_line'] = isset($data['add_new_line']) ? $data['add_new_line'] : 1; $data['select_language_label'] = isset($data['select_language_label']) ? $data['select_language_label'] : 'Select Language'; $data['custom_css'] = isset($data['custom_css']) ? $data['custom_css'] : ''; if(!isset($data['default_language'])) { $locale_map = array('af'=>'af','am'=>'am','arq'=>'ar','ar'=>'ar','ary'=>'ar','az'=>'az','az_TR'=>'az','azb'=>'az','bel'=>'be','bg_BG'=>'bg','bn_BD'=>'bn','bs_BA'=>'bs','ca'=>'ca','bal'=>'ca','ceb'=>'ceb','co'=>'co','cs_CZ'=>'cs','cy'=>'cy','da_DK'=>'da','de_DE'=>'de','de_CH'=>'de','gsw'=>'de','el'=>'el','en_AU'=>'en','en_CA'=>'en','en_NZ'=>'en','en_ZA'=>'en','en_GB'=>'en','eo'=>'eo','es_AR'=>'es','es_CL'=>'es','es_CO'=>'es','es_GT'=>'es','es_MX'=>'es','es_PE'=>'es','es_PR'=>'es','es_ES'=>'es','es_VE'=>'es','et'=>'et','eu'=>'eu','fa_IR'=>'fa','fa_AF'=>'fa','fi'=>'fi','fr_BE'=>'fr','fr_CA'=>'fr','fr_FR'=>'fr','fy'=>'fy','ga'=>'ga','gd'=>'gd','gl_ES'=>'gl','gu'=>'gu','hau'=>'ha','haw_US'=>'haw','hi_IN'=>'hi','hr'=>'hr','hat'=>'ht','hu_HU'=>'hu','hy'=>'hy','id_ID'=>'id','is_IS'=>'is','it_IT'=>'it','he_IL'=>'iw','ja'=>'ja','jv_ID'=>'jw','ka_GE'=>'ka','kk'=>'kk','km'=>'km','kn'=>'kn','ko_KR'=>'ko','ckb'=>'ku','kir'=>'ky','lb_LU'=>'lb','lo'=>'lo','lt_LT'=>'lt','lv'=>'lv','mg_MG'=>'mg','mri'=>'mi','mk_MK'=>'mk','ml_IN'=>'ml','mn'=>'mn','mr'=>'mr','ms_MY'=>'ms','my_MM'=>'my','ne_NP'=>'ne','nl_NL'=>'nl','nl_BE'=>'nl','nb_NO'=>'no','nn_NO'=>'no','pa_IN'=>'pa','pl_PL'=>'pl','ps'=>'ps','pt_BR'=>'pt','pt_PT'=>'pt','ro_RO'=>'ro','ru_RU'=>'ru','snd'=>'sd','si_LK'=>'si','sk_SK'=>'sk','sl_SI'=>'sl','so_SO'=>'so','sq'=>'sq','sr_RS'=>'sr','su_ID'=>'su','sv_SE'=>'sv','sw'=>'sw','ta_IN'=>'ta','ta_LK'=>'ta','te'=>'te','tg'=>'tg','th'=>'th','tr_TR'=>'tr','uk'=>'uk','ur'=>'ur','uz_UZ'=>'uz','vi'=>'vi','xho'=>'xh','yor'=>'yo','zh_CN'=>'zh-CN','zh_HK'=>'zh-CN','zh_TW'=>'zh-TW'); $locale = get_locale(); $data['default_language'] = isset($locale_map[$locale]) ? $locale_map[$locale] : 'en'; } $data['widget_look'] = isset($data['widget_look']) ? $data['widget_look'] : 'float'; $data['flag_size'] = isset($data['flag_size']) ? $data['flag_size'] : 24; $data['flag_style'] = isset($data['flag_style']) ? $data['flag_style'] : '2d'; $data['globe_size'] = isset($data['globe_size']) ? intval($data['globe_size']) : 60; $data['globe_color'] = isset($data['globe_color']) ? sanitize_hex_color($data['globe_color']) : '#66aaff'; $data['incl_langs'] = isset($data['incl_langs']) ? $data['incl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN'); $data['fincl_langs'] = isset($data['fincl_langs']) ? $data['fincl_langs'] : array('en', 'es', 'it', 'pt', 'de', 'fr', 'ru', 'nl', 'ar', 'zh-CN'); $data['alt_flags'] = isset($data['alt_flags']) ? $data['alt_flags'] : array(); $data['switcher_text_color'] = isset($data['switcher_text_color']) ? $data['switcher_text_color'] : '#666'; $data['switcher_arrow_color'] = isset($data['switcher_arrow_color']) ? $data['switcher_arrow_color'] : '#666'; $data['switcher_border_color'] = isset($data['switcher_border_color']) ? $data['switcher_border_color'] : '#ccc'; $data['switcher_background_color'] = isset($data['switcher_background_color']) ? $data['switcher_background_color'] : '#fff'; $data['switcher_background_shadow_color'] = isset($data['switcher_background_shadow_color']) ? $data['switcher_background_shadow_color'] : '#efefef'; $data['switcher_background_hover_color'] = isset($data['switcher_background_hover_color']) ? $data['switcher_background_hover_color'] : '#fff'; $data['dropdown_text_color'] = isset($data['dropdown_text_color']) ? $data['dropdown_text_color'] : '#000'; $data['dropdown_hover_color'] = isset($data['dropdown_hover_color']) ? $data['dropdown_hover_color'] : '#fff'; // #ffc $data['dropdown_background_color'] = isset($data['dropdown_background_color']) ? $data['dropdown_background_color'] : '#eee'; $data['float_switcher_open_direction'] = isset($data['float_switcher_open_direction']) ? $data['float_switcher_open_direction'] : 'top'; $data['switcher_open_direction'] = isset($data['switcher_open_direction']) ? $data['switcher_open_direction'] : 'top'; $data['language_codes'] = (isset($data['language_codes']) and !empty($data['language_codes'])) ? $data['language_codes'] : 'af,sq,am,ar,hy,az,eu,be,bn,bs,bg,ca,ceb,ny,zh-CN,zh-TW,co,hr,cs,da,nl,en,eo,et,tl,fi,fr,fy,gl,ka,de,el,gu,ht,ha,haw,iw,hi,hmn,hu,is,ig,id,ga,it,ja,jw,kn,kk,km,ko,ku,ky,lo,la,lv,lt,lb,mk,mg,ms,ml,mt,mi,mr,mn,my,ne,no,ps,fa,pl,pt,pa,ro,ru,sm,gd,sr,st,sn,sd,si,sk,sl,so,es,su,sw,sv,tg,ta,te,th,tr,uk,ur,uz,vi,cy,xh,yi,yo,zu'; $data['language_codes2'] = (isset($data['language_codes2']) and !empty($data['language_codes2'])) ? $data['language_codes2'] : 'af,sq,am,ar,hy,az,eu,be,bn,bs,bg,ca,ceb,ny,zh-CN,zh-TW,co,hr,cs,da,nl,en,eo,et,tl,fi,fr,fy,gl,ka,de,el,gu,ht,ha,haw,iw,hi,hmn,hu,is,ig,id,ga,it,ja,jw,kn,kk,km,ko,ku,ky,lo,la,lv,lt,lb,mk,mg,ms,ml,mt,mi,mr,mn,my,ne,no,ps,fa,pl,pt,pa,ro,ru,sm,gd,sr,st,sn,sd,si,sk,sl,so,es,su,sw,sv,tg,ta,te,th,tr,uk,ur,uz,vi,cy,xh,yi,yo,zu'; // add missing languages once if(strlen($data['language_codes']) < strlen($data['language_codes2'])) $data['language_codes'] = $data['language_codes2']; } } class GTranslateWidget extends WP_Widget { function __construct() { parent::__construct('gtranslate', esc_html__('GTranslate', 'gtranslate'), array('description' => esc_html__('GTranslate language switcher', 'gtranslate'))); } public function widget($args, $instance) { echo wp_kses_post($args['before_widget']); if(!empty($instance['title'])) { $title = apply_filters('widget_title', $instance['title']); echo wp_kses_post($args['before_title']) . esc_html($title) . wp_kses_post($args['after_title']); } echo wp_kses_post(GTranslate::get_widget_code(array('position' => 'inline', 'wrapper_selector' => '.gtranslate_wrapper'))); echo wp_kses_post($args['after_widget']); } public function form($instance) { $title = !empty($instance['title']) ? $instance['title'] : ''; ?>prefix . '_admin_notice'); if (!isset($gt_settings['disable_admin_notices']) || (isset($gt_settings['disable_admin_notices']) && $gt_settings['disable_admin_notices'] == 0)) { if (current_user_can('manage_options')) { return true; } } return false; } // Primary notice function that can be called from an outside function sending necessary variables public function admin_notice($admin_notices) { // Check options if (!$this->gt_admin_notice()) { return false; } foreach ($admin_notices as $slug => $admin_notice) { // Call for spam protection if ($this->anti_notice_spam()) { return false; } // Check for proper page to display on if (isset( $admin_notices[$slug]['pages']) and is_array( $admin_notices[$slug]['pages'])) { if (!$this->admin_notice_pages($admin_notices[$slug]['pages'])) { return false; } } // Check for required fields if (!$this->required_fields($admin_notices[$slug])) { // Get the current date then set start date to either passed value or current date value and add interval $current_date = current_time("n/j/Y"); $start = (isset($admin_notices[$slug]['start']) ? $admin_notices[$slug]['start'] : $current_date); $start = gmdate("n/j/Y", strtotime($start)); $end = ( isset( $admin_notices[ $slug ]['end'] ) ? $admin_notices[ $slug ]['end'] : $start ); $end = gmdate( "n/j/Y", strtotime( $end ) ); $date_array = explode('/', $start); $interval = (isset($admin_notices[$slug]['int']) ? $admin_notices[$slug]['int'] : 0); $date_array[1] += $interval; $start = gmdate("n/j/Y", mktime(0, 0, 0, $date_array[0], $date_array[1], $date_array[2])); // This is the main notices storage option $admin_notices_option = get_option($this->prefix . '_admin_notice', array()); // Check if the message is already stored and if so just grab the key otherwise store the message and its associated date information if (!array_key_exists( $slug, $admin_notices_option)) { $admin_notices_option[$slug]['start'] = $start; $admin_notices_option[$slug]['int'] = $interval; update_option($this->prefix . '_admin_notice', $admin_notices_option); } // Sanity check to ensure we have accurate information // New date information will not overwrite old date information $admin_display_check = (isset($admin_notices_option[$slug]['dismissed']) ? $admin_notices_option[$slug]['dismissed'] : 0); $admin_display_start = (isset($admin_notices_option[$slug]['start']) ? $admin_notices_option[$slug]['start'] : $start); $admin_display_interval = (isset($admin_notices_option[$slug]['int']) ? $admin_notices_option[$slug]['int'] : $interval); $admin_display_msg = (isset($admin_notices[$slug]['msg']) ? $admin_notices[$slug]['msg'] : ''); $admin_display_title = (isset($admin_notices[$slug]['title']) ? $admin_notices[$slug]['title'] : ''); $admin_display_link = (isset($admin_notices[$slug]['link']) ? $admin_notices[$slug]['link'] : ''); $admin_display_dismissible= (isset($admin_notices[$slug]['dismissible']) ? $admin_notices[$slug]['dismissible'] : true); $output_css = false; // Ensure the notice hasn't been hidden and that the current date is after the start date if ($admin_display_check == 0 and strtotime($admin_display_start) <= strtotime($current_date)) { // Get remaining query string $query_str = add_query_arg($this->prefix . '_admin_notice_ignore', $slug); // Admin notice display output echo '
'; echo wp_kses_post($admin_display_title); echo '
'; echo ''; echo wp_kses_post($admin_display_msg); echo '
'; echo '