function initContactModule(moduleId) { // ๐Ÿ’ก [์ˆ˜์ •] ID ์„ ํƒ์ž ์ˆ˜์ • (module.php์—์„œ ์ƒ์„ฑํ•œ ID ์‚ฌ์šฉ) // module.php์—์„œ $module_id = 'contact_module_'.uniqid(); ๋กœ ์ƒ์„ฑ๋œ ID๊ฐ€ ๋„˜์–ด์˜ด // ํ•˜์ง€๋งŒ HTML ๊ตฌ์กฐ์ƒ ์ตœ์ƒ์œ„ ID๋Š” 'laser-contact-module'๋กœ ๊ณ ์ •๋˜์–ด ์žˆ์Œ (module.php ํ™•์ธ) // ๋”ฐ๋ผ์„œ moduleId ์ธ์ž๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๊ณ ์ • ID๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, module.php๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•จ. // ์—ฌ๊ธฐ์„œ๋Š” module.php์˜ ๊ตฌ์กฐ์— ๋งž์ถฐ #laser-contact-module์„ ๊ธฐ์ค€์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ์ˆ˜์ •. const moduleElement = document.getElementById('laser-contact-module'); if (!moduleElement || moduleElement.classList.contains('initialized')) return; const modal = moduleElement; // ๋ชจ๋‹ฌ ์ „์ฒด ์ปจํ…Œ์ด๋„ˆ const closeBtn = moduleElement.querySelector('.modal-close'); // ๋‹ซ๊ธฐ ๋ฒ„ํŠผ (ํ˜„์žฌ HTML์—” ์—†์Œ, ์ถ”๊ฐ€ ํ•„์š” ์‹œ) const form = moduleElement.querySelector('.contact-form'); const formMessages = moduleElement.querySelector('.form-message-area'); // ๐Ÿ’ก [์ถ”๊ฐ€] ๋ชจ๋‹ฌ ์—ด๊ธฐ/๋‹ซ๊ธฐ ๊ธฐ๋Šฅ (ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฃผ์„ ํ•ด์ œ ๋ฐ HTML ์ˆ˜์ •) /* const openModal = (e) => { if (e) e.preventDefault(); modal.classList.add('active'); document.body.style.overflow = 'hidden'; }; const closeModal = () => { modal.classList.remove('active'); document.body.style.overflow = ''; }; // ์™ธ๋ถ€ ํŠธ๋ฆฌ๊ฑฐ ๋ฒ„ํŠผ ์—ฐ๊ฒฐ (์˜ˆ: .btn-open-contact-modal ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ๋ฒ„ํŠผ) document.addEventListener('click', function(e) { const targetBtn = e.target.closest('.btn-open-contact-modal'); if (targetBtn) { openModal(e); } }); if (closeBtn) closeBtn.addEventListener('click', closeModal); // ์˜ค๋ฒ„๋ ˆ์ด ํด๋ฆญ ์‹œ ๋‹ซ๊ธฐ modal.addEventListener('click', (e) => { if (e.target === modal) closeModal(); }); document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && modal.classList.contains('active')) { closeModal(); } }); */ // universalMailer๋ฅผ ์‚ฌ์šฉํ•œ ํผ ์ œ์ถœ ๋กœ์ง if (form) { form.addEventListener('submit', function(e) { e.preventDefault(); const submitBtn = this.querySelector('button[type="submit"]'); const originalBtnText = submitBtn.textContent; submitBtn.disabled = true; submitBtn.textContent = '์ „์†ก ์ค‘...'; formMessages.innerHTML = ''; // ์ด์ „ ๋ฉ”์‹œ์ง€ ์ดˆ๊ธฐํ™” formMessages.className = 'form-message-area'; // ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” const formData = new FormData(form); const variables = { contact_subject: formData.get('contact_subject'), // ๐Ÿ’ก [์ถ”๊ฐ€] ๋ฌธ์˜ ํ•ญ๋ชฉ contact_name: formData.get('contact_name'), contact_hp: formData.get('contact_hp'), contact_email: formData.get('contact_email'), contact_message: formData.get('contact_message').replace(/\n/g, '
') }; // universalMailer ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ if (window.universalMailer && typeof window.universalMailer.send === 'function') { window.universalMailer.send({ template_code: 'contact_inquiry', // ๊ด€๋ฆฌ์ž์—์„œ ์ƒ์„ฑํ•œ ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ // to_email: variables.contact_email, //์ˆ˜์‹ ์ž์ž„ ๋ฌธ์˜ ํ•˜๊ธฐ ๊ฐ™์€๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ๋ฐ›์•„์•ผ ํ•ด์„œ ๋น„์›Œ๋‘”๋‹ค variables: variables, onSuccess: function(response) { alert(response.message || '์ƒ๋‹ด ์‹ ์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ ‘์ˆ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.'); form.reset(); formMessages.innerHTML = '์„ฑ๊ณต์ ์œผ๋กœ ์ ‘์ˆ˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.'; formMessages.classList.add('success'); // closeModal(); // ๋ชจ๋‹ฌ ๋‹ซ๊ธฐ (ํ•„์š”์‹œ) }, onError: function(errorMessage) { formMessages.innerHTML = errorMessage || '์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.'; formMessages.classList.add('error'); }, onComplete: function() { submitBtn.disabled = false; submitBtn.textContent = originalBtnText; } }); } else { alert('๋ฉ”์ผ ๋ฐœ์†ก ๊ธฐ๋Šฅ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•ด์ฃผ์„ธ์š”.'); submitBtn.disabled = false; submitBtn.textContent = originalBtnText; } }); } moduleElement.classList.add('initialized'); } // ์ „์—ญ ํ•จ์ˆ˜๋กœ ๋…ธ์ถœ window.initContactModule = initContactModule;