{"id":398,"date":"2026-06-04T16:19:01","date_gmt":"2026-06-04T13:19:01","guid":{"rendered":"https:\/\/nor-m.com\/?page_id=398"},"modified":"2026-06-04T16:19:55","modified_gmt":"2026-06-04T13:19:55","slug":"%d9%85%d8%b9%d8%b1%d8%b6-%d9%85%d8%b4%d8%a7%d8%b1%d9%8a%d8%b9-%d8%a7%d9%84%d8%b7%d9%84%d8%a7%d8%a8","status":"publish","type":"page","link":"https:\/\/nor-m.com\/en\/%d9%85%d8%b9%d8%b1%d8%b6-%d9%85%d8%b4%d8%a7%d8%b1%d9%8a%d8%b9-%d8%a7%d9%84%d8%b7%d9%84%d8%a7%d8%a8\/","title":{"rendered":"Student Projects Exhibition"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"398\" class=\"elementor elementor-398\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7013c7d e-flex e-con-boxed e-con e-parent\" data-id=\"7013c7d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d9a11f6 elementor-widget elementor-widget-shortcode\" data-id=\"d9a11f6\" 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\">    <div class=\"rf-container rf-animated\">\n        \n        <!-- Heading -->\n        <div style=\"text-align: center; margin-bottom: 35px;\">\n            <h1 style=\"font-size: 30px; color: #062938; font-weight: 900; margin-bottom: 10px;\">\u0645\u0639\u0631\u0636 \u0645\u0634\u0627\u0631\u064a\u0639 \u0623\u0628\u0637\u0627\u0644 \u0627\u0644\u0635\u064a\u0641 \ud83c\udfa8<\/h1>\n            <p style=\"color: #64748b; font-size: 16px;\">\u062a\u0635\u0641\u062d \u0627\u0628\u062a\u0643\u0627\u0631\u0627\u062a \u0627\u0644\u0637\u0644\u0627\u0628\u060c \u0648\u0634\u062c\u0639\u0647\u0645 \u0628\u0627\u0644\u062a\u0635\u0648\u064a\u062a \u0644\u0645\u0634\u0627\u0631\u064a\u0639\u0647\u0645 \u0627\u0644\u0645\u0641\u0636\u0644\u0629!<\/p>\n        <\/div>\n\n        <!-- Filters Form -->\n        <form method=\"get\" action=\"\" style=\"background: #ffffff; padding: 20px; border-radius: 12px; box-shadow: 0 4px 15px rgba(0,0,0,0.03); border: 1px solid #e2e8f0; display: flex; flex-wrap: wrap; gap: 15px; align-items: center; justify-content: center; margin-bottom: 30px;\" data-trp-original-action=\"\">\n            \n            <!-- Stage Filter -->\n            <div>\n                <label style=\"font-weight: 700; margin-left: 8px; font-size: 14px;\">\u0627\u0644\u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u062f\u0631\u0627\u0633\u064a\u0629:<\/label>\n                <select name=\"filter_stage\" style=\"padding: 8px 16px; border-radius: 6px; border: 1px solid #cbd5e1; font-family: inherit;\">\n                    <option value=\"all\"  selected='selected'>\u0627\u0644\u0643\u0644<\/option>\n                    <option value=\"primary\" >\u0627\u0644\u0627\u0628\u062a\u062f\u0627\u0626\u064a\u0629 (\u0627\u0644\u0628\u0637\u0644 \u0627\u0644\u0635\u0627\u0646\u0639)<\/option>\n                    <option value=\"preparatory\" >\u0627\u0644\u0625\u0639\u062f\u0627\u062f\u064a\u0629 (\u0627\u0644\u0645\u0633\u062a\u0643\u0634\u0641)<\/option>\n                    <option value=\"secondary\" >\u0627\u0644\u062b\u0627\u0646\u0648\u064a\u0629 (\u0627\u0644\u0645\u0635\u0645\u0645 \u0627\u0644\u0635\u063a\u064a\u0631)<\/option>\n                <\/select>\n            <\/div>\n\n            <!-- Week Filter -->\n            <div>\n                <label style=\"font-weight: 700; margin-left: 8px; font-size: 14px;\">\u0627\u0644\u0623\u0633\u0628\u0648\u0639:<\/label>\n                <select name=\"filter_week\" style=\"padding: 8px 16px; border-radius: 6px; border: 1px solid #cbd5e1; font-family: inherit;\">\n                    <option value=\"0\"  selected='selected'>\u0643\u0644 \u0627\u0644\u0623\u0633\u0627\u0628\u064a\u0639<\/option>\n                                            <option value=\"1\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 1<\/option>\n                                            <option value=\"2\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 2<\/option>\n                                            <option value=\"3\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 3<\/option>\n                                            <option value=\"4\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 4<\/option>\n                                            <option value=\"5\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 5<\/option>\n                                            <option value=\"6\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 6<\/option>\n                                            <option value=\"7\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 7<\/option>\n                                            <option value=\"8\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 8<\/option>\n                                            <option value=\"9\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 9<\/option>\n                                            <option value=\"10\" >\u0627\u0644\u0623\u0633\u0628\u0648\u0639 10<\/option>\n                                    <\/select>\n            <\/div>\n\n            <!-- Submit Filter -->\n            <button type=\"submit\" class=\"rf-btn-primary\" style=\"padding: 9px 25px;\"><i class=\"ph ph-funnel\"><\/i> \u062a\u0635\u0641\u064a\u0629 \u0627\u0644\u0645\u0634\u0627\u0631\u064a\u0639<\/button>\n        <input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>\n\n        <!-- Projects Grid -->\n                    <div style=\"background:#ffffff; border:1px solid #e2e8f0; padding:60px 20px; text-align:center; border-radius:12px; color:#64748b;\">\n                <i class=\"ph ph-folder-open\" style=\"font-size:50px; margin-bottom:10px; display:inline-block;\"><\/i>\n                <p style=\"margin:0; font-weight:700;\">\u0644\u0627 \u062a\u0648\u062c\u062f \u0645\u0634\u0627\u0631\u064a\u0639 \u0645\u0631\u0641\u0648\u0639\u0629 \u0645\u0637\u0627\u0628\u0642\u0629 \u0644\u0644\u062a\u0635\u0641\u064a\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629 \u0628\u0639\u062f!<\/p>\n            <\/div>\n        \n    <\/div>\n        <!-- project preview modal -->\n    <div id=\"rf-preview-modal\">\n        <div class=\"rf-preview-content\">\n            <!-- Modal Header -->\n            <div style=\"background:#062938; padding:15px 25px; color:#ffffff; display:flex; justify-content:space-between; align-items:center;\">\n                <h3 id=\"rf-preview-modal-title\" style=\"margin:0; font-size:18px; font-weight:700; color:#ffffff !important;\">\u0645\u0639\u0627\u064a\u0646\u0629 \u0627\u0644\u0645\u0634\u0631\u0648\u0639<\/h3>\n                <button type=\"button\" onclick=\"closeRfPreviewModal()\" style=\"background:none; border:none; color:#ffffff; font-size:24px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; line-height:1;\"><i class=\"ph ph-x\"><\/i><\/button>\n            <\/div>\n            \n            <!-- Modal Body -->\n            <div id=\"rf-preview-modal-body\" style=\"padding:25px; overflow-y:auto; flex:1; display:flex; align-items:center; justify-content:center; background:#f8fafc; min-height:300px;\">\n                <!-- Dynamic Content Injected Here -->\n            <\/div>\n            \n            <!-- Modal Footer -->\n            <div style=\"padding:15px 25px; border-top:1px solid #e2e8f0; background:#ffffff; display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap;\">\n                <span id=\"rf-preview-modal-author\" style=\"font-size:14px; color:#64748b;\"><\/span>\n                <div style=\"display:flex; gap:10px;\">\n                    <a id=\"rf-preview-modal-download\" href=\"#\" download class=\"rf-btn-secondary\" style=\"padding:8px 16px; font-size:14px; display:none;\"><i class=\"ph ph-download-simple\"><\/i> \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0644\u0641<\/a>\n                    <a id=\"rf-preview-modal-external\" href=\"#\" target=\"_blank\" class=\"rf-btn-primary\" style=\"padding:8px 16px; font-size:14px; display:none;\"><i class=\"ph ph-arrow-square-out\"><\/i> \u0641\u062a\u062d \u0641\u064a \u062a\u0628\u0648\u064a\u0628 \u062c\u062f\u064a\u062f<\/a>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n    <script type=\"text\/javascript\">\n    function openRfPreviewModal(title, author, type, url) {\n        const modal = document.getElementById('rf-preview-modal');\n        const modalTitle = document.getElementById('rf-preview-modal-title');\n        const modalAuthor = document.getElementById('rf-preview-modal-author');\n        const modalBody = document.getElementById('rf-preview-modal-body');\n        const modalDownload = document.getElementById('rf-preview-modal-download');\n        const modalExternal = document.getElementById('rf-preview-modal-external');\n        \n        if (!modal) return;\n        \n        \/\/ Set title and author\n        modalTitle.innerText = title;\n        modalAuthor.innerText = author ? '\u0628\u0648\u0627\u0633\u0637\u0629: ' + author : '';\n        \n        \/\/ Reset\n        modalDownload.style.display = 'none';\n        modalExternal.style.display = 'none';\n        modalBody.innerHTML = '';\n        \n        if (type === 'image') {\n            modalBody.innerHTML = `<img decoding=\"async\" src=\"${url}\" style=\"max-width:100%; max-height:60vh; object-fit:contain; border-radius:8px; box-shadow:0 4px 15px rgba(0,0,0,0.1);\" \/>`;\n            modalDownload.href = url;\n            modalDownload.style.display = 'inline-flex';\n            modalExternal.href = url;\n            modalExternal.style.display = 'inline-flex';\n        } else if (type === 'video') {\n            modalBody.innerHTML = `<video controls autoplay style=\"width:100%; max-height:60vh; border-radius:8px; background:#000; box-shadow:0 4px 15px rgba(0,0,0,0.1);\"><source src=\"${url}\" type=\"video\/mp4\">\u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u062a\u0634\u063a\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0641\u064a\u062f\u064a\u0648.<\/video>`;\n            modalDownload.href = url;\n            modalDownload.style.display = 'inline-flex';\n            modalExternal.href = url;\n            modalExternal.style.display = 'inline-flex';\n        } else if (type === 'pdf') {\n            modalBody.innerHTML = `<iframe src=\"${url}\" style=\"width:100%; height:60vh; border:none; border-radius:8px; background:#fff; box-shadow:0 4px 15px rgba(0,0,0,0.05);\"><\/iframe>`;\n            modalDownload.href = url;\n            modalDownload.style.display = 'inline-flex';\n            modalExternal.href = url;\n            modalExternal.style.display = 'inline-flex';\n        } else if (type === 'canva') {\n            modalBody.innerHTML = `<div style=\"text-align:center; padding:40px 20px;\"><i class=\"ph ph-palette\" style=\"font-size:60px; color:#7d2ae8; margin-bottom:15px; display:inline-block;\"><\/i><p style=\"font-weight:700; font-size:16px; margin:0 0 20px 0; color:#062938;\">\u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u0639\u0628\u0627\u0631\u0629 \u0639\u0646 \u062a\u0635\u0645\u064a\u0645 Canva \u062a\u0641\u0627\u0639\u0644\u064a.<\/p><a href=\"${url}\" target=\"_blank\" class=\"rf-btn-primary\" style=\"background:#7d2ae8; border-color:#7d2ae8;\"><i class=\"ph ph-arrow-square-out\"><\/i> \u0641\u062a\u062d \u062a\u0635\u0645\u064a\u0645 Canva \u2197\ufe0f<\/a><\/div>`;\n        } else {\n            modalBody.innerHTML = `<div style=\"text-align:center; padding:40px 20px;\"><i class=\"ph ph-file\" style=\"font-size:60px; color:#64748b; margin-bottom:15px; display:inline-block;\"><\/i><p style=\"font-weight:700; font-size:16px; margin:0 0 20px 0; color:#062938;\">\u0647\u0630\u0627 \u0627\u0644\u0645\u0644\u0641 \u063a\u064a\u0631 \u0645\u062f\u0639\u0648\u0645 \u0644\u0644\u0645\u0639\u0627\u064a\u0646\u0629 \u0627\u0644\u0645\u0628\u0627\u0634\u0631\u0629.<\/p><\/div>`;\n            modalDownload.href = url;\n            modalDownload.style.display = 'inline-flex';\n        }\n        \n        modal.style.display = 'flex';\n    }\n\n    function closeRfPreviewModal() {\n        const modal = document.getElementById('rf-preview-modal');\n        const modalBody = document.getElementById('rf-preview-modal-body');\n        if (modal) {\n            modal.style.display = 'none';\n            modalBody.innerHTML = ''; \/\/ Stop video playback when closing\n        }\n    }\n    \n    \/\/ Close on escape key\n    document.addEventListener('keydown', function(e) {\n        if (e.key === 'Escape') {\n            closeRfPreviewModal();\n        }\n    });\n\n    \/\/ Close when clicking outside the modal content\n    document.addEventListener('click', function(e) {\n        const modal = document.getElementById('rf-preview-modal');\n        if (e.target === modal) {\n            closeRfPreviewModal();\n        }\n    });\n    <\/script>\n    \n    <!-- AJAX Core Script -->\n    <script type=\"text\/javascript\">\n    function castVote(projectId) {\n        const btn = document.getElementById('vote-btn-' + projectId);\n        const countSpan = document.getElementById('vote-count-' + projectId);\n        if (!btn || !countSpan) return;\n\n        btn.disabled = true;\n        const btnText = btn.querySelector('.btn-text');\n        const originalText = btnText.innerText;\n        btnText.innerText = '\u062c\u0627\u0631\u064a \u0627\u0644\u062a\u0633\u062c\u064a\u0644...';\n\n        const formData = new FormData();\n        formData.append('action', 'reliant_festival_vote');\n        formData.append('project_id', projectId);\n        formData.append('nonce', '996490c4c3');\n\n        fetch('https:\/\/nor-m.com\/wp-admin\/admin-ajax.php', {\n            method: 'POST',\n            body: formData\n        })\n        .then(res => res.json())\n        .then(response => {\n            if (response.success) {\n                countSpan.innerText = response.data.new_votes;\n                btn.className = 'rf-btn-secondary';\n                btnText.innerText = '\u062a\u0645 \u0627\u0644\u062a\u0635\u0648\u064a\u062a';\n                btn.disabled = true;\n            } else {\n                alert(response.data || '\u062d\u062f\u062b \u062e\u0637\u0623 \u063a\u064a\u0631 \u0645\u062a\u0648\u0642\u0639.');\n                btnText.innerText = originalText;\n                btn.disabled = false;\n            }\n        })\n        .catch(err => {\n            alert('\u062e\u0637\u0623 \u0641\u064a \u0627\u0644\u0627\u062a\u0635\u0627\u0644 \u0628\u0627\u0644\u0633\u064a\u0631\u0641\u0631.');\n            btnText.innerText = originalText;\n            btn.disabled = false;\n        });\n    }\n\n    function copyProjectLink(projectId, btn) {\n        const url = window.location.origin + window.location.pathname + window.location.search + '#project-' + projectId;\n        \n        function showSuccess() {\n            const span = btn.querySelector('span');\n            const icon = btn.querySelector('i');\n            const originalText = span.innerText;\n            const originalIconClass = icon ? icon.className : '';\n            \n            span.innerText = '\u062a\u0645 \u0627\u0644\u0646\u0633\u062e!';\n            if (icon) icon.className = 'ph ph-check';\n            \n            setTimeout(() => {\n                span.innerText = originalText;\n                if (icon) icon.className = originalIconClass;\n            }, 2000);\n        }\n\n        if (navigator.clipboard && navigator.clipboard.writeText) {\n            navigator.clipboard.writeText(url).then(showSuccess).catch(err => {\n                fallbackCopy(url);\n            });\n        } else {\n            fallbackCopy(url);\n        }\n\n        function fallbackCopy(text) {\n            const textArea = document.createElement(\"textarea\");\n            textArea.value = text;\n            textArea.style.position = \"fixed\";\n            textArea.style.left = \"-999999px\";\n            textArea.style.top = \"-999999px\";\n            document.body.appendChild(textArea);\n            textArea.focus();\n            textArea.select();\n            try {\n                document.execCommand('copy');\n                showSuccess();\n            } catch (err) {\n                alert('\u0641\u0634\u0644 \u0646\u0633\u062e \u0627\u0644\u0631\u0627\u0628\u0637.');\n            }\n            document.body.removeChild(textArea);\n        }\n    }\n\n    function highlightProjectFromHash() {\n        const hash = window.location.hash;\n        if (hash && hash.startsWith('#project-')) {\n            const projectId = hash.replace('#project-', '');\n            const card = document.getElementById('project-' + projectId);\n            if (card) {\n                document.querySelectorAll('.rf-project-card').forEach(c => c.classList.remove('highlight-flash'));\n                setTimeout(function() {\n                    card.scrollIntoView({ behavior: 'smooth' });\n                    card.classList.add('highlight-flash');\n                }, 300);\n            }\n        }\n    }\n    document.addEventListener(\"DOMContentLoaded\", highlightProjectFromHash);\n    window.addEventListener(\"hashchange\", highlightProjectFromHash);\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-398","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/pages\/398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/comments?post=398"}],"version-history":[{"count":4,"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/pages\/398\/revisions"}],"predecessor-version":[{"id":402,"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/pages\/398\/revisions\/402"}],"wp:attachment":[{"href":"https:\/\/nor-m.com\/en\/wp-json\/wp\/v2\/media?parent=398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}