/**
  * Outputs the content of the widget
  *
  * @param array $args
  * @param array $instance
  */
 public function widget($args, $instance)
 {
     if (function_exists('wpml_home_url_ls_hide_check') && wpml_home_url_ls_hide_check()) {
         return;
     }
     language_selector_widget($args);
 }
/** Hook function */
function toolset_starter_lang_switcher($items, $args)
{
    $multilingual = false;
    $languages = '';
    //Check if we are on multilingual mode
    $languages = apply_filters('wpml_active_languages', NULL, array('skip_missing' => 0));
    if (!empty($languages) && is_array($languages)) {
        //multilingual
        global $sitepress_settings;
        $multilingual = true;
    }
    //Let's retrieved languages
    if ($multilingual) {
        if (empty($languages)) {
            //We have empty languages.
            //Test for backward compatibility with older WPML versions where active languages API is not yet defined
            if (function_exists('icl_get_languages')) {
                $languages = icl_get_languages('skip_missing=0');
            }
        }
        //Languages set, implies WPML is active
        global $is_lang_selector_dropdown;
        if (!empty($sitepress_settings['display_ls_in_menu']) && (!function_exists('wpml_home_url_ls_hide_check') || !wpml_home_url_ls_hide_check()) && $is_lang_selector_dropdown) {
            /** We want to display our customized lang switcher ONLY if
               	/*  WPML -> Languages -> Language switcher options -> Language switcher in the WP Menu -> Display the language switcher in the WP Menu is checked
                */
            /** TOOLSET STARTER 1.3.4: Add the customized lang switcher to the correct menu set in 'Display the language switcher in the WP Menu' */
            /** START */
            //Get the menu for WPML language switcher
            $menu_match = false;
            if (isset($sitepress_settings['menu_for_ls'])) {
                $menu_for_ls = $sitepress_settings['menu_for_ls'];
                $menu_for_ls = intval($menu_for_ls);
                if ($menu_for_ls > 0) {
                    //menu defined, get the menu slug corresponding this ID
                    $menu_details = get_term($menu_for_ls, 'nav_menu');
                    $menu_for_ls_slug_setting = $menu_details->slug;
                    if (isset($args->menu->slug)) {
                        $menu_slug_under_process = $args->menu->slug;
                        if ($menu_slug_under_process == $menu_for_ls_slug_setting) {
                            $menu_match = true;
                        }
                    }
                }
            }
            /** END */
            if (1 < count($languages) && $menu_match) {
                $ll_flag = $languages[ICL_LANGUAGE_CODE]['country_flag_url'];
                $ll_url = $languages[ICL_LANGUAGE_CODE]['url'];
                $ll_code = $languages[ICL_LANGUAGE_CODE]['language_code'];
                $ll_nname = $languages[ICL_LANGUAGE_CODE]['native_name'];
                $ll_tname = $languages[ICL_LANGUAGE_CODE]['translated_name'];
                //Flag content
                //Check if flags are enabled
                $flags_enabled = false;
                if (isset($sitepress_settings['icl_lso_flags'])) {
                    $flag_setting = $sitepress_settings['icl_lso_flags'];
                    if ($flag_setting) {
                        $flags_enabled = true;
                    }
                }
                //Language name in display language
                $lang_name_disp_language_enabled = false;
                if (isset($sitepress_settings['icl_lso_display_lang'])) {
                    $icl_lso_display_lang_setting = $sitepress_settings['icl_lso_display_lang'];
                    if ($icl_lso_display_lang_setting) {
                        $lang_name_disp_language_enabled = true;
                    }
                }
                //Native language name
                $native_lang_name_enabled = false;
                if (isset($sitepress_settings['icl_lso_native_lang'])) {
                    $icl_lso_native_lang_setting = $sitepress_settings['icl_lso_native_lang'];
                    if ($icl_lso_native_lang_setting) {
                        $native_lang_name_enabled = true;
                    }
                }
                $flag_content_main = '';
                if ($flags_enabled) {
                    $flag_content_main = '<img src="' . $ll_flag . '" height="12" alt="' . $ll_code . '" width="18" />';
                }
                $native_lang_main = '';
                if ($native_lang_name_enabled) {
                    $native_lang_main = $ll_nname;
                }
                $show_parenthesis = true;
                if (!$native_lang_name_enabled) {
                    //Native lang off, don't show parenthesis
                    $show_parenthesis = false;
                }
                $open_parenthesis = '';
                $close_parenthesis = '';
                if ($show_parenthesis) {
                    $open_parenthesis = '(';
                    $close_parenthesis = ')';
                }
                $lang_name_display_lang_main = '';
                if ($lang_name_disp_language_enabled) {
                    $lang_name_display_lang_main = $open_parenthesis . $ll_tname . $close_parenthesis;
                }
                if ($native_lang_name_enabled && $lang_name_disp_language_enabled) {
                    $lang_name_display_lang_main = '';
                }
                $items = $items . '<li class="dropdown lang"><a class="dropdown-toggle" data-toggle="dropdown" data-target="#" href="' . $ll_url . '">' . $flag_content_main . ' ' . $native_lang_main . ' ' . $lang_name_display_lang_main . '</a><ul class=dropdown-menu>';
                foreach ($languages as $l) {
                    if (!$l['active']) {
                        $flag_content_loop = '';
                        $lang_name_disp_content = '';
                        $native_lang_disp_content = '';
                        if ($flags_enabled) {
                            $flag_content_loop = '<img src="' . $l['country_flag_url'] . '" height="12" alt="' . $l['language_code'] . '" width="18" />';
                        }
                        if ($lang_name_disp_language_enabled) {
                            $lang_name_disp_content = $open_parenthesis . $l['translated_name'] . $close_parenthesis;
                        }
                        if ($native_lang_name_enabled) {
                            $native_lang_disp_content = $l['native_name'];
                        }
                        $items = $items . '<li class="menu-item"><a href="' . $l['url'] . '">' . $flag_content_loop . ' ' . $native_lang_disp_content . ' ' . $lang_name_disp_content . '</a></li>';
                    }
                }
            }
        }
    }
    return $items;
}
Пример #3
0
    static function get_language_selector_footer()
    {
        global $sitepress;
        $language_selector_footer = '';
        $languages = array();
        if (!function_exists('wpml_home_url_ls_hide_check') || !wpml_home_url_ls_hide_check()) {
            $languages = $sitepress->footer_preview ? icl_get_languages() : $sitepress->get_ls_languages();
        }
        if (!empty($languages)) {
            $language_selector_footer = '
							<div id="lang_sel_footer">
									<ul>
									';
            foreach ($languages as $lang) {
                $alt_title_lang = $sitepress->get_setting('icl_lso_display_lang') ? esc_attr($lang['translated_name']) : esc_attr($lang['native_name']);
                $language_selector_footer .= '    <li>';
                $language_selector_footer .= '<a href="' . apply_filters('WPML_filter_link', $lang['url'], $lang) . '"';
                if ($lang['active']) {
                    $language_selector_footer .= ' class="lang_sel_sel"';
                }
                $language_selector_footer .= '>';
                if ($sitepress->get_setting('icl_lso_flags') || $sitepress->footer_preview) {
                    $language_selector_footer .= '<img src="' . $lang['country_flag_url'] . '" alt="' . $alt_title_lang . '" class="iclflag" title="' . $alt_title_lang . '" ';
                }
                if (!$sitepress->get_setting('icl_lso_flags') && $sitepress->footer_preview) {
                    $language_selector_footer .= ' style="display:none;"';
                }
                if ($sitepress->get_setting('icl_lso_flags') || $sitepress->footer_preview) {
                    $language_selector_footer .= ' />&nbsp;';
                }
                if ($sitepress->footer_preview) {
                    $lang_native = $lang['native_name'];
                    if ($sitepress->get_setting('icl_lso_native_lang')) {
                        $lang_native_hidden = false;
                    } else {
                        $lang_native_hidden = true;
                    }
                    $lang_translated = $lang['translated_name'];
                    if ($sitepress->get_setting('icl_lso_display_lang')) {
                        $lang_translated_hidden = false;
                    } else {
                        $lang_translated_hidden = true;
                    }
                } else {
                    if ($sitepress->get_setting('icl_lso_native_lang')) {
                        $lang_native = $lang['native_name'];
                    } else {
                        $lang_native = false;
                    }
                    if ($sitepress->get_setting('icl_lso_display_lang')) {
                        $lang_translated = $lang['translated_name'];
                    } else {
                        $lang_translated = false;
                    }
                    $lang_native_hidden = false;
                    $lang_translated_hidden = false;
                }
                $language_selector_footer .= icl_disp_language($lang_native, $lang_translated, $lang_native_hidden, $lang_translated_hidden);
                $language_selector_footer .= '</a>';
                $language_selector_footer .= '</li>
									';
            }
            $language_selector_footer .= '</ul>
							</div>';
        }
        return $language_selector_footer;
    }
