array(), 'list' => array(), ); if ( $source == 'wpml' AND ! function_exists( 'icl_get_languages' ) ) { return; } if ( $source == 'polylang' AND ! function_exists( 'pll_the_languages' ) ) { return; } // Custom Links if ( $source == 'own' ) { foreach ( $links as $link ) { $link_atts = usof_get_link_atts( $link['url'] ); // TODO: change it to us_generate_link_atts if ( ! isset( $link_atts['href'] ) ) { $link_atts['href'] = ''; } $icon = ( ! empty( $link['icon'] ) ) ? us_prepare_icon_tag( $link['icon'] ) : ''; $data['list'][] = array( 'icon' => $icon, 'title' => $link['label'], 'url' => ( substr( $link_atts['href'], 0, 4 ) == 'http' OR substr( $link_atts['href'], 0, 1 ) == '/' OR strpos( $link_atts['href'], '#' ) !== FALSE OR strpos( $link_atts['href'], '?' ) !== FALSE ) ? $link_atts['href'] : ( '//' . $link_atts['href'] ), 'target' => ( isset( $link_atts['target'] ) ) ? $link_atts['target'] : NULL, ); } // WPML Language Switcher } elseif ( $source == 'wpml' AND function_exists( 'icl_get_languages' ) ) { $languages = apply_filters( 'wpml_active_languages', NULL, array( 'skip_missing' => 0 ) ); foreach ( $languages as $language ) { $data_language = array(); $data_language['title'] = $data_language['icon'] = ''; if ( in_array( 'native_lang', $wpml_switcher ) ) { $data_language['title'] = $language['native_name']; if ( in_array( 'display_lang', $wpml_switcher ) AND ( $language['native_name'] != $language['translated_name'] ) ) { $data_language['title'] .= ' (' . $language['translated_name'] . ')'; } } elseif ( in_array( 'display_lang', $wpml_switcher ) ) { $data_language['title'] = $language['translated_name']; } if ( in_array( 'flag', $wpml_switcher ) ) { $data_language['flag'] = $language['country_flag_url']; $data_language['code'] = $language['language_code']; } if ( $language['active'] ) { $data['current'] = $data_language; } else { $data_language['url'] = $language['url']; $data['list'][] = $data_language; } } // Polylang Language Switcher } elseif ( $source == 'polylang' AND function_exists( 'pll_the_languages' ) ) { $pll_langs = pll_the_languages( array( 'raw' => 1 ) ); foreach ( $pll_langs as $pll_lang ) { $data_language = array( 'title' => $pll_lang['name'], 'flag' => $pll_lang['flag'], 'code' => $pll_lang['slug'], 'icon' => '', // set empty icon ); if ( $pll_lang['current_lang'] ) { $data['current'] = $data_language; } else { $data_language['url'] = $pll_lang['url']; $data['list'][] = $data_language; } } } if ( in_array( $source, array( 'sidebar', 'own' ) ) ) { $data['current']['title'] = $link_title; $data['current']['icon'] = us_prepare_icon_tag( $link_icon ); } // Output the element $output = '