{"id":15108,"date":"2026-01-13T14:36:08","date_gmt":"2026-01-13T13:36:08","guid":{"rendered":"https:\/\/f2a.fr\/actualite\/"},"modified":"2026-04-30T15:01:59","modified_gmt":"2026-04-30T13:01:59","slug":"news","status":"publish","type":"page","link":"https:\/\/f2a.fr\/en\/news\/","title":{"rendered":"News"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15108\" class=\"elementor elementor-15108 elementor-122\" data-elementor-post-type=\"page\">\n\t\t\t\t<section class=\"elementor-element elementor-element-6b4ddd3 e-flex e-con-boxed e-con e-parent\" data-id=\"6b4ddd3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-912dbcd e-con-full e-flex e-con e-child\" data-id=\"912dbcd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-9a1aecd e-con-full e-flex e-con e-child\" data-id=\"9a1aecd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6e0a12c elementor-widget elementor-widget-heading\" data-id=\"6e0a12c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">News<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-093bcdd elementor-widget elementor-widget-Element_Breadcrumb\" data-id=\"093bcdd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"Element_Breadcrumb.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<nav class=\"breadcrumb-wrapper\" aria-label=\"Breadcrumb\"><ol class=\"breadcrumb\" role=\"list\" aria-label=\"Breadcrumb\"><li class=\"breadcrumb-item\"><a href=\"https:\/\/f2a.fr\/en\/\">Home<\/a><\/li><li class=\"breadcrumb-item active\"><span class=\"last_breadcrumb_item\">News<\/span><\/li><\/ol><\/nav><script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"BreadcrumbList\",\n    \"itemListElement\": [\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 1,\n            \"name\": \"Home\",\n            \"item\": \"https:\/\/f2a.fr\/en\/\"\n        },\n        {\n            \"@type\": \"ListItem\",\n            \"position\": 2,\n            \"name\": \"News\",\n            \"item\": \"\"\n        }\n    ]\n}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-266eb60 e-con-full e-flex e-con e-child\" data-id=\"266eb60\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-82c5971 red_horizontal_line elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"82c5971\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>This section gives you access to F2A news: product updates, innovations, CSR initiatives, new certifications, trade shows for professionals, and technical documentation designed to support HVAC professionals over the long term.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cadc6e elementor-widget elementor-widget-shortcode\" data-id=\"4cadc6e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n    <div class=\"news-cards-ctm-main\" \n         id=\"news-filter-c9ab7646-f841-45b5-9d65-14bc1b2a84db\"\n         data-posttype=\"post\"\n         data-taxonomy=\"category\">\n\n        <div class=\"news-filter\">\n            <div class=\"search-wrapper\" style=\"position:relative; display:inline-block;\">\n                <input type=\"text\" class=\"ctm-search-input\" placeholder=\"Search for a term\u2026\">\n                <span class=\"ctm-clear-search\" style=\"display:none; cursor:pointer; position:absolute; right:10px; top:50%; transform:translateY(-50%);\">&times;<\/span>\n            <\/div>\n\n            <div class=\"news_cards_filter\">\n                <div class=\"site_dropdown\">\n                    <select class=\"ctm-cat-select\">\n                        <option value=\"\">All categories<\/option>\n                        <option value=\"1\">Non cat\u00e9goris\u00e9<\/option><option value=\"171\">Miscellaneous<\/option>                    <\/select>\n                <\/div>\n            <\/div>\n            \n        <\/div>\n              \n\n        <div class=\"news-results-grid \">\n            \n            <div  class=\"news-card \">\n            \n                <a href=\"https:\/\/f2a.fr\/en\/news\/f2a-to-exhibit-at-interclima-2026\/\" class=\"news-image\"><img decoding=\"async\" src=\"https:\/\/f2a.fr\/wp-content\/uploads\/2026\/08\/Interclima-news-site-1024x576.png\" alt=\"F2A to Exhibit at Interclima 2026\"><\/a>\n                <div class=\"news-content\">\n                    <div class=\"news-content-txt-top\">\n                        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/02\/Calque_1.svg\" alt=\"icon\">\n                        <div class=\"news-title\">F2A to Exhibit at Interclima 2026<\/div>\n                    <\/div>\n                    <div class=\"news-text\">F2A is pleased to announce its participation in Interclima 2026, the leading trade show for professionals in HVAC, ventilation and air treatment.\r\n\r\n\r\nFrom\u00a028 ...<\/div>\n                    <div class=\"btns-with-arrow\">\n                        <div class=\"news-meta\">\n                            <span class=\"news-date\">03\/09\/26<\/span>\n                            <div class=\"news-tags-container\"><a href=\"https:\/\/f2a.fr\/en\/category\/non-categorise\/\"><span class=\"news-tag\">Non cat\u00e9goris\u00e9<\/span><\/a><\/div>\n                        <\/div>\n                        <a href=\"https:\/\/f2a.fr\/en\/news\/f2a-to-exhibit-at-interclima-2026\/\"  class=\"news-arrow\"><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div  class=\"news-card \">\n            \n                <a href=\"https:\/\/f2a.fr\/en\/news\/enjoy-your-summer-our-2026-summer-closure\/\" class=\"news-image\"><img decoding=\"async\" src=\"https:\/\/f2a.fr\/wp-content\/uploads\/2026\/07\/F2A-fermeture-estivale-1024x576.png\" alt=\"Enjoy your summer! Our 2026 summer closure\"><\/a>\n                <div class=\"news-content\">\n                    <div class=\"news-content-txt-top\">\n                        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/02\/Calque_1.svg\" alt=\"icon\">\n                        <div class=\"news-title\">Enjoy your summer! Our 2026 summer closure<\/div>\n                    <\/div>\n                    <div class=\"news-text\">Summer is the perfect time to take a break, recharge and enjoy some well-deserved time off.\r\nOur offices will be closed from 10 to 16 August 2026.\r\nOur product...<\/div>\n                    <div class=\"btns-with-arrow\">\n                        <div class=\"news-meta\">\n                            <span class=\"news-date\">30\/07\/26<\/span>\n                            <div class=\"news-tags-container\"><a href=\"https:\/\/f2a.fr\/en\/category\/non-categorise\/\"><span class=\"news-tag\">Non cat\u00e9goris\u00e9<\/span><\/a><\/div>\n                        <\/div>\n                        <a href=\"https:\/\/f2a.fr\/en\/news\/enjoy-your-summer-our-2026-summer-closure\/\"  class=\"news-arrow\"><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div  class=\"news-card \">\n            \n                <a href=\"https:\/\/f2a.fr\/en\/news\/e%c2%b7vav-selected-for-intelligent-ventilation-in-the-office-extension-of-a-pharmaceutical-manufacturing-facility\/\" class=\"news-image\"><img decoding=\"async\" src=\"https:\/\/f2a.fr\/wp-content\/uploads\/2026\/07\/1-LK-1024x768.jpg\" alt=\"e\u00b7VAV selected for intelligent ventilation in the office extension of a pharmaceutical manufacturing facility\"><\/a>\n                <div class=\"news-content\">\n                    <div class=\"news-content-txt-top\">\n                        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/02\/Calque_1.svg\" alt=\"icon\">\n                        <div class=\"news-title\">e\u00b7VAV selected for intelligent ventilation in the office extension of a pharmaceutical manufacturing facility<\/div>\n                    <\/div>\n                    <div class=\"news-text\">As part of the office extension at a pharmaceutical manufacturing facility in Gu\u00e9ret (23, France), SOGEQUIP Air Control selected the F2A e\u00b7VAV to\u00a0provide intel...<\/div>\n                    <div class=\"btns-with-arrow\">\n                        <div class=\"news-meta\">\n                            <span class=\"news-date\">23\/07\/26<\/span>\n                            <div class=\"news-tags-container\"><a href=\"https:\/\/f2a.fr\/en\/category\/non-categorise\/\"><span class=\"news-tag\">Non cat\u00e9goris\u00e9<\/span><\/a><\/div>\n                        <\/div>\n                        <a href=\"https:\/\/f2a.fr\/en\/news\/e%c2%b7vav-selected-for-intelligent-ventilation-in-the-office-extension-of-a-pharmaceutical-manufacturing-facility\/\"  class=\"news-arrow\"><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div  class=\"news-card \">\n            \n                <a href=\"https:\/\/f2a.fr\/en\/news\/introducing-the-bbc\/\" class=\"news-image\"><img decoding=\"async\" src=\"https:\/\/f2a.fr\/wp-content\/uploads\/2026\/07\/Baffle_acoustique_BBC_news-1-1-1024x576.jpg\" alt=\"Introducing the BBC+\"><\/a>\n                <div class=\"news-content\">\n                    <div class=\"news-content-txt-top\">\n                        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/02\/Calque_1.svg\" alt=\"icon\">\n                        <div class=\"news-title\">Introducing the BBC+<\/div>\n                    <\/div>\n                    <div class=\"news-text\">Introducing the BBC+: the first HVAC acoustic splitter made from 100% recycled steel and 100% recycled glass wool\r\nCombining acoustic performance with a lower ...<\/div>\n                    <div class=\"btns-with-arrow\">\n                        <div class=\"news-meta\">\n                            <span class=\"news-date\">16\/07\/26<\/span>\n                            <div class=\"news-tags-container\"><a href=\"https:\/\/f2a.fr\/en\/category\/non-categorise\/\"><span class=\"news-tag\">Non cat\u00e9goris\u00e9<\/span><\/a><\/div>\n                        <\/div>\n                        <a href=\"https:\/\/f2a.fr\/en\/news\/introducing-the-bbc\/\"  class=\"news-arrow\"><\/a>\n                    <\/div>\n                <\/div>\n            <\/div>        <\/div>\n\n        <div class=\"nc-load-more theme_btn white_btn\" style=\"\">\n            <a href=\"javascript:void(0);\" class=\"ctm-load-more-btn elementor-button\">\n                Load more articles            <\/a>\n        <\/div>\n    <\/div>\n\n    \n    <script>\n        jQuery(document).ready(function($) {\n                var mainID   = '#news-filter-c9ab7646-f841-45b5-9d65-14bc1b2a84db';\n                var page     = 1;\n\n                var config = {\n                    ajaxUrl: 'https:\/\/f2a.fr\/wp-admin\/admin-ajax.php',\n                    fallback: '\/wp-content\/uploads\/2026\/02\/placeholder_image.webp',\n                    noRes:    'No articles found',\n                    ppp:      4,\n                    loadTxt:  'Loading\u2026',\n                    normalTxt:'Load more articles',\n                    icon:     '\/wp-content\/uploads\/2026\/02\/Calque_1.svg'\n                };\n                var termIdToSlug = {\"1\":\"non-categorise\",\"171\":\"divers\"};\n                var termSlugToId = Object.fromEntries(Object.entries(termIdToSlug).map(([id, slug]) => [slug, id]));\n\n                function fetchNews(isAppend) {\n                    if (!isAppend) page = 1;\n\n                    var $container   = $(mainID);\n                    var searchVal    = $container.find('.ctm-search-input').val().trim();\n                    var catId        = $container.find('.ctm-cat-select').val();\n                    var postType     = $container.data('posttype');\n                    var taxonomy     = $container.data('taxonomy');\n                    var productCatId = jQuery('.product_cat_link.active').data('term-id');\n                    var selectedProduct = $container.find('.product_select select').val();\n                \n                    \/\/ Toggle clear button\n                    $container.find('.ctm-clear-search').toggle(searchVal.length > 0);\n\n                    $.ajax({\n                        url: config.ajaxUrl,\n                        type: 'POST',\n                        data: {\n                            action:     'filter_news_posts',\n                            search:     searchVal,\n                            cat:        catId,\n                            productCatId: productCatId,\n                            selectedProduct: selectedProduct,  \/\/ \u2190 add this\n                            page:       page,\n                            post_type:  postType,\n                            taxonomy:   taxonomy,\n                            fallback:   config.fallback,\n                            no_results: config.noRes,\n                            ppp:        config.ppp,\n                            icon:       config.icon\n                        },\n                        beforeSend: function() {\n                            if (isAppend) {\n                                $container.find('.ctm-load-more-btn').text(config.loadTxt).css('pointer-events', 'none');\n                            } else {\n                                $container.find('.news-results-grid').css('opacity', '0.5');\n                            }\n                        },\n                        success: function(res) {\n                            var $grid = $container.find('.news-results-grid');\n                            $grid.css('opacity', '1');\n                            $container.find('.ctm-load-more-btn').text(config.normalTxt).css('pointer-events', 'auto');\n\n                            if (isAppend) {\n                                $grid.append(res.data.html);\n                            } else {\n                                $grid.html(res.data.html);\n                            }\n                        \n                            \n\n                            \/\/ Show\/Hide Load More\n                            $container.find('.nc-load-more').toggle(res.data.has_more);\n                        }\n                    });\n                }\n\n                \/\/ Event listeners (scoped to this instance)\n                $(mainID).on('keyup', '.ctm-search-input', function() {\n                    clearTimeout(window.ctmTimer);\n                    window.ctmTimer = setTimeout(() => fetchNews(false), 500);\n                });\n                var selectedCat = null;\n\n                var selectedCat = null;\n\n        \n\n                $(mainID).on('change', '.ctm-cat-select', function () {\n\n                    var catId = $(this).val();\n                     var postType = $(mainID).data('posttype');\n\n                   if (postType === 'ressources') {\n                        var url = new URL(window.location.href);\n                        if (catId) {\n                            var slug = termIdToSlug[catId] || catId;\n                            var slugOverrides = {\n                                'support': 'articles'\n                            };\n                            slug = slugOverrides[slug] || slug;\n                            url.searchParams.set('type', slug);\n                        } else {\n                            url.searchParams.delete('type');\n                        }\n                        window.history.pushState({}, '', url.toString());\n                    }\n\n                    \/\/console.log(catId);\n                    jQuery('.product_select').hide();\n                    \/\/ if (catId == '75' || catId == '310'  ) {\n                    \/\/     $('.product_select').show();\n                       \n                    \/\/ } else {\n                    \/\/     $('.product_select').hide();\n                    \/\/ }\n\n                    if (catId == '76'  || catId == '77' || catId == '311' ) {\n                        $('.product_btn_bar').hide();\n                    } else {\n                        $('.product_btn_bar').show();\n                    }\n                    \n\n\n                    fetchNews(false);\n                });\n\n                $(mainID).on('click', '.ctm-load-more-btn', function(e) {\n                    e.preventDefault();\n                    page++;\n                    fetchNews(true);\n                });\n\n                $(mainID).on('click', '.ctm-clear-search', function() {\n                    $(mainID).find('.ctm-search-input').val('');\n                    fetchNews(false);\n                });\n\n        function normalizeText(text) {\n            return text\n                .toLowerCase()\n                .trim()\n                .replace(\/\\s+\/g, '-') \n                .normalize(\"NFD\")\n                .replace(\/[\\u0300-\\u036f]\/g, '') \/\/ remove accents\n                .replace(\/s\\b\/g, ''); \/\/ remove trailing 's'\n                }\n\n                var currentUrl = window.location.href;\n\n                if (currentUrl.includes('rechercher-une-ressource') || currentUrl.includes('search-for-a-resource')) {\n                    var params = new URLSearchParams(window.location.search);\n                    var type = params.get('type');\n\n                    if (type) {\n                        var normalizedType = normalizeText(decodeURIComponent(type));\n\n                        setTimeout(function () {\n                            var $select = $('.ctm-cat-select');\n\n                            if ($select.length) {\n\n                                $select.find('option').each(function () {\n                                    var optionText = $(this).text();\n                                    var normalizedOption = normalizeText(optionText);\n\n                                    if (normalizedOption === normalizedType) {\n                                        var value = $(this).val();\n\n                                        $select.val(value).trigger('change');\n\n                                        console.log('Matched:', optionText);\n                                        return false;\n                                    }\n                                });\n\n                            }\n                        }, 500);\n                    }\n                }\n                \n                var slugOverrides = {\n                        'support': 'articles'  \/\/ if URL has ?ressource_cat=support \u2192 treat as 'article'\n                    };\n                 var postTypeCheck = $(mainID).data('posttype');\n               if (postTypeCheck === 'ressources') {\n                    var params = new URLSearchParams(window.location.search);\n                    var catParam = params.get('type');\n                    if (catParam) {\n                        var slugOverrides = {\n                            'support': 'articles'\n                        };\n                        var reverseOverrides = Object.fromEntries(Object.entries(slugOverrides).map(([k, v]) => [v, k]));\n                        catParam = reverseOverrides[catParam] || catParam;\n                        setTimeout(function () {\n                            var catId = termSlugToId[catParam] || catParam;\n                            var $select = $(mainID).find('.ctm-cat-select');\n                            if ($select.find('option[value=\"' + catId + '\"]').length) {\n                                $select.val(catId).trigger('change');\n                            }\n                        }, 300);\n                    }\n                }\n\n\n            jQuery('.product_cat_link').on('click', function (e) {\n            e.preventDefault();\n            var termId   = jQuery(this).data('term-id');\n            var $select  = jQuery('#product-select');\n            var isActive = jQuery(this).hasClass('active');\n            if (isActive) {\n                jQuery('.product_select').hide();\n                jQuery(this)\n                    .removeClass('active')\n                    .removeAttr('aria-current')\n                    .attr('aria-pressed', 'false');      \n                selectedCat = null;\n                $select.empty().prop('disabled', true);\n                if ($select.hasClass('select2-hidden-accessible')) {\n                    $select.trigger('change');\n                }\n                fetchNews(false);\n                return;\n           }\n           \/\/ Show when a category becomes active\n            jQuery('.product_select').show();\n\n            jQuery('.product_cat_link')\n                .removeClass('active')\n                .removeAttr('aria-current')\n                .attr('aria-pressed', 'false');          \n\n            jQuery(this)\n                .addClass('active')\n                .attr('aria-current', 'true')\n                .attr('aria-pressed', 'true');          \n            $select.empty().prop('disabled', true);\n            fetchNews(false);\n\n            $.ajax({\n                url: 'https:\/\/f2a.fr\/wp-admin\/admin-ajax.php',\n                type: 'POST',\n                data: {\n                    action:  'get_products_by_category',\n                    term_id: termId,\n                },\n                success: function (response) {\n                    $select.empty();\n\n                    if (response.success && response.data.length > 0) {\n\n                        $.each(response.data, function (i, group) {\n\n                            if (group.group !== '') {\n                                \/\/ Has a sub-category name \u2192 wrap in <optgroup>\n                                var $optgroup = $('<optgroup>', { label: group.group });\n\n                                $.each(group.options, function (j, product) {\n                                    $optgroup.append(\n                                        $('<option>', {\n                                            value:       product.value,\n                                            'data-term': termId,\n                                            text:        product.label,\n                                        })\n                                    );\n                                });\n\n                                $select.append($optgroup);\n\n                            } else {\n                                \/\/ Fallback: flat options (parent has no sub-categories)\n                                $.each(group.options, function (j, product) {\n                                    $select.append(\n                                        $('<option>', {\n                                            value:       product.value,\n                                            'data-term': termId,\n                                            text:        product.label,\n                                        })\n                                    );\n                                });\n                            }\n                        });\n\n                    } else {\n                        $select.append('<option disabled>Aucun produit trouv\u00e9<\/option>');\n                    }\n\n                    $select.prop('disabled', false);\n\n                    \/\/ Tell Select2 to re-render with the new optgroups\n                    if ($select.hasClass('select2-hidden-accessible')) {\n                        $select.trigger('change');\n                    }\n                },\n                error: function () {\n                    $select.append('<option disabled>Erreur de chargement<\/option>');\n                    $select.prop('disabled', false);\n                },\n            });\n        });\n                \n        var selectedProduct = null;\n        jQuery('.product_select .select-options').on('change', function () {\n            fetchNews(false);\n        });\n\n         });\n\n  \n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>News Home This section gives you access to F2A news: product updates, innovations, CSR initiatives, new certifications, trade shows for professionals, and technical documentation designed to support HVAC professionals over the long term.<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"class_list":["post-15108","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/pages\/15108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/comments?post=15108"}],"version-history":[{"count":18,"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/pages\/15108\/revisions"}],"predecessor-version":[{"id":22279,"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/pages\/15108\/revisions\/22279"}],"wp:attachment":[{"href":"https:\/\/f2a.fr\/en\/wp-json\/wp\/v2\/media?parent=15108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}