From 19b159cab1cf4e02a7475e6e0294790451562015 Mon Sep 17 00:00:00 2001 From: Roman Pyrih Date: Mon, 29 Dec 2025 11:20:03 +0100 Subject: [PATCH] Save --- .../elementor-addon/assets/css/main.css | 67 ++++++++++ .../elementor-addon/assets/css/main.css.map | 1 + .../elementor-addon/assets/css/main.scss | 81 +++++++++++++ .../plugins/elementor-addon/assets/js/main.js | 9 ++ .../elementor-addon/elementor-addon.php | 45 +++++++ .../elementor-addon/widgets/language.php | 95 +++++++++++++++ .../hello-elementor/assets/css/custom.css | 4 + .../hello-elementor/assets/css/custom.css.map | 2 +- .../hello-elementor/assets/css/custom.scss | 114 +++++++++--------- .../themes/hello-elementor/functions.php | 13 +- 10 files changed, 374 insertions(+), 57 deletions(-) create mode 100644 wp-content/plugins/elementor-addon/assets/css/main.css create mode 100644 wp-content/plugins/elementor-addon/assets/css/main.css.map create mode 100644 wp-content/plugins/elementor-addon/assets/css/main.scss create mode 100644 wp-content/plugins/elementor-addon/assets/js/main.js create mode 100644 wp-content/plugins/elementor-addon/elementor-addon.php create mode 100644 wp-content/plugins/elementor-addon/widgets/language.php diff --git a/wp-content/plugins/elementor-addon/assets/css/main.css b/wp-content/plugins/elementor-addon/assets/css/main.css new file mode 100644 index 0000000..fbe769d --- /dev/null +++ b/wp-content/plugins/elementor-addon/assets/css/main.css @@ -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 */ \ No newline at end of file diff --git a/wp-content/plugins/elementor-addon/assets/css/main.css.map b/wp-content/plugins/elementor-addon/assets/css/main.css.map new file mode 100644 index 0000000..d32ced3 --- /dev/null +++ b/wp-content/plugins/elementor-addon/assets/css/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"} \ No newline at end of file diff --git a/wp-content/plugins/elementor-addon/assets/css/main.scss b/wp-content/plugins/elementor-addon/assets/css/main.scss new file mode 100644 index 0000000..b2d4b44 --- /dev/null +++ b/wp-content/plugins/elementor-addon/assets/css/main.scss @@ -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); + } + } + } +} diff --git a/wp-content/plugins/elementor-addon/assets/js/main.js b/wp-content/plugins/elementor-addon/assets/js/main.js new file mode 100644 index 0000000..bc5c1f6 --- /dev/null +++ b/wp-content/plugins/elementor-addon/assets/js/main.js @@ -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'); + } + }); +}); diff --git a/wp-content/plugins/elementor-addon/elementor-addon.php b/wp-content/plugins/elementor-addon/elementor-addon.php new file mode 100644 index 0000000..b6ac20d --- /dev/null +++ b/wp-content/plugins/elementor-addon/elementor-addon.php @@ -0,0 +1,45 @@ +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' ); \ No newline at end of file diff --git a/wp-content/plugins/elementor-addon/widgets/language.php b/wp-content/plugins/elementor-addon/widgets/language.php new file mode 100644 index 0000000..2112f8f --- /dev/null +++ b/wp-content/plugins/elementor-addon/widgets/language.php @@ -0,0 +1,95 @@ +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 ''; + 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; + } + } + ?> + +
+ + + +
+ +