{"id":37,"date":"2026-04-25T16:12:55","date_gmt":"2026-04-25T14:12:55","guid":{"rendered":"https:\/\/isaukinshasa.net\/?page_id=37"},"modified":"2026-07-19T15:25:17","modified_gmt":"2026-07-19T13:25:17","slug":"grille","status":"publish","type":"page","link":"https:\/\/isaukinshasa.net\/?page_id=37","title":{"rendered":"Publications"},"content":{"rendered":"\n<section class=\"isau-results-section\">\n    <div class=\"site-container\">\n        \n        <!-- SEARCH & FILTER BAR -->\n        <div class=\"isau-results-filter-bar\">\n            <div class=\"filter-item search-box\">\n                <span class=\"dashicons dashicons-search search-icon\"><\/span>\n                <input type=\"text\" id=\"isau-results-search\" placeholder=\"Rechercher par intitul\u00e9 de cours, professeur...\" aria-label=\"Recherche de r\u00e9sultats\">\n            <\/div>\n            \n            <div class=\"filter-item dropdown-box\">\n                <select id=\"isau-results-filter-promotion\" aria-label=\"Filtrer par promotion\">\n                    <option value=\"\">Toutes les promotions<\/option>\n                                    <\/select>\n            <\/div>\n            \n            <div class=\"filter-item dropdown-box\">\n                <select id=\"isau-results-filter-year\" aria-label=\"Filtrer par ann\u00e9e acad\u00e9mique\">\n                    <option value=\"\">Toutes les ann\u00e9es<\/option>\n                                    <\/select>\n            <\/div>\n        <\/div>\n\n        <!-- RESULTS METADATA & RESET -->\n        <div class=\"isau-results-meta-bar\">\n            <div class=\"isau-results-count\">\n                <span class=\"dashicons dashicons-portfolio\"><\/span>\n                <span class=\"count-text\"><strong id=\"isau-results-count-number\">0<\/strong> document(s) disponible(s)<\/span>\n            <\/div>\n            <button id=\"isau-results-reset-btn\" class=\"isau-results-reset-btn\" style=\"display: none;\">\n                <span class=\"dashicons dashicons-image-rotate\"><\/span> Effacer les filtres\n            <\/button>\n        <\/div>\n\n        <!-- RESULTS LISTING -->\n        <div class=\"isau-results-list\" id=\"isau-results-container\">\n                            <div class=\"isau-results-no-data\">\n                    <span class=\"dashicons dashicons-info\"><\/span>\n                    <p>Aucun r\u00e9sultat ou document n'est disponible pour le moment.<\/p>\n                <\/div>\n                    <\/div>\n\n    <\/div>\n<\/section>\n\n<!-- CSS Styling (Strictly scoped and premium) -->\n<style>\n.isau-results-section {\n    margin: 0 !important;\n    padding: 0 !important;\n    background: transparent;\n    width: 100%;\n}\n\n\/* Filter bar styling *\/\n.isau-results-filter-bar {\n    display: flex;\n    gap: 15px;\n    margin-bottom: 20px;\n    flex-wrap: wrap;\n    background: #ffffff;\n    padding: 15px;\n    border-radius: 8px;\n    box-shadow: 0 4px 15px rgba(0,0,0,0.03);\n    border: 1px solid var(--isau-border-color);\n}\n\n.isau-results-filter-bar .filter-item {\n    flex: 1;\n    min-width: 180px;\n    position: relative;\n}\n\n.isau-results-filter-bar .search-box {\n    flex: 2;\n}\n\n.isau-results-filter-bar input[type=\"text\"],\n.isau-results-filter-bar select {\n    width: 100% !important;\n    padding: 10px 14px !important;\n    border: 1px solid #d1d5db !important;\n    border-radius: 6px !important;\n    background: #f9fafb !important;\n    font-size: 0.9rem !important;\n    color: var(--isau-text-dark) !important;\n    height: 42px !important;\n    outline: none !important;\n    box-shadow: none !important;\n    transition: all 0.3s ease !important;\n    font-family: var(--isau-font-sans) !important;\n}\n\n.isau-results-filter-bar input[type=\"text\"]:focus,\n.isau-results-filter-bar select:focus {\n    border-color: #8b0000 !important;\n    background: #ffffff !important;\n    box-shadow: 0 0 0 3px rgba(139, 0, 0, 0.08) !important;\n}\n\n.isau-results-filter-bar .search-box input {\n    padding-left: 40px !important;\n}\n\n.isau-results-filter-bar .search-icon {\n    position: absolute;\n    left: 12px;\n    top: 50%;\n    transform: translateY(-50%);\n    color: #9ca3af;\n    font-size: 18px;\n    width: 18px;\n    height: 18px;\n}\n\n\/* Metadata Bar *\/\n.isau-results-meta-bar {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    margin-bottom: 15px;\n    padding: 0 5px;\n}\n\n.isau-results-count {\n    display: flex;\n    align-items: center;\n    gap: 8px;\n    color: var(--isau-text-muted);\n    font-size: 0.9rem;\n    font-weight: 500;\n}\n\n.isau-results-count .dashicons {\n    color: #8b0000;\n    font-size: 16px;\n    width: 16px;\n    height: 16px;\n}\n\n.isau-results-count strong {\n    color: var(--isau-text-dark);\n    font-weight: 700;\n}\n\n.isau-results-reset-btn {\n    background: #f3f4f6;\n    color: var(--isau-text-muted);\n    border: 1px solid #e5e7eb;\n    padding: 5px 12px;\n    font-size: 0.8rem;\n    font-weight: 600;\n    border-radius: 4px;\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    gap: 6px;\n    transition: all 0.2s ease;\n}\n\n.isau-results-reset-btn:hover {\n    background: #e5e7eb;\n    color: var(--isau-text-dark);\n}\n\n\/* Results listing rows *\/\n.isau-results-list {\n    display: flex;\n    flex-direction: column;\n    gap: 10px;\n    width: 100%;\n}\n\n.isau-result-row {\n    display: flex;\n    align-items: center;\n    background: #ffffff;\n    padding: 15px 20px;\n    border-radius: 8px;\n    border: 1px solid var(--isau-border-color);\n    position: relative;\n    overflow: hidden;\n    transition: all 0.2s ease;\n    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);\n}\n\n.isau-result-row::before {\n    content: '';\n    position: absolute;\n    left: 0;\n    top: 0;\n    height: 100%;\n    width: 3px;\n    background: #8b0000;\n    opacity: 0;\n    transition: opacity 0.2s ease;\n}\n\n.isau-result-row:hover {\n    border-color: #d1d5db;\n    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);\n    transform: translateY(-2px);\n}\n\n.isau-result-row:hover::before {\n    opacity: 1;\n}\n\n.result-icon-col {\n    margin-right: 15px;\n    display: flex;\n    align-items: center;\n}\n\n.pdf-icon-wrapper {\n    width: 40px;\n    height: 40px;\n    border-radius: 6px;\n    background: #fff5f5;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border: 1px solid #fee2e2;\n}\n\n.file-pdf-icon {\n    font-size: 22px;\n    width: 22px;\n    height: 22px;\n    color: #dc2626;\n}\n\n.result-info-col {\n    flex: 1;\n}\n\n.result-item-date {\n    display: inline-block;\n    background: #fdf2f2;\n    color: #b91c1c;\n    font-size: 0.75rem;\n    font-weight: 600;\n    padding: 3px 10px;\n    border-radius: 20px;\n    margin-bottom: 6px;\n}\n\n.result-item-date .dashicons {\n    font-size: 12px;\n    width: 12px;\n    height: 12px;\n    vertical-align: middle;\n    margin-top: -2px;\n}\n\n.result-item-title {\n    font-family: var(--isau-font-sans);\n    font-size: 1.05rem;\n    font-weight: 600;\n    color: var(--isau-text-dark);\n    margin: 0 0 4px 0;\n    line-height: 1.3;\n}\n\n.result-item-meta {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    font-size: 0.8rem;\n    color: var(--isau-text-muted);\n}\n\n.result-item-meta .dashicons {\n    font-size: 14px;\n    width: 14px;\n    height: 14px;\n    color: #9ca3af;\n    vertical-align: text-top;\n}\n\n.meta-separator {\n    color: #d1d5db;\n}\n\n\/* Actions buttons styling *\/\n.result-actions-col {\n    display: flex;\n    gap: 8px;\n}\n\n.result-btn {\n    display: inline-flex;\n    align-items: center;\n    gap: 6px;\n    padding: 6px 14px;\n    border-radius: 4px;\n    font-size: 0.85rem;\n    font-weight: 600;\n    text-decoration: none !important;\n    transition: all 0.2s ease;\n}\n\n.result-btn .dashicons {\n    font-size: 14px;\n    width: 14px;\n    height: 14px;\n}\n\n.view-btn {\n    background: #f3f4f6;\n    color: var(--isau-text-dark) !important;\n    border: 1px solid #e5e7eb;\n}\n\n.view-btn:hover {\n    background: #e5e7eb;\n}\n\n.download-btn {\n    background: #8b0000;\n    color: #ffffff !important;\n    border: 1px solid #8b0000;\n}\n\n.download-btn:hover {\n    background: #600000;\n    border-color: #600000;\n}\n\n\/* No data styling *\/\n.isau-results-no-data {\n    text-align: center;\n    padding: 40px 20px;\n    background: #ffffff;\n    border-radius: 8px;\n    border: 1px dashed #d1d5db;\n    color: var(--isau-text-muted);\n}\n\n\/* Responsive *\/\n@media (max-width: 992px) {\n    .isau-result-row {\n        flex-wrap: wrap;\n        padding: 15px;\n    }\n    .result-info-col {\n        min-width: 100%;\n        margin-bottom: 10px;\n    }\n    .result-icon-col {\n        display: none;\n    }\n    .result-actions-col {\n        width: 100%;\n    }\n    .result-btn {\n        flex: 1;\n        justify-content: center;\n    }\n}\n\n@media (max-width: 576px) {\n    .isau-results-filter-bar {\n        flex-direction: column;\n        padding: 10px;\n        gap: 8px;\n    }\n    .isau-result-row {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 8px;\n        padding: 12px;\n    }\n    .result-item-title {\n        font-size: 0.95rem;\n    }\n    .result-item-meta {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 4px;\n    }\n    .meta-separator {\n        display: none;\n    }\n    .result-actions-col {\n        flex-direction: row;\n        width: 100%;\n        gap: 8px;\n    }\n}\n<\/style>\n\n<!-- Live searching & filtering Javascript -->\n<script type=\"text\/javascript\">\ndocument.addEventListener('DOMContentLoaded', function() {\n    var searchInput = document.getElementById('isau-results-search');\n    var promoFilter = document.getElementById('isau-results-filter-promotion');\n    var yearFilter  = document.getElementById('isau-results-filter-year');\n    var resetBtn    = document.getElementById('isau-results-reset-btn');\n    var countNum    = document.getElementById('isau-results-count-number');\n    var container   = document.getElementById('isau-results-container');\n    var rows        = container.querySelectorAll('.isau-result-row');\n    var emptyMsg    = document.getElementById('isau-results-empty');\n\n    function filterResults() {\n        var searchValue  = searchInput.value.toLowerCase().trim();\n        var selectedPromo = promoFilter.value;\n        var selectedYear  = yearFilter.value;\n        var visibleCount  = 0;\n\n        rows.forEach(function(row) {\n            var title = row.getAttribute('data-title');\n            var promo = row.getAttribute('data-promotion');\n            var year  = row.getAttribute('data-year');\n\n            var matchesSearch = searchValue === '' || title.includes(searchValue);\n            var matchesPromo  = selectedPromo === '' || promo === selectedPromo;\n            var matchesYear   = selectedYear === '' || year === selectedYear;\n\n            if (matchesSearch && matchesPromo && matchesYear) {\n                row.style.display = 'flex';\n                visibleCount++;\n            } else {\n                row.style.display = 'none';\n            }\n        });\n\n        \/\/ Update matches count\n        if (countNum) countNum.textContent = visibleCount;\n\n        \/\/ Toggle reset button visibility\n        if (searchValue !== '' || selectedPromo !== '' || selectedYear !== '') {\n            if (resetBtn) resetBtn.style.display = 'flex';\n        } else {\n            if (resetBtn) resetBtn.style.display = 'none';\n        }\n\n        \/\/ Toggle empty message\n        if (visibleCount === 0) {\n            if (emptyMsg) emptyMsg.style.display = 'block';\n        } else {\n            if (emptyMsg) emptyMsg.style.display = 'none';\n        }\n    }\n\n    \/\/ Reset filters\n    if (resetBtn) {\n        resetBtn.addEventListener('click', function() {\n            if (searchInput) searchInput.value = '';\n            if (promoFilter) promoFilter.value = '';\n            if (yearFilter) yearFilter.value = '';\n            filterResults();\n        });\n    }\n\n    \/\/ Bind event listeners\n    if (searchInput) searchInput.addEventListener('keyup', filterResults);\n    if (promoFilter) promoFilter.addEventListener('change', filterResults);\n    if (yearFilter)  yearFilter.addEventListener('change', filterResults);\n});\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-37","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/pages\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37"}],"version-history":[{"count":4,"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/pages\/37\/revisions"}],"predecessor-version":[{"id":186,"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=\/wp\/v2\/pages\/37\/revisions\/186"}],"wp:attachment":[{"href":"https:\/\/isaukinshasa.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}