Changeset 3479233
- Timestamp:
- 03/10/2026 03:47:26 PM (3 weeks ago)
- Location:
- clonable
- Files:
-
- 136 added
- 2 deleted
- 21 edited
-
tags/2.9.5 (added)
-
tags/2.9.5/Bootstrap.php (added)
-
tags/2.9.5/clonable-wp.php (added)
-
tags/2.9.5/controllers (added)
-
tags/2.9.5/controllers/Controller.php (added)
-
tags/2.9.5/controllers/DashboardController.php (added)
-
tags/2.9.5/controllers/EmailTranslationsController.php (added)
-
tags/2.9.5/controllers/LandingPageController.php (added)
-
tags/2.9.5/controllers/LanguageSwitcherController.php (added)
-
tags/2.9.5/controllers/LanguageTagController.php (added)
-
tags/2.9.5/controllers/SettingController.php (added)
-
tags/2.9.5/controllers/WoocommerceController.php (added)
-
tags/2.9.5/controllers/index.php (added)
-
tags/2.9.5/exceptions (added)
-
tags/2.9.5/exceptions/ApiException.php (added)
-
tags/2.9.5/exceptions/CurlException.php (added)
-
tags/2.9.5/exceptions/ValidationException.php (added)
-
tags/2.9.5/helpers (added)
-
tags/2.9.5/helpers/Functions.php (added)
-
tags/2.9.5/helpers/Html.php (added)
-
tags/2.9.5/helpers/Json.php (added)
-
tags/2.9.5/helpers/Locales.php (added)
-
tags/2.9.5/helpers/MultiCurrency.php (added)
-
tags/2.9.5/helpers/Session.php (added)
-
tags/2.9.5/helpers/TextTranslator.php (added)
-
tags/2.9.5/helpers/UrlTranslator.php (added)
-
tags/2.9.5/helpers/clonable-locales-list.php (added)
-
tags/2.9.5/helpers/index.php (added)
-
tags/2.9.5/images (added)
-
tags/2.9.5/images/Logo_Icon_white.png (added)
-
tags/2.9.5/images/Logo_Icon_white.svg (added)
-
tags/2.9.5/images/clonable-full-logo.png (added)
-
tags/2.9.5/images/clonable.png (added)
-
tags/2.9.5/images/configure-wordpress-thumbnail.png (added)
-
tags/2.9.5/images/flags.png (added)
-
tags/2.9.5/images/index.php (added)
-
tags/2.9.5/images/language-switcher-thumbnail.png (added)
-
tags/2.9.5/index.php (added)
-
tags/2.9.5/middleware (added)
-
tags/2.9.5/middleware/Auth.php (added)
-
tags/2.9.5/middleware/ClonedSite.php (added)
-
tags/2.9.5/middleware/MiddlewareHandler.php (added)
-
tags/2.9.5/middleware/MiddlewareInterface.php (added)
-
tags/2.9.5/middleware/WooCommerce.php (added)
-
tags/2.9.5/middleware/index.php (added)
-
tags/2.9.5/models (added)
-
tags/2.9.5/models/ApiKey.php (added)
-
tags/2.9.5/models/ClonableWooCommerce.php (added)
-
tags/2.9.5/models/ClonedSite.php (added)
-
tags/2.9.5/models/EmailTranslations.php (added)
-
tags/2.9.5/models/LanguageSwitcher.php (added)
-
tags/2.9.5/models/LanguageTag.php (added)
-
tags/2.9.5/models/Settings.php (added)
-
tags/2.9.5/models/Site.php (added)
-
tags/2.9.5/models/index.php (added)
-
tags/2.9.5/objects (added)
-
tags/2.9.5/objects/ApiResponse.php (added)
-
tags/2.9.5/objects/CircuitBreaker.php (added)
-
tags/2.9.5/objects/ClonableConfig.php (added)
-
tags/2.9.5/objects/ClonableResponse.php (added)
-
tags/2.9.5/objects/CurlBuilder.php (added)
-
tags/2.9.5/objects/ExcludedProductTerm.php (added)
-
tags/2.9.5/objects/Notification.php (added)
-
tags/2.9.5/objects/index.php (added)
-
tags/2.9.5/readme-da_DK.txt (added)
-
tags/2.9.5/readme-de_DE.txt (added)
-
tags/2.9.5/readme-es_ES.txt (added)
-
tags/2.9.5/readme-fr_FR.txt (added)
-
tags/2.9.5/readme-it_IT.txt (added)
-
tags/2.9.5/readme-nb_NO.txt (added)
-
tags/2.9.5/readme-nl_NL.txt (added)
-
tags/2.9.5/readme-sv_SE.txt (added)
-
tags/2.9.5/readme.txt (added)
-
tags/2.9.5/routes (added)
-
tags/2.9.5/routes/Router.php (added)
-
tags/2.9.5/routes/index.php (added)
-
tags/2.9.5/services (added)
-
tags/2.9.5/services/AdminUIService.php (added)
-
tags/2.9.5/services/AllowedHostsService.php (added)
-
tags/2.9.5/services/ApiService.php (added)
-
tags/2.9.5/services/CacheService.php (added)
-
tags/2.9.5/services/ClonableWooCommerceService.php (added)
-
tags/2.9.5/services/EmailTranslationsService.php (added)
-
tags/2.9.5/services/LanguageSwitcherService.php (added)
-
tags/2.9.5/services/LanguageTagService.php (added)
-
tags/2.9.5/services/LocaleService.php (added)
-
tags/2.9.5/services/MultiCurrencyService.php (added)
-
tags/2.9.5/services/ShortCodeService.php (added)
-
tags/2.9.5/services/SubfolderService.php (added)
-
tags/2.9.5/services/SyncService.php (added)
-
tags/2.9.5/services/index.php (added)
-
tags/2.9.5/services/modules (added)
-
tags/2.9.5/services/modules/DataPanelModule.php (added)
-
tags/2.9.5/services/modules/ExclusionModule.php (added)
-
tags/2.9.5/services/modules/ProductImporterModule.php (added)
-
tags/2.9.5/services/modules/TaxonomyModule.php (added)
-
tags/2.9.5/services/modules/index.php (added)
-
tags/2.9.5/traits (added)
-
tags/2.9.5/traits/Forms.php (added)
-
tags/2.9.5/traits/PluginCheck.php (added)
-
tags/2.9.5/traits/Validation.php (added)
-
tags/2.9.5/traits/index.php (added)
-
tags/2.9.5/uninstall.php (added)
-
tags/2.9.5/views (added)
-
tags/2.9.5/views/DashboardView.php (added)
-
tags/2.9.5/views/EmailTranslationsView.php (added)
-
tags/2.9.5/views/LanguageSwitcherView.php (added)
-
tags/2.9.5/views/LanguageTagView.php (added)
-
tags/2.9.5/views/Layout.php (added)
-
tags/2.9.5/views/OnboardingView.php (added)
-
tags/2.9.5/views/SettingsView.php (added)
-
tags/2.9.5/views/ViewInterface.php (added)
-
tags/2.9.5/views/WoocommerceView.php (added)
-
tags/2.9.5/views/css (added)
-
tags/2.9.5/views/css/clonable-admin-bar.css (added)
-
tags/2.9.5/views/css/clonable-extra-button.css (added)
-
tags/2.9.5/views/css/clonable-global.css (added)
-
tags/2.9.5/views/css/clonable-language-switcher.css (added)
-
tags/2.9.5/views/css/clonable-thumbnails.css (added)
-
tags/2.9.5/views/css/clonable-woocommerce.css (added)
-
tags/2.9.5/views/css/clonable.css (added)
-
tags/2.9.5/views/css/fomantic-dropdown.css (added)
-
tags/2.9.5/views/css/fomantic-transition.css (added)
-
tags/2.9.5/views/css/freakflags.css (added)
-
tags/2.9.5/views/css/index.php (added)
-
tags/2.9.5/views/index.php (added)
-
tags/2.9.5/views/scripts (added)
-
tags/2.9.5/views/scripts/alpine.js (added)
-
tags/2.9.5/views/scripts/dohjs.js (added)
-
tags/2.9.5/views/scripts/email-translations.js (added)
-
tags/2.9.5/views/scripts/fomantic-dropdown.js (added)
-
tags/2.9.5/views/scripts/fomantic-transition.js (added)
-
tags/2.9.5/views/scripts/index.php (added)
-
tags/2.9.5/views/scripts/language-switcher.js (added)
-
tags/2.9.5/views/scripts/onload.js (added)
-
tags/2.9.5/views/scripts/woocommerce-clone-field.js (added)
-
trunk/clonable-wp.php (modified) (2 diffs)
-
trunk/controllers/LanguageSwitcherController.php (modified) (1 diff)
-
trunk/helpers/Html.php (modified) (3 diffs)
-
trunk/models/LanguageSwitcher.php (modified) (1 diff)
-
trunk/readme-da_DK.txt (modified) (2 diffs)
-
trunk/readme-de_DE.txt (modified) (2 diffs)
-
trunk/readme-es_ES.txt (modified) (2 diffs)
-
trunk/readme-fr_FR.txt (modified) (2 diffs)
-
trunk/readme-it_IT.txt (modified) (2 diffs)
-
trunk/readme-nb_NO.txt (modified) (2 diffs)
-
trunk/readme-nl_NL.txt (modified) (2 diffs)
-
trunk/readme-sv_SE.txt (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/services/LanguageSwitcherService.php (modified) (5 diffs)
-
trunk/services/modules/ExclusionModule.php (modified) (1 diff)
-
trunk/traits/WooCommerceCheck.php (deleted)
-
trunk/views/DashboardView.php (modified) (2 diffs)
-
trunk/views/LanguageSwitcherView.php (modified) (2 diffs)
-
trunk/views/Layout.php (modified) (1 diff)
-
trunk/views/OnboardingView.php (modified) (1 diff)
-
trunk/views/css/clonable-language-switcher.css (modified) (2 diffs)
-
trunk/views/css/wp-admin-bar.css (deleted)
-
trunk/views/scripts/language-switcher.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
clonable/trunk/clonable-wp.php
r3470351 r3479233 5 5 Description: Official plugin for improving your clones made with Clonable. 6 6 Plugin URI: https://kb.clonable.net/en/introduction/getting-started/wordpress#de-clonable-plug-in-downloaden 7 Version: 2.9. 47 Version: 2.9.5 8 8 Author: Clonable BV 9 9 Author URI: https://www.clonable.net … … 126 126 127 127 define('CLONABLE_NAME', 'Clonable'); 128 define('CLONABLE_VERSION', '2.9. 4');128 define('CLONABLE_VERSION', '2.9.5'); 129 129 130 130 if (defined('WP_CLI') && WP_CLI) { -
clonable/trunk/controllers/LanguageSwitcherController.php
r3470351 r3479233 57 57 } 58 58 59 public function clonable_disable_language_switcher_styles_validate($input) { 60 return $this->validate_checkbox($input, "clonable_disable_language_switcher_styles"); 61 } 62 59 63 public function clonable_size_validate($input) { 60 64 return $this->validate_select($input, array("sm", "md", "lg"), "clonable_size"); -
clonable/trunk/helpers/Html.php
r3470351 r3479233 95 95 */ 96 96 public static function flags() { 97 self::include_css("freakflags.css" );97 self::include_css("freakflags.css", CLONABLE_VERSION); 98 98 $plugin_folder_name = basename(dirname(__FILE__, 2)); 99 99 $wp_content = basename(WP_CONTENT_DIR); … … 114 114 */ 115 115 public static function include_fomantic_dropdown() { 116 self::include_css("fomantic-dropdown.css" );117 self::include_css("fomantic-transition.css" );116 self::include_css("fomantic-dropdown.css", CLONABLE_VERSION); 117 self::include_css("fomantic-transition.css", CLONABLE_VERSION); 118 118 self::flags(); 119 self::include_jquery_script("fomantic-dropdown.js" );120 self::include_jquery_script("fomantic-transition.js" );121 self::include_jquery_script("onload.js", array('strategy' => 'defer' ));119 self::include_jquery_script("fomantic-dropdown.js", array('version' => CLONABLE_VERSION)); 120 self::include_jquery_script("fomantic-transition.js", array('version' => CLONABLE_VERSION)); 121 self::include_jquery_script("onload.js", array('strategy' => 'defer', 'version' => CLONABLE_VERSION)); 122 122 } 123 123 … … 127 127 */ 128 128 public static function include_alpine() { 129 self::include_jquery_script("alpine.js", array('in_footer' => false ));129 self::include_jquery_script("alpine.js", array('in_footer' => false, 'version' => CLONABLE_VERSION)); 130 130 self::include_cdn("Alpine-Tooltip.js", "https://cdn.jsdelivr.net/npm/@ryangjchandler/alpine-tooltip@1.x.x/dist/cdn.min.js", false, true); 131 131 self::include_cdn("Tippy.css", "https://unpkg.com/tippy.js@6/dist/tippy.css", true); -
clonable/trunk/models/LanguageSwitcher.php
r3470351 r3479233 36 36 "name" => "Choose hover background color", 37 37 "setting" => "clonable_hover_background_color", 38 ], 39 "clonable_disable_language_switcher_styles" => [ 40 "render" => "disable_language_switcher_styles", 41 "name" => "Disable default language switcher styles", 42 "setting" => "clonable_disable_language_switcher_styles", 43 "description" => "Turn off the default styles of the language switcher, this allows you to fully customize the design of the language switcher.", 38 44 ], 39 45 "clonable_hr" => [ -
clonable/trunk/readme-da_DK.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.4 34 v2.9.5 35 Clonable language switcher improvements 36 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher 36 39 -
clonable/trunk/readme-de_DE.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.4 34 v2.9.5 35 Clonable language switcher improvements 36 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher 36 39 -
clonable/trunk/readme-es_ES.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme-fr_FR.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme-it_IT.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme-nb_NO.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme-nl_NL.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme-sv_SE.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.5 35 Clonable language switcher improvements 36 34 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher -
clonable/trunk/readme.txt
r3470351 r3479233 5 5 Tested up to: 6.9.1 6 6 Requires PHP: 7.2 7 Stable tag: 2.9. 47 Stable tag: 2.9.5 8 8 License: GPL v2 or later 9 9 … … 32 32 33 33 == Changelog == 34 v2.9.4 34 v2.9.5 35 Clonable language switcher improvements 36 37 v2.9.4 35 38 Support for locally set languages in Clonable Language Switcher 36 39 -
clonable/trunk/services/LanguageSwitcherService.php
r3470351 r3479233 74 74 { 75 75 Html::flags(); 76 Html::include_css("clonable-language-switcher.css"); 77 Html::include_js("language-switcher.js"); 76 Html::include_js("language-switcher.js", CLONABLE_VERSION); 77 78 //check if the user has disabled the default styles of the language switcher, if not include the default css. 79 $disable_styles = (get_option('clonable_disable_language_switcher_styles', 'on') === 'on') ? 1 : 0; 80 if ($disable_styles) { 81 return; 82 } 83 Html::include_css("clonable-language-switcher.css", CLONABLE_VERSION); 78 84 $this->add_menu_language_switcher_css(); 79 85 } … … 85 91 return; 86 92 } 87 88 93 $bg_color = $plugin_language_switcher_settings['backgroundColor'] ?? ''; 89 94 $bg_hover_color = $plugin_language_switcher_settings['hoverBackgroundColor'] ?? ''; … … 293 298 $toggle_label = 'Languages'; 294 299 295 $html = '<li class="' . $li_classes . '">';300 $html = '<li data-loading class="' . $li_classes . '">'; 296 301 $html .= '<a href="#" rel="nofollow" role="button" class="' . $a_class . '"' 297 302 . ' aria-haspopup="true" aria-expanded="false">' … … 364 369 . ' tabindex="-1"' 365 370 . ' class="wp-block-navigation-item has-child open-on-hover-click wp-block-navigation-submenu clonable-language-switcher-block-submenu-item"' 366 . ' >';371 . ' data-loading>'; 367 372 368 373 $html .= '<a class="wp-block-navigation-item__content">' … … 801 806 ?> 802 807 <!-- Start Clonable Language Switcher --> 803 <div class="clonable-language-navigation clonable-language-switcher-shortcode">808 <div data-loading class="clonable-language-navigation clonable-language-switcher-shortcode"> 804 809 <ul id="menu-navlinks" class="menu nav-menu" aria-label="Language Switcher"> 805 810 <?php echo $submenu; ?> -
clonable/trunk/services/modules/ExclusionModule.php
r3422714 r3479233 50 50 public function queue_clonable_admin_scripts() { 51 51 Html::flags(); 52 Html::include_css('clonable-woocommerce.css' );52 Html::include_css('clonable-woocommerce.css', CLONABLE_VERSION); 53 53 } 54 54 -
clonable/trunk/views/DashboardView.php
r3422714 r3479233 17 17 Html::include_fomantic_dropdown(); 18 18 Html::include_alpine(); 19 Html::include_css("clonable-thumbnails.css" );20 Html::include_css("clonable-extra-button.css" );19 Html::include_css("clonable-thumbnails.css", CLONABLE_VERSION); 20 Html::include_css("clonable-extra-button.css", CLONABLE_VERSION); 21 21 22 22 $cached_site = get_option("clonable_site"); … … 24 24 if (empty($cached_site)) { 25 25 Html::include_cdn("DoH.js", "https://cdn.jsdelivr.net/npm/dohjs@latest/dist/doh.min.js"); 26 Html::include_js('dohjs.js' );26 Html::include_js('dohjs.js', CLONABLE_VERSION); 27 27 28 28 $this->render_no_site_section(); -
clonable/trunk/views/LanguageSwitcherView.php
r3470351 r3479233 17 17 Html::include_fomantic_dropdown(); 18 18 Html::include_alpine(); 19 Html::include_css("clonable-thumbnails.css" );19 Html::include_css("clonable-thumbnails.css", CLONABLE_VERSION); 20 20 21 21 $this->render_fields(LanguageSwitcher::PAGE, LanguageSwitcher::$fields, 'Language switcher Settings'); … … 55 55 { 56 56 $this->create_color_field('clonable_hover_background_color', '#efefef'); 57 } 58 59 public function disable_language_switcher_styles() 60 { 61 $this->create_checkbox('clonable_disable_language_switcher_styles'); 57 62 } 58 63 -
clonable/trunk/views/Layout.php
r3058276 r3479233 88 88 <div class="tab-content"> 89 89 <?php 90 Html::include_css('clonable-global.css' );90 Html::include_css('clonable-global.css', CLONABLE_VERSION); 91 91 $this->render_content($controller, $current_tab); 92 92 ?> -
clonable/trunk/views/OnboardingView.php
r3150610 r3479233 11 11 12 12 public function render() { 13 Html::include_css("clonable.css" );14 Html::include_css("clonable-thumbnails.css" );13 Html::include_css("clonable.css", CLONABLE_VERSION); 14 Html::include_css("clonable-thumbnails.css", CLONABLE_VERSION); 15 15 Html::include_alpine(); 16 16 $file = plugin_dir_url(__DIR__) . "images/clonable-full-logo.png"; -
clonable/trunk/views/css/clonable-language-switcher.css
r3470351 r3479233 1 1 :root { 2 --clonable-language-switcher-radius: 6px; 3 --clonable-language-switcher-padding-y: 8px; 4 --clonable-language-switcher-padding-x: 12px; 5 --clonable-language-switcher-gap: 8px; 6 --clonable-language-switcher-bg-hover: rgba(0, 0, 0, 0.06); 7 --clonable-language-switcher-outline: 2px solid rgba(0, 0, 0, 0.35); 8 --clonable-language-switcher-outline-offset: 2px; 9 --clonable-language-switcher-flag-radius: 50%; 10 --clonable-language-switcher-fflag-size: 1.25rem; 11 --clonable-language-switcher-lan-container-gap: 8px; 12 --clonable-language-switcher-lan-container-line-height: 1.2; 2 --clonable-language-switcher-radius: 6px; 3 --clonable-language-switcher-padding-y: 8px; 4 --clonable-language-switcher-padding-x: 12px; 5 --clonable-language-switcher-gap: 8px; 6 --clonable-language-switcher-bg-hover: rgba(0, 0, 0, 0.06); 7 --clonable-language-switcher-outline: 2px solid rgba(0, 0, 0, 0.35); 8 --clonable-language-switcher-outline-offset: 2px; 9 --clonable-language-switcher-flag-radius: 50%; 10 --clonable-language-switcher-fflag-size: 1.25rem; 11 --clonable-language-switcher-lan-container-gap: 8px; 12 --clonable-language-switcher-lan-container-line-height: 1.2; 13 } 14 15 /* Hide the menu item until the JavaScript has initialized it to prevent FOUC */ 16 [data-loading] { 17 visibility: hidden; 13 18 } 14 19 15 20 /* Menu item */ 16 21 .cl-language-switcher-menu-item { 17 border-radius: var(--clonable-language-switcher-radius);18 transition: background-color 0.2s ease;19 list-style: none;20 margin: 0;21 padding: 0;22 border-radius: var(--clonable-language-switcher-radius); 23 transition: background-color 0.2s ease; 24 list-style: none; 25 margin: 0; 26 padding: 0; 22 27 } 23 28 24 29 .cl-language-switcher-menu-item:hover, 25 30 .cl-language-switcher-menu-item:focus-within { 26 background-color: var(--clonable-language-switcher-bg-hover);31 background-color: var(--clonable-language-switcher-bg-hover); 27 32 } 28 33 29 34 /* Link */ 30 35 .cl-language-switcher-link { 31 display: flex;32 align-items: center;33 gap: var(--clonable-language-switcher-gap);34 width: 100% !important;35 padding: var(--clonable-language-switcher-padding-y)36 var(--clonable-language-switcher-padding-x);37 color: inherit;38 text-decoration: none;39 border-radius: var(--clonable-language-switcher-radius);40 outline: none;41 border: none;36 display: flex; 37 align-items: center; 38 gap: var(--clonable-language-switcher-gap); 39 width: 100% !important; 40 padding: var(--clonable-language-switcher-padding-y) 41 var(--clonable-language-switcher-padding-x); 42 color: inherit; 43 text-decoration: none; 44 border-radius: var(--clonable-language-switcher-radius); 45 outline: none; 46 border: none; 42 47 } 43 48 44 49 .cl-language-switcher-link:focus-visible { 45 outline: var(--clonable-language-switcher-outline);46 outline-offset: var(--clonable-language-switcher-outline-offset);50 outline: var(--clonable-language-switcher-outline); 51 outline-offset: var(--clonable-language-switcher-outline-offset); 47 52 } 48 53 49 54 /* Language container */ 50 55 .cl-language-switcher-lan-container { 51 display: inline-flex;52 align-items: center;53 white-space: nowrap;54 gap: var(--clonable-language-switcher-lan-container-gap);55 line-height: var(--clonable-language-switcher-lan-container-line-height);56 display: inline-flex; 57 align-items: center; 58 white-space: nowrap; 59 gap: var(--clonable-language-switcher-lan-container-gap); 60 line-height: var(--clonable-language-switcher-lan-container-line-height); 56 61 } 57 62 58 63 /* Flag */ 59 64 .cl-language-switcher-lan-flag { 60 display: inline-block;65 display: inline-block; 61 66 } 62 67 63 68 .cl-language-switcher-lan-flag.ff-rounded, 64 69 .clonable-menu-item-language-switcher .fflag.ff-rounded { 65 border-radius: var(--clonable-language-switcher-flag-radius);70 border-radius: var(--clonable-language-switcher-flag-radius); 66 71 } 67 72 … … 69 74 .clonable-language-switcher-block-submenu-item .fflag.ff-md, 70 75 .clonable-language-switcher-block-submenu .fflag.ff-md, 71 .clonable-language-switcher-shortcode .cl-language-switcher-lan-flag.fflag.ff-md, 76 .clonable-language-switcher-shortcode 77 .cl-language-switcher-lan-flag.fflag.ff-md, 72 78 .clonable-language-switcher i.fflag.ff-md, 73 79 .clonable-language-switcher > .fflag.ff-square.ff-md, 74 80 .clonable-language-switcher > .fflag.ff-rounded.ff-md, 75 .clonable-language-switcher-shortcode .clonable-menu-item-language-switcher > .fflag.ff-md, 76 .clonable-language-switcher-shortcode .clonable-menu-item-language-switcher > .fflag.ff-square.ff-md, 77 .clonable-language-switcher-shortcode .clonable-menu-item-language-switcher > .fflag.ff-rounded.ff-md { 78 width: var(--clonable-language-switcher-fflag-size) !important; 79 height: var(--clonable-language-switcher-fflag-size) !important; 81 .clonable-language-switcher-shortcode 82 .clonable-menu-item-language-switcher 83 > .fflag.ff-md, 84 .clonable-language-switcher-shortcode 85 .clonable-menu-item-language-switcher 86 > .fflag.ff-square.ff-md, 87 .clonable-language-switcher-shortcode 88 .clonable-menu-item-language-switcher 89 > .fflag.ff-rounded.ff-md { 90 width: var(--clonable-language-switcher-fflag-size) !important; 91 height: var(--clonable-language-switcher-fflag-size) !important; 92 box-shadow: none !important; 93 } 94 95 .clonable-language-switcher-shortcode 96 #menu-navlinks 97 .cl-language-switcher-lan-flag.fflag.ff-md { 98 height: 18px !important; 80 99 } 81 100 82 101 /* Menu item link overrides */ 83 102 .clonable-menu-item-language-switcher a { 84 text-decoration: none !important;103 text-decoration: none !important; 85 104 } 86 105 87 106 .clonable-menu-item-language-switcher > a { 88 display: inline-block !important;89 vertical-align: middle !important;107 display: inline-block !important; 108 vertical-align: middle !important; 90 109 } 91 110 92 111 .clonable-menu-item-language-switcher > a::after { 93 display: none !important; 94 } 95 96 .clonable-language-switcher-shortcode .clonable-menu-item-language-switcher > a { 97 display: inline-flex !important; 98 align-items: center !important; 99 gap: var(--clonable-language-switcher-gap) !important; 112 display: none !important; 113 } 114 115 .clonable-language-switcher-shortcode 116 .clonable-menu-item-language-switcher 117 > a { 118 display: inline-flex !important; 119 align-items: center !important; 120 gap: var(--clonable-language-switcher-gap) !important; 121 } 122 123 .clonable-language-switcher-shortcode .sub-menu .cl-language-switcher-lan-flag { 124 opacity: 0.7; 125 } 126 127 .clonable-language-switcher-shortcode 128 .sub-menu 129 .cl-language-switcher-link:hover 130 .cl-language-switcher-lan-flag, 131 .clonable-language-switcher-shortcode 132 .sub-menu 133 .cl-language-switcher-link:focus-visible 134 .cl-language-switcher-lan-flag { 135 opacity: 1; 100 136 } 101 137 102 138 /* Navigation block */ 103 139 .clonable-language-navigation > .menu { 104 display: flex;105 flex-wrap: wrap;106 gap: var(--clonable-language-switcher-gap) !important;107 list-style: none;140 display: flex; 141 flex-wrap: wrap; 142 gap: var(--clonable-language-switcher-gap) !important; 143 list-style: none; 108 144 } 109 145 110 146 .clonable-language-switcher-block-submenu { 111 min-width: 240px !important;112 left: 0 !important;113 right: auto !important;147 min-width: 240px !important; 148 left: 0 !important; 149 right: auto !important; 114 150 } 115 151 116 152 .clonable-language-switcher-block-submenu 117 .wp-block-navigation-item118 .wp-block-navigation-item__content,153 .wp-block-navigation-item 154 .wp-block-navigation-item__content, 119 155 .clonable-language-switcher-block-submenu-item > a { 120 display: flex !important;121 align-items: center !important;122 gap: var(--clonable-language-switcher-gap) !important;156 display: flex !important; 157 align-items: center !important; 158 gap: var(--clonable-language-switcher-gap) !important; 123 159 } 124 160 125 161 /* Shortcode language switcher */ 126 162 .clonable-language-switcher-shortcode { 127 position: relative; 128 } 129 130 .clonable-language-switcher-shortcode 131 .clonable-menu-item-language-switcher 132 > svg { 133 align-self: center; 134 display: inline-block; 135 width: 0.6em; 136 height: 0.6em; 137 margin-left: 0.25em; 138 margin-top: 0.075em; 139 color: currentColor; 140 stroke: currentColor; 141 line-height: 0; 163 position: relative; 164 } 165 166 .clonable-language-switcher-shortcode * { 167 color: #333; 168 text-decoration: none !important; 169 } 170 171 .clonable-language-switcher-shortcode 172 .clonable-menu-item-language-switcher 173 > svg { 174 align-self: center; 175 display: inline-block; 176 width: 0.6em; 177 height: 0.6em; 178 margin-left: 1em !important; 179 margin-top: 0.075em; 180 color: currentColor; 181 stroke: currentColor; 182 line-height: 0; 142 183 } 143 184 144 185 .clonable-language-switcher-shortcode .sub-menu .cl-language-switcher-link { 145 padding: var(--clonable-language-switcher-padding-y) 0; 146 white-space: nowrap; 186 padding: var(--clonable-language-switcher-padding-y) 0; 187 white-space: nowrap; 188 background: #fff !important; 147 189 } 148 190 149 191 .clonable-language-switcher-shortcode.clonable-language-navigation > .menu { 150 width: fit-content;151 padding: var(--clonable-language-switcher-padding-x);152 border: 1px solid #ccc;153 border-radius: var(--clonable-language-switcher-radius);154 background: #fff;155 overflow: visible;156 margin: inherit;157 position: relative;158 max-height: unset;192 width: fit-content; 193 padding: 4px 8px !important; 194 border: 1px solid #ccc; 195 border-radius: var(--clonable-language-switcher-radius); 196 background: #fff; 197 overflow: visible; 198 margin: inherit; 199 position: relative; 200 max-height: unset; 159 201 } 160 202 161 203 .clonable-language-switcher-shortcode .sub-menu { 162 display: none; 163 position: absolute; 164 padding: 4% var(--clonable-language-switcher-padding-x); 165 margin: 0; 166 list-style: none; 167 left: -1px; 168 top: 94% !important; 169 border: 1px solid #ccc; 170 border-radius: 0 0 var(--clonable-language-switcher-radius) 171 var(--clonable-language-switcher-radius); 172 background: #fff; 173 min-width: calc(100% + 2px); 174 box-sizing: border-box; 204 display: none; 205 position: absolute; 206 padding: 4px 8px !important; 207 margin: 0; 208 list-style: none; 209 left: -1px; 210 top: 94% !important; 211 border: 1px solid #ccc; 212 border-radius: 0 0 var(--clonable-language-switcher-radius) 213 var(--clonable-language-switcher-radius); 214 background: #fff; 215 min-width: calc(100% + 2px); 216 box-sizing: border-box; 217 z-index: 999; 175 218 } 176 219 177 220 .clonable-language-switcher-shortcode.is-hovered 178 .clonable-menu-item-language-switcher179 > .sub-menu {180 display: block;181 } 221 .clonable-menu-item-language-switcher 222 > .sub-menu { 223 display: block; 224 } -
clonable/trunk/views/scripts/language-switcher.js
r3470351 r3479233 133 133 setMenuItemUrls(); 134 134 hoverMenuItemShortcodeMenu(); 135 136 /* after initializing the menu, remove the data-loading attribute to show the menu items */ 137 document.querySelectorAll('[data-loading]').forEach(el => { 138 el.removeAttribute('data-loading'); 139 }); 140 135 141 });
Note: See TracChangeset
for help on using the changeset viewer.