- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 462 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_column->render_content() (line 463 of themes/gavias_kunco/gva_content_builder/gva_column.php).
element_gva_column->render_content(Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_column', Array, '
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 58)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
- Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in element_gva_row->render_content() (line 317 of themes/gavias_kunco/gva_content_builder/gva_row.php).
element_gva_row->render_content(Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 110)
gavias_content_builder_render_element('gva_row', Array, '
İslam'ın Üçüncü Şartı
Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki
En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.
Bugünün Altın Nisabı
85 Gram
Güncel altın fiyatına göre eşdeğeri $6,502.50
Nakit ve Mevduat
Altın ve Gümüş
Hisse Senetleri ve Ticaret
Hayır Projeleri
-->
Nakit ve Banka Mevduatları
Mevcut Nakit
Banka Mevduatları ve Bakiyeler
Size Olan Borçlar
Tahsil etmeyi beklediğiniz borçlar
Sizin Olan Borçlarınız
Toplam varlıktan düşülür
Altın, Gümüş ve Mücevherler
Altın Ağırlığı (Gram)
Kişisel kullanım dışında kalan miktar
Altın Ayarı
Ayar 24 (Saf)
Ayar 22
Ayar 21
Ayar 18
Gümüş Ağırlığı (Gram)
Bugünün Altın Fiyatı
Gram başına fiyat (dolar cinsinden)
Nisab Hesaplayıcı
Altın Nisabı
85 Gram
Gümüş Nisabı
595 Gram
Dolar Değeri
$6,502.50
Ticari ve Yatırım Varlıkları
Mevcut Hisse Değeri
Ticari Mallar
Satılık olan mallar
Yatırım Gayrimenkulleri
Diğer Varlıklar
Hayır Projelerinizi Seçin
Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz
Bağış Sepeti
Henüz herhangi bir proje eklemediniz
Belirlenen Toplam Tutar
0.00 $
Bağışı Tamamla
Zekatın Farz Olma Şartları
<ul class="space-y-3 text-gray-600">
<li class="flex items-start gap-3">
Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)
</li>
<li class="flex items-start gap-3">
Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)
</li>
<li class="flex items-start gap-3">
Mala tam mülkiyet ve tasarruf edebilme gücü
</li>
</ul>
Vicdan Güvencesi
Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.
Hesaplama Özeti
Zekata Tabi Toplam Mal
0.00 $
Mevcut Zekat Nisabı
6,502.50 $
Farz Olan Zekat (%2.5)
0.00 $
Kontrol etmek için tutarı girin
<a href="https://wa.me/905057763103" class="sponsorships-btn-secondary sponsorships-btn-full mt-4" target="_blank">
Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin
</a>
Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.
Sıfırla
Hesaplamayı Kaydet
// Initialize charity projects
const charityProjects = [
{
id: 1,
title: "Oruç Açtırma",
description: "Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması",
icon: "fa-utensils",
cost: 500,
selected: false
},
{
id: 2,
title: "Kışlık Giysi",
description: "İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı",
icon: "fa-shirt",
cost: 300,
selected: false
},
{
id: 3,
title: "Su Kuyusu",
description: "Kuyu açılması ve temiz içme suyu sağlanması",
icon: "fa-droplet",
cost: 1000,
selected: false
},
{
id: 4,
title: "Yetim Eğitimi",
description: "Yetimlere eğitim desteği ve okul malzemeleri",
icon: "fa-graduation-cap",
cost: 400,
selected: false
},
{
id: 5,
title: "Hasta Tedavisi",
description: "Gücü yetmeyen ailelerin tedavi masraflarının karşılanması",
icon: "fa-heart-pulse",
cost: 800,
selected: false
},
{
id: 6,
title: "Dul Kadın Bakımı",
description: "Dul kadınlara ve çocuklarına aylık destek",
icon: "fa-hand-holding-heart",
cost: 600,
selected: false
}
];
// Donation basket
let donationBasket = [];
// Tab system
function zakatSwitchTab(tab) {
// Update tabs
document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));
document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));
// Activate selected tab
document.getElementById('zakat-tab-' + tab).classList.add('active');
document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');
// Load charity projects if on charity tab
if (tab === 'charity') {
loadCharityProjects();
}
// Add animation
const activeSection = document.getElementById('zakat-section-' + tab);
activeSection.classList.add('zakat-fade-in');
}
// Load charity projects
function loadCharityProjects() {
const container = document.getElementById('charity-projects-container');
if (!container) return;
container.innerHTML = '';
charityProjects.forEach(project => {
const projectElement = document.createElement('div');
projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;
projectElement.innerHTML = `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
${project.selected ? 'Eklendi' : 'Ekle'}
`;
container.appendChild(projectElement);
});
updateBasketDisplay();
}
// Toggle charity project selection
function toggleCharityProject(projectId) {
const project = charityProjects.find(p => p.id === projectId);
project.selected = !project.selected;
if (project.selected) {
donationBasket.push(project);
} else {
donationBasket = donationBasket.filter(p => p.id !== projectId);
}
loadCharityProjects();
updateBasketDisplay();
}
// Update donation basket display
function updateBasketDisplay() {
const container = document.getElementById('donation-basket-items');
const totalElement = document.getElementById('basket-total');
if (!container || !totalElement) return;
if (donationBasket.length === 0) {
container.innerHTML = 'Henüz herhangi bir proje eklemediniz';
totalElement.textContent = '0.00 $';
return;
}
let total = 0;
let itemsHTML = '';
donationBasket.forEach(project => {
total += project.cost;
itemsHTML += `
${project.title}
${project.description}
${project.cost.toLocaleString()} $
`;
});
container.innerHTML = itemsHTML;
totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Remove from basket
function removeFromBasket(projectId) {
const project = charityProjects.find(p => p.id === projectId);
if (project) {
project.selected = false;
}
donationBasket = donationBasket.filter(p => p.id !== projectId);
loadCharityProjects();
}
// Enhanced Calculation
function zakatCalculate() {
// Money
const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;
const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;
const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;
const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;
// Gold/Silver
const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;
const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;
const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;
const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;
const silverRate = 0.95;
// Stocks & Business
const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;
const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;
const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;
const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;
// Calculations
const gold24Equivalent = goldW * (carat / 24);
const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);
const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);
const businessAssets = stocks + trade + realEstate + otherAssets;
const total = Math.max(0, moneyAssets + metalAssets + businessAssets);
// UI Update - Total
const totalAssetsEl = document.getElementById('zakat-total-assets');
if (totalAssetsEl) {
totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Nisab Logic (85g Gold 24k)
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update nisab displays
const nisabValueDisplayEl = document.getElementById('nisab-value-display');
if (nisabValueDisplayEl) {
nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
const currentNisabEl = document.getElementById('current-nisab');
if (currentNisabEl) {
currentNisabEl.textContent = '85 Gram';
}
const nisabValueEl2 = document.getElementById('nisab-value');
if (nisabValueEl2) {
nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
// Update progress bar
const nisabProgress = Math.min(100, (total / nisab) * 100);
const progressEl = document.getElementById('nisab-progress');
if (progressEl) {
progressEl.style.width = `${nisabProgress}%`;
}
const zakatAmountEl = document.getElementById('zakat-amount');
const statusBadge = document.getElementById('zakat-status-badge');
if (zakatAmountEl && statusBadge) {
if (total >= nisab && total > 0) {
const zakat = total * 0.025;
zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4";
} else {
zakatAmountEl.textContent = '0.00 $';
if (total > 0) {
statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4";
} else {
statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';
statusBadge.className = "inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4";
}
}
}
}
// Fetch live rates
async function zakatFetchRates() {
const icon = document.getElementById('zakat-refresh-icon');
if (icon) icon.classList.add('fa-spin');
// Simulate API call
await new Promise(r => setTimeout(r, 1000));
// Dynamic change for effect (simulated rate change)
const goldRateInput = document.getElementById('zakat-gold-rate');
if (goldRateInput) {
const current = parseFloat(goldRateInput.value);
const newRate = current + (Math.random() - 0.5) * 2;
goldRateInput.value = newRate.toFixed(2);
}
if (icon) icon.classList.remove('fa-spin');
zakatCalculate();
}
// Reset form
function zakatResetForm() {
document.querySelectorAll('input[type="number"]').forEach(input => {
if (input) input.value = '';
});
donationBasket = [];
charityProjects.forEach(p => p.selected = false);
loadCharityProjects();
zakatCalculate();
}
// Save calculation
function zakatSaveCalculation() {
const totalEl = document.getElementById('zakat-total-assets');
const zakatEl = document.getElementById('zakat-amount');
const total = totalEl ? totalEl.textContent : '0';
const zakat = zakatEl ? zakatEl.textContent : '0';
alert(`Hesaplama kaydedildi:\nToplam Mal: ${total}\nFarz Olan Zekat: ${zakat}`);
}
// Checkout
function zakatCheckout() {
const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);
if (total === 0) {
alert('Lütfen önce bağış sepetine projeler ekleyin');
return;
}
alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html';
}
// Redirect to payment
function zakatRedirectToPayment() {
const zakatAmountEl = document.getElementById('zakat-amount');
const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';
if (zakatAmount === '0.00 $') {
alert('Lütfen önce zekat hesaplamak için tutarı girin');
return;
}
alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);
// In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);
}
// Intersection Observer for animations
document.addEventListener('DOMContentLoaded', () => {
// Initialize animations
const reveals = document.querySelectorAll('.zakat-reveal');
const obs = new IntersectionObserver((entries) => {
entries.forEach(e => {
if (e.isIntersecting) e.target.classList.add('active');
});
}, { threshold: 0.1 });
reveals.forEach(r => obs.observe(r));
// Initialize calculation
zakatCalculate();
// Load initial nisab value
const goldRateInput = document.getElementById('zakat-gold-rate');
const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;
const nisab = 85 * goldRate;
const nisabValueEl = document.getElementById('zakat-nisab-value');
if (nisabValueEl) {
nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';
}
});
') (Line: 62)
gavias_content_builder_render_el(Array) (Line: 22)
gavias_content_builder_frontend('[{"settings":{"element":"gva_row","bg_particles":"off","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","style_space":"remove_margin remove_padding remove_padding_col","padding_top":"0","padding_bottom":"0","margin_top":"0","margin_bottom":"0","layout":"container-fw","class":"aboutus"},"columns":[{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n İslam'ın Üçüncü Şartı\r\n Akıllı Zekat HesaplamaDoğru Ödeme.. Büyük Etki\r\n \r\n \r\n En güncel fiyatlar ve en doğru şer'i hükümlere göre zekatınızı hesaplamak için kapsamlı hesap makinesi, ibadetinizi doğruluk ve güvenle yerine getirmenize yardımcı olmak için tasarlanmıştır.\r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n \r\n \r\n Güncel altın fiyatına göre eşdeğeri $6,502.50\r\n \r\n \r\n \r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column","bg_position":"center top","bg_repeat":"no-repeat","bg_attachment":"scroll","bg_size":"cover","class":"zakatt"},"col_lg":12,"elements":[{"settings":{"content":"\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Mevduat\r\n \r\n \r\n \r\n Altın ve Gümüş\r\n \r\n \r\n \r\n Hisse Senetleri ve Ticaret\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Nakit ve Banka Mevduatları\r\n \r\n \r\n \r\n \r\n Mevcut Nakit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Banka Mevduatları ve Bakiyeler\r\n \r\n \r\n \r\n \r\n \r\n \r\n Size Olan Borçlar\r\n \r\n \r\n \r\n \r\n Tahsil etmeyi beklediğiniz borçlar\r\n \r\n \r\n Sizin Olan Borçlarınız\r\n \r\n \r\n \r\n \r\n Toplam varlıktan düşülür\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Altın, Gümüş ve Mücevherler\r\n \r\n \r\n \r\n Altın Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n Kişisel kullanım dışında kalan miktar\r\n \r\n \r\n Altın Ayarı\r\n \r\n \r\n Ayar 24 (Saf)\r\n Ayar 22\r\n Ayar 21\r\n Ayar 18\r\n \r\n \r\n \r\n \r\n \r\n Gümüş Ağırlığı (Gram)\r\n \r\n \r\n \r\n \r\n \r\n \r\n Bugünün Altın Fiyatı\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Gram başına fiyat (dolar cinsinden)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Nisab Hesaplayıcı\r\n \r\n \r\n \r\n Altın Nisabı\r\n 85 Gram\r\n \r\n \r\n Gümüş Nisabı\r\n 595 Gram\r\n \r\n \r\n Dolar Değeri\r\n $6,502.50\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Ticari ve Yatırım Varlıkları\r\n \r\n \r\n \r\n Mevcut Hisse Değeri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Ticari Mallar\r\n \r\n \r\n \r\n \r\n Satılık olan mallar\r\n \r\n \r\n Yatırım Gayrimenkulleri\r\n \r\n \r\n \r\n \r\n \r\n \r\n Diğer Varlıklar\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hayır Projelerinizi Seçin\r\n \r\n Zekatınızı dilediğiniz gibi birden fazla hayır projesine dağıtabilirsiniz\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Bağış Sepeti\r\n \r\n \r\n Henüz herhangi bir proje eklemediniz\r\n \r\n \r\n \r\n Belirlenen Toplam Tutar\r\n 0.00 $\r\n \r\n \r\n Bağışı Tamamla\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Zekatın Farz Olma Şartları\r\n \r\n <ul>\r\n <li>\r\n \r\n Nisaba ulaşmak (24 ayar 85 gram altın değerinde mala sahip olmak)\r\n </li>\r\n <li>\r\n \r\n Üzerinden bir hicri yıl geçmesi (malın üzerinden bir yıl geçmesi)\r\n </li>\r\n <li>\r\n \r\n Mala tam mülkiyet ve tasarruf edebilme gücü\r\n </li>\r\n </ul>\r\n \r\n \r\n \r\n \r\n Vicdan Güvencesi\r\n \r\n \r\n Vicdan Yardım Derneği olarak, zekatınızı uzman şer'i komitelerin gözetiminde sekiz şer'i payda dağıtmayı, en yüksek şeffaflık ve takip standartlarını garanti etmeyi taahhüt ediyoruz.\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Hesaplama Özeti\r\n \r\n\r\n \r\n \r\n Zekata Tabi Toplam Mal\r\n 0.00 $\r\n \r\n \r\n Mevcut Zekat Nisabı\r\n 6,502.50 $\r\n \r\n \r\n\r\n \r\n Farz Olan Zekat (%2.5)\r\n 0.00 $\r\n \r\n \r\n Kontrol etmek için tutarı girin\r\n \r\n \r\n\r\n \r\n <a>\r\n \r\n Danışmanlık ve Bağış için WhatsApp ile İletişime Geçin\r\n </a>\r\n \r\n\r\n \r\n Tüm hesaplamalar küresel altın fiyatlarına ve en güncel şer'i fetvalara dayanmaktadır. Kesin fıkhi konularda ilim sahiplerine danışmanızı öneririz.\r\n \r\n \r\n \r\n \r\n \r\n Sıfırla\r\n \r\n \r\n Hesaplamayı Kaydet\r\n \r\n \r\n \r\n \r\n \r\n \r\n ","animate_delay":"0","el_class":"zakatt"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"},{"settings":{"element":"gva_column"},"col_lg":12,"elements":[{"settings":{"content":"\r\n // Initialize charity projects\r\n const charityProjects = [\r\n {\r\n id: 1,\r\n title: \"Oruç Açtırma\",\r\n description: \"Ramazan ayında ihtiyaç sahibi ailelere iftar yemeği sağlanması\",\r\n icon: \"fa-utensils\",\r\n cost: 500,\r\n selected: false\r\n },\r\n {\r\n id: 2,\r\n title: \"Kışlık Giysi\",\r\n description: \"İhtiyaç sahibi çocuk ve ailelere kışlık kıyafet dağıtımı\",\r\n icon: \"fa-shirt\",\r\n cost: 300,\r\n selected: false\r\n },\r\n {\r\n id: 3,\r\n title: \"Su Kuyusu\",\r\n description: \"Kuyu açılması ve temiz içme suyu sağlanması\",\r\n icon: \"fa-droplet\",\r\n cost: 1000,\r\n selected: false\r\n },\r\n {\r\n id: 4,\r\n title: \"Yetim Eğitimi\",\r\n description: \"Yetimlere eğitim desteği ve okul malzemeleri\",\r\n icon: \"fa-graduation-cap\",\r\n cost: 400,\r\n selected: false\r\n },\r\n {\r\n id: 5,\r\n title: \"Hasta Tedavisi\",\r\n description: \"Gücü yetmeyen ailelerin tedavi masraflarının karşılanması\",\r\n icon: \"fa-heart-pulse\",\r\n cost: 800,\r\n selected: false\r\n },\r\n {\r\n id: 6,\r\n title: \"Dul Kadın Bakımı\",\r\n description: \"Dul kadınlara ve çocuklarına aylık destek\",\r\n icon: \"fa-hand-holding-heart\",\r\n cost: 600,\r\n selected: false\r\n }\r\n ];\r\n\r\n // Donation basket\r\n let donationBasket = [];\r\n \r\n // Tab system\r\n function zakatSwitchTab(tab) {\r\n // Update tabs\r\n document.querySelectorAll('.zakat-tab-btn').forEach(btn => btn.classList.remove('active'));\r\n document.querySelectorAll('.zakat-calc-section').forEach(sec => sec.classList.add('zakat-hidden'));\r\n \r\n // Activate selected tab\r\n document.getElementById('zakat-tab-' + tab).classList.add('active');\r\n document.getElementById('zakat-section-' + tab).classList.remove('zakat-hidden');\r\n \r\n // Load charity projects if on charity tab\r\n if (tab === 'charity') {\r\n loadCharityProjects();\r\n }\r\n \r\n // Add animation\r\n const activeSection = document.getElementById('zakat-section-' + tab);\r\n activeSection.classList.add('zakat-fade-in');\r\n }\r\n \r\n // Load charity projects\r\n function loadCharityProjects() {\r\n const container = document.getElementById('charity-projects-container');\r\n if (!container) return;\r\n \r\n container.innerHTML = '';\r\n \r\n charityProjects.forEach(project => {\r\n const projectElement = document.createElement('div');\r\n projectElement.className = `zakat-charity-card ${project.selected ? 'border-brand-secondary' : ''}`;\r\n projectElement.innerHTML = `\r\n \r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n ${project.selected ? 'Eklendi' : 'Ekle'}\r\n \r\n \r\n `;\r\n container.appendChild(projectElement);\r\n });\r\n \r\n updateBasketDisplay();\r\n }\r\n \r\n // Toggle charity project selection\r\n function toggleCharityProject(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n project.selected = !project.selected;\r\n \r\n if (project.selected) {\r\n donationBasket.push(project);\r\n } else {\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n }\r\n \r\n loadCharityProjects();\r\n updateBasketDisplay();\r\n }\r\n \r\n // Update donation basket display\r\n function updateBasketDisplay() {\r\n const container = document.getElementById('donation-basket-items');\r\n const totalElement = document.getElementById('basket-total');\r\n \r\n if (!container || !totalElement) return;\r\n \r\n if (donationBasket.length === 0) {\r\n container.innerHTML = 'Henüz herhangi bir proje eklemediniz';\r\n totalElement.textContent = '0.00 $';\r\n return;\r\n }\r\n \r\n let total = 0;\r\n let itemsHTML = '';\r\n \r\n donationBasket.forEach(project => {\r\n total += project.cost;\r\n itemsHTML += `\r\n \r\n \r\n ${project.title}\r\n ${project.description}\r\n \r\n \r\n ${project.cost.toLocaleString()} $\r\n \r\n \r\n \r\n \r\n \r\n `;\r\n });\r\n \r\n container.innerHTML = itemsHTML;\r\n totalElement.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Remove from basket\r\n function removeFromBasket(projectId) {\r\n const project = charityProjects.find(p => p.id === projectId);\r\n if (project) {\r\n project.selected = false;\r\n }\r\n donationBasket = donationBasket.filter(p => p.id !== projectId);\r\n loadCharityProjects();\r\n }\r\n \r\n // Enhanced Calculation\r\n function zakatCalculate() {\r\n // Money\r\n const cash = parseFloat(document.getElementById('zakat-cash-money')?.value) || 0;\r\n const bank = parseFloat(document.getElementById('zakat-bank-money')?.value) || 0;\r\n const debtsToMe = parseFloat(document.getElementById('zakat-debts-to-me')?.value) || 0;\r\n const debtsFromMe = parseFloat(document.getElementById('zakat-debts-from-me')?.value) || 0;\r\n \r\n // Gold/Silver\r\n const goldW = parseFloat(document.getElementById('zakat-gold-weight')?.value) || 0;\r\n const carat = parseFloat(document.getElementById('zakat-gold-carat')?.value) || 0;\r\n const goldRate = parseFloat(document.getElementById('zakat-gold-rate')?.value) || 0;\r\n const silverW = parseFloat(document.getElementById('zakat-silver-weight')?.value) || 0;\r\n const silverRate = 0.95;\r\n \r\n // Stocks & Business\r\n const stocks = parseFloat(document.getElementById('zakat-stocks-value')?.value) || 0;\r\n const trade = parseFloat(document.getElementById('zakat-trade-goods')?.value) || 0;\r\n const realEstate = parseFloat(document.getElementById('zakat-real-estate')?.value) || 0;\r\n const otherAssets = parseFloat(document.getElementById('zakat-other-assets')?.value) || 0;\r\n \r\n // Calculations\r\n const gold24Equivalent = goldW * (carat / 24);\r\n const moneyAssets = Math.max(0, (cash + bank + debtsToMe) - debtsFromMe);\r\n const metalAssets = (gold24Equivalent * goldRate) + (silverW * silverRate);\r\n const businessAssets = stocks + trade + realEstate + otherAssets;\r\n const total = Math.max(0, moneyAssets + metalAssets + businessAssets);\r\n \r\n // UI Update - Total\r\n const totalAssetsEl = document.getElementById('zakat-total-assets');\r\n if (totalAssetsEl) {\r\n totalAssetsEl.textContent = total.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Nisab Logic (85g Gold 24k)\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update nisab displays\r\n const nisabValueDisplayEl = document.getElementById('nisab-value-display');\r\n if (nisabValueDisplayEl) {\r\n nisabValueDisplayEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n const currentNisabEl = document.getElementById('current-nisab');\r\n if (currentNisabEl) {\r\n currentNisabEl.textContent = '85 Gram';\r\n }\r\n \r\n const nisabValueEl2 = document.getElementById('nisab-value');\r\n if (nisabValueEl2) {\r\n nisabValueEl2.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n \r\n // Update progress bar\r\n const nisabProgress = Math.min(100, (total / nisab) * 100);\r\n const progressEl = document.getElementById('nisab-progress');\r\n if (progressEl) {\r\n progressEl.style.width = `${nisabProgress}%`;\r\n }\r\n \r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const statusBadge = document.getElementById('zakat-status-badge');\r\n \r\n if (zakatAmountEl && statusBadge) {\r\n if (total >= nisab && total > 0) {\r\n const zakat = total * 0.025;\r\n zakatAmountEl.textContent = zakat.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n \r\n statusBadge.innerHTML = ' Zekat farz oldu (Nisaba ulaştı)';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-green-500/20 border border-green-500/30 text-green-300 mt-4\";\r\n } else {\r\n zakatAmountEl.textContent = '0.00 $';\r\n \r\n if (total > 0) {\r\n statusBadge.innerHTML = ' Henüz nisaba ulaşmadı';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-yellow-500/20 border border-yellow-500/30 text-yellow-300 mt-4\";\r\n } else {\r\n statusBadge.innerHTML = ' Kontrol etmek için tutarı girin';\r\n statusBadge.className = \"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white/10 border border-white/20 text-white mt-4\";\r\n }\r\n }\r\n }\r\n }\r\n \r\n // Fetch live rates\r\n async function zakatFetchRates() {\r\n const icon = document.getElementById('zakat-refresh-icon');\r\n if (icon) icon.classList.add('fa-spin');\r\n \r\n // Simulate API call\r\n await new Promise(r => setTimeout(r, 1000));\r\n \r\n // Dynamic change for effect (simulated rate change)\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n if (goldRateInput) {\r\n const current = parseFloat(goldRateInput.value);\r\n const newRate = current + (Math.random() - 0.5) * 2;\r\n goldRateInput.value = newRate.toFixed(2);\r\n }\r\n \r\n if (icon) icon.classList.remove('fa-spin');\r\n zakatCalculate();\r\n }\r\n \r\n // Reset form\r\n function zakatResetForm() {\r\n document.querySelectorAll('input[type=\"number\"]').forEach(input => {\r\n if (input) input.value = '';\r\n });\r\n donationBasket = [];\r\n charityProjects.forEach(p => p.selected = false);\r\n loadCharityProjects();\r\n zakatCalculate();\r\n }\r\n \r\n // Save calculation\r\n function zakatSaveCalculation() {\r\n const totalEl = document.getElementById('zakat-total-assets');\r\n const zakatEl = document.getElementById('zakat-amount');\r\n const total = totalEl ? totalEl.textContent : '0';\r\n const zakat = zakatEl ? zakatEl.textContent : '0';\r\n \r\n alert(`Hesaplama kaydedildi:\\nToplam Mal: ${total}\\nFarz Olan Zekat: ${zakat}`);\r\n }\r\n \r\n // Checkout\r\n function zakatCheckout() {\r\n const total = donationBasket.reduce((sum, p) => sum + p.cost, 0);\r\n if (total === 0) {\r\n alert('Lütfen önce bağış sepetine projeler ekleyin');\r\n return;\r\n }\r\n \r\n alert(`Toplam ${total.toLocaleString()} $ tutarındaki bağışınızı tamamlamak için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html';\r\n }\r\n \r\n // Redirect to payment\r\n function zakatRedirectToPayment() {\r\n const zakatAmountEl = document.getElementById('zakat-amount');\r\n const zakatAmount = zakatAmountEl ? zakatAmountEl.textContent : '0';\r\n if (zakatAmount === '0.00 $') {\r\n alert('Lütfen önce zekat hesaplamak için tutarı girin');\r\n return;\r\n }\r\n \r\n alert(`Zekatınızı ${zakatAmount} tutarında ödemek için ödeme sayfasına yönlendirileceksiniz`);\r\n // In production: window.location.href = 'payment.html?amount=' + encodeURIComponent(zakatAmount);\r\n }\r\n \r\n // Intersection Observer for animations\r\n document.addEventListener('DOMContentLoaded', () => {\r\n // Initialize animations\r\n const reveals = document.querySelectorAll('.zakat-reveal');\r\n const obs = new IntersectionObserver((entries) => {\r\n entries.forEach(e => {\r\n if (e.isIntersecting) e.target.classList.add('active');\r\n });\r\n }, { threshold: 0.1 });\r\n reveals.forEach(r => obs.observe(r));\r\n \r\n // Initialize calculation\r\n zakatCalculate();\r\n \r\n // Load initial nisab value\r\n const goldRateInput = document.getElementById('zakat-gold-rate');\r\n const goldRate = (goldRateInput ? parseFloat(goldRateInput.value) : 0) || 0;\r\n const nisab = 85 * goldRate;\r\n const nisabValueEl = document.getElementById('zakat-nisab-value');\r\n if (nisabValueEl) {\r\n nisabValueEl.textContent = nisab.toLocaleString(undefined, { minimumFractionDigits: 2 }) + ' $';\r\n }\r\n });\r\n \r\n ","animate_delay":"0"},"editing":false,"element_name":"gva_text_noeditor"}],"editing":false,"element_name":"gva_column"}],"editing":false,"element_name":"gva_row"}]') (Line: 47)
Drupal\gavias_content_builder\Plugin\Field\FieldFormatter\GaviasContentBuilderFormatter->viewElements(Object, 'tr') (Line: 89)
Drupal\Core\Field\FormatterBase->view(Object, 'tr') (Line: 263)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 351)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 24)
Drupal\node\NodeViewBuilder->buildComponents(Array, Array, Array, 'full') (Line: 293)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 250)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 100)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. Support for this callback implementation is deprecated in 8.8.0 and will be removed in Drupal 9.0.0. See https://www.drupal.org/node/2966725', 'silenced_deprecation', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 781)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 372)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.view', Object) (Line: 156)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 68)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 191)
Drupal\page_cache\StackMiddleware\PageCache->fetch(Object, 1, 1) (Line: 128)
Drupal\page_cache\StackMiddleware\PageCache->lookup(Object, 1, 1) (Line: 82)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 708)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)