Пример #4
0
 function get_language_selector()
 {
     if (!function_exists('wpml_home_url_ls_hide_check') || !wpml_home_url_ls_hide_check()) {
         // Mobile or auto
         $type = $this->settings['icl_lang_sel_type'];
         $mobile = $this->settings['icl_lang_sel_stype'] === 'mobile' || ($type === 'mobile' || $type === 'mobile-auto' && (!empty($this->is_tablet) || !empty($this->is_mobile)));
         global $icl_language_switcher_preview;
         if (!$mobile && ($type === 'list' || $icl_language_switcher_preview)) {
             global $icl_language_switcher;
             $icl_language_switcher->widget_list();
         }
         return $mobile === true ? $this->get_mobile_language_selector() : (!$icl_language_switcher_preview && $type === 'list' ? '' : $this->get_desktop_language_selector());
     } else {
         return '';
     }
 }
<?php

/* 
 * DEPRECATED FILE!
 * 
 * please use $sitepress->get_desktop_language_selector() instead of including this file. 
 */
if (function_exists('wpml_home_url_ls_hide_check') && wpml_home_url_ls_hide_check()) {
    return;
}
global $w_this_lang;
if ($w_this_lang['code'] == 'all') {
    $main_language['native_name'] = __('All languages', 'sitepress');
}
if (empty($main_language)) {
    $main_language['native_name'] = $w_this_lang['display_name'];
    $main_language['translated_name'] = $w_this_lang['display_name'];
    $main_language['language_code'] = $w_this_lang['code'];
    if ($this->settings['icl_lso_flags'] || $icl_language_switcher_preview) {
        $flag = $this->get_flag($w_this_lang['code']);
        if ($flag->from_template) {
            $wp_upload_dir = wp_upload_dir();
            $main_language['country_flag_url'] = $wp_upload_dir['baseurl'] . '/flags/' . $flag->flag;
        } else {
            $main_language['country_flag_url'] = ICL_PLUGIN_URL . '/res/flags/' . $flag->flag;
        }
    }
}
?>
<div id="lang_sel"<?php 
if ($this->settings['icl_lang_sel_type'] == 'list') {
Пример #6
0
<?php

/* 
 * DEPRECATED FILE!
 * 
 * please use $sitepress->get_desktop_language_selector() instead of including this file. 
 */
global $sitepress;
if ($sitepress === null || function_exists('wpml_home_url_ls_hide_check') && wpml_home_url_ls_hide_check()) {
    return;
}
echo $sitepress->get_desktop_language_selector();
Пример #7
0
 function language_selector_footer()
 {
     global $sitepress;
     if (function_exists('wpml_home_url_ls_hide_check') && wpml_home_url_ls_hide_check()) {
         return;
     }
     $languages = $this->footer_preview ? icl_get_languages() : $sitepress->get_ls_languages();
     if (!empty($languages)) {
         echo '
             <div id="lang_sel_footer">
                 <ul>
                 ';
         foreach ($languages as $lang) {
             $alt_title_lang = $this->settings['icl_lso_display_lang'] ? esc_attr($lang['translated_name']) : esc_attr($lang['native_name']);
             echo '    <li>';
             echo '<a href="' . apply_filters('WPML_filter_link', $lang['url'], $lang) . '"';
             if ($lang['active']) {
                 echo ' class="lang_sel_sel"';
             }
             echo '>';
             if ($this->settings['icl_lso_flags'] || $this->footer_preview) {
                 echo '<img src="' . $lang['country_flag_url'] . '" alt="' . $alt_title_lang . '" class="iclflag" title="' . $alt_title_lang . '" ';
             }
             if (!$this->settings['icl_lso_flags'] && $this->footer_preview) {
                 echo ' style="display:none;"';
             }
             if ($this->settings['icl_lso_flags'] || $this->footer_preview) {
                 echo ' />&nbsp;';
             }
             //if(!$l['active']) echo '</a>';
             //if(!$l['active']) echo '<a href="'.$l['url'].'">';
             if ($this->footer_preview) {
                 $lang_native = $lang['native_name'];
                 if ($this->settings['icl_lso_native_lang']) {
                     $lang_native_hidden = false;
                 } else {
                     $lang_native_hidden = true;
                 }
                 $lang_translated = $lang['translated_name'];
                 if ($this->settings['icl_lso_display_lang']) {
                     $lang_translated_hidden = false;
                 } else {
                     $lang_translated_hidden = true;
                 }
             } else {
                 if ($this->settings['icl_lso_native_lang']) {
                     $lang_native = $lang['native_name'];
                 } else {
                     $lang_native = false;
                 }
                 if ($this->settings['icl_lso_display_lang']) {
                     $lang_translated = $lang['translated_name'];
                 } else {
                     $lang_translated = false;
                 }
                 $lang_native_hidden = false;
                 $lang_translated_hidden = false;
             }
             echo icl_disp_language($lang_native, $lang_translated, $lang_native_hidden, $lang_translated_hidden);
             //echo icl_disp_language( $this->settings['icl_lso_native_lang'] ? $l['native_name'] : null, $this->settings['icl_lso_display_lang'] ? $l['translated_name'] : null );
             //if(!$l['active']) echo '</a>';
             echo '</a>';
             echo '</li>
                 ';
         }
         echo '</ul>
             </div>';
     }
 }