Save
This commit is contained in:
67
wp-content/plugins/elementor-addon/assets/css/main.css
Normal file
67
wp-content/plugins/elementor-addon/assets/css/main.css
Normal file
@@ -0,0 +1,67 @@
|
||||
.elementor-widget-language .elementor-language-switcher {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
font-family: inherit;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-current {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-current img {
|
||||
width: 16px;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-current span {
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-dropdown {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
min-width: 100%;
|
||||
margin: 8px 0 0;
|
||||
padding: 6px 0;
|
||||
list-style: none;
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(10px);
|
||||
transition: all 0.25s ease;
|
||||
z-index: 100;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-dropdown li a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 14px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
width: -moz-max-content;
|
||||
width: max-content;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-dropdown li a img {
|
||||
width: 16px;
|
||||
height: auto;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-dropdown li a span {
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher .lang-dropdown li a:hover {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.elementor-widget-language .elementor-language-switcher.is-open .lang-dropdown {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}/*# sourceMappingURL=main.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["main.scss","main.css"],"names":[],"mappings":"AACC;EACC,kBAAA;EACA,qBAAA;EACA,oBAAA;ACAF;ADEE;EACC,aAAA;EACA,mBAAA;EACA,QAAA;EACA,uBAAA;EACA,SAAA;EACA,UAAA;EACA,eAAA;ACAH;ADEG;EACC,WAAA;EACA,YAAA;EACA,cAAA;ACAJ;ADGG;EACC,eAAA;EACA,yBAAA;ACDJ;ADKE;EACC,kBAAA;EACA,SAAA;EACA,OAAA;EACA,eAAA;EACA,eAAA;EACA,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,kBAAA;EACA,0CAAA;EACA,UAAA;EACA,kBAAA;EACA,2BAAA;EACA,0BAAA;EACA,YAAA;ACHH;ADMI;EACC,aAAA;EACA,mBAAA;EACA,QAAA;EACA,iBAAA;EACA,WAAA;EACA,qBAAA;EACA,mBAAA;EACA,uBAAA;EAAA,kBAAA;ACJL;ADMK;EACC,WAAA;EACA,YAAA;ACJN;ADOK;EACC,eAAA;EACA,yBAAA;ACLN;ADQK;EACC,mBAAA;ACNN;ADaG;EACC,UAAA;EACA,mBAAA;EACA,wBAAA;ACXJ","file":"main.css"}
|
||||
81
wp-content/plugins/elementor-addon/assets/css/main.scss
Normal file
81
wp-content/plugins/elementor-addon/assets/css/main.scss
Normal file
@@ -0,0 +1,81 @@
|
||||
.elementor-widget-language {
|
||||
.elementor-language-switcher {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
font-family: inherit;
|
||||
|
||||
.lang-current {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 16px;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
.lang-dropdown {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
min-width: 100%;
|
||||
margin: 8px 0 0;
|
||||
padding: 6px 0;
|
||||
list-style: none;
|
||||
background: #fff;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: translateY(10px);
|
||||
transition: all 0.25s ease;
|
||||
z-index: 100;
|
||||
|
||||
li {
|
||||
a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
padding: 8px 14px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
white-space: nowrap;
|
||||
width: max-content;
|
||||
|
||||
img {
|
||||
width: 16px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: 14px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.is-open {
|
||||
.lang-dropdown {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
wp-content/plugins/elementor-addon/assets/js/main.js
Normal file
9
wp-content/plugins/elementor-addon/assets/js/main.js
Normal file
@@ -0,0 +1,9 @@
|
||||
document.addEventListener('click', function (e) {
|
||||
document.querySelectorAll('.elementor-language-switcher').forEach(function (switcher) {
|
||||
if (switcher.contains(e.target)) {
|
||||
switcher.classList.toggle('is-open');
|
||||
} else {
|
||||
switcher.classList.remove('is-open');
|
||||
}
|
||||
});
|
||||
});
|
||||
45
wp-content/plugins/elementor-addon/elementor-addon.php
Normal file
45
wp-content/plugins/elementor-addon/elementor-addon.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
/**
|
||||
* Plugin Name: Elementor Addon
|
||||
* Description: Simple hello world widgets for Elementor.
|
||||
* Version: 1.0.0
|
||||
* Author: Elementor Developer
|
||||
* Author URI: https://developers.elementor.com/
|
||||
* Text Domain: elementor-addon
|
||||
*
|
||||
* Requires Plugins: elementor
|
||||
* Elementor tested up to: 3.21.0
|
||||
* Elementor Pro tested up to: 3.21.0
|
||||
*/
|
||||
|
||||
function register_hello_world_widget( $widgets_manager ) {
|
||||
require_once( __DIR__ . '/widgets/language.php' );
|
||||
|
||||
$widgets_manager->register( new \Elementor_Language() );
|
||||
}
|
||||
add_action( 'elementor/widgets/register', 'register_hello_world_widget' );
|
||||
|
||||
function enqueue_elementor_addon_styles() {
|
||||
if ( did_action( 'elementor/loaded' ) ) {
|
||||
wp_enqueue_style(
|
||||
'elementor-addon-main-css',
|
||||
plugins_url( 'assets/css/main.css', __FILE__ ),
|
||||
[],
|
||||
'1.0.0'
|
||||
);
|
||||
}
|
||||
}
|
||||
add_action( 'wp_enqueue_scripts', 'enqueue_elementor_addon_styles' );
|
||||
|
||||
function enqueue_elementor_addon_scripts() {
|
||||
if ( did_action( 'elementor/loaded' ) ) {
|
||||
wp_enqueue_script(
|
||||
'elementor-addon-main-js',
|
||||
plugins_url( 'assets/js/main.js', __FILE__ ),
|
||||
[ 'jquery' ],
|
||||
'1.0.0',
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
add_action( 'wp_enqueue_scripts', 'enqueue_elementor_addon_scripts' );
|
||||
95
wp-content/plugins/elementor-addon/widgets/language.php
Normal file
95
wp-content/plugins/elementor-addon/widgets/language.php
Normal file
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
if (!defined('ABSPATH')) {
|
||||
exit;
|
||||
}
|
||||
|
||||
use Elementor\Controls_Manager;
|
||||
// use Elementor\Utils;
|
||||
use Elementor\Icons_Manager;
|
||||
// use Elementor\Group_Control_Text_Shadow;
|
||||
// use Elementor\Core\Kits\Documents\Tabs\Global_Colors;
|
||||
// use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
|
||||
// use Elementor\Group_Control_Text_Stroke;
|
||||
// use Elementor\Group_Control_Typography;
|
||||
|
||||
class Elementor_Language extends \Elementor\Widget_Base {
|
||||
|
||||
public function get_name() {
|
||||
return 'language';
|
||||
}
|
||||
|
||||
public function get_title() {
|
||||
return esc_html__( 'Language', 'elementor-addon' );
|
||||
}
|
||||
|
||||
public function get_icon() {
|
||||
return 'eicon-code';
|
||||
}
|
||||
|
||||
public function get_categories() {
|
||||
return [ 'basic' ];
|
||||
}
|
||||
|
||||
public function get_keywords() {
|
||||
return [ 'language', 'translate'];
|
||||
}
|
||||
|
||||
protected function register_controls() {
|
||||
$this->start_controls_section(
|
||||
'section_setting',
|
||||
[
|
||||
'label' => esc_html__( 'Settings', 'elementor' ),
|
||||
'tab' => Controls_Manager::TAB_CONTENT,
|
||||
]
|
||||
);
|
||||
|
||||
$this->end_controls_section();
|
||||
}
|
||||
|
||||
protected function render() {
|
||||
|
||||
if ( ! function_exists( 'pll_the_languages' ) ) {
|
||||
echo '<!-- Polylang not active -->';
|
||||
return;
|
||||
}
|
||||
|
||||
$languages = pll_the_languages( [
|
||||
'raw' => 1,
|
||||
] );
|
||||
|
||||
if ( empty( $languages ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$current_lang = null;
|
||||
foreach ( $languages as $lang ) {
|
||||
if ( $lang['current_lang'] ) {
|
||||
$current_lang = $lang;
|
||||
break;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="elementor-language-switcher">
|
||||
<button class="lang-current">
|
||||
<img src="<?php echo esc_url( $current_lang['flag'] ); ?>" alt="<?php echo esc_attr( $current_lang['name'] ); ?>">
|
||||
<!-- <span><?php echo esc_html( $current_lang['slug'] ); ?></span> -->
|
||||
</button>
|
||||
|
||||
<ul class="lang-dropdown">
|
||||
<?php foreach ( $languages as $lang ) :
|
||||
if ( $lang['current_lang'] ) continue;
|
||||
?>
|
||||
<li>
|
||||
<a href="<?php echo esc_url( $lang['url'] ); ?>">
|
||||
<img src="<?php echo esc_url( $lang['flag'] ); ?>" alt="<?php echo esc_attr( $lang['name'] ); ?>">
|
||||
<!-- <span><?php echo esc_html( $lang['slug'] ); ?></span> -->
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user