کتاب مقدس آنلاین: تفاوت میان نسخهها
ظاهر
بدون خلاصۀ ویرایش برچسب: برگرداندهشده |
بدون خلاصۀ ویرایش |
||
(۳ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد) | |||
خط ۲۰: | خط ۲۰: | ||
padding: 0; | padding: 0; | ||
box-sizing: border-box; | box-sizing: border-box; | ||
} | } | ||
خط ۴۹: | خط ۴۳: | ||
.container { | .container { | ||
width: | max-width: 1200px; | ||
margin: 0 auto; | |||
margin: 0; | padding: 5px 15px; | ||
padding: | |||
} | } | ||
.app-header { | .app-header { | ||
text-align: center; | text-align: center; | ||
margin-bottom: | margin-bottom: 20px; | ||
padding: | padding: 15px 20px; | ||
border-bottom: 2px solid var(--border-color); | border-bottom: 2px solid var(--border-color); | ||
background: linear-gradient(to bottom, #f9f6f2, #f0e6d6); | background: linear-gradient(to bottom, #f9f6f2, #f0e6d6); | ||
border-radius: 8px; | border-radius: 8px; | ||
box-shadow: 0 2px 8px rgba(0,0,0,0.1); | box-shadow: 0 2px 8px rgba(0,0,0,0.1); | ||
position: relative; | |||
} | } | ||
خط ۷۴: | خط ۶۴: | ||
align-items: center; | align-items: center; | ||
gap: 8px; | gap: 8px; | ||
margin-bottom: | margin-bottom: 12px; | ||
font-size: 1rem; | font-size: 1.1rem; | ||
color: var(--dark-color); | color: var(--dark-color); | ||
direction: rtl; | direction: rtl; | ||
خط ۱۰۴: | خط ۹۴: | ||
.app-header h1 { | .app-header h1 { | ||
color: var(--primary-color); | color: var(--primary-color); | ||
margin-bottom: | margin-bottom: 8px; | ||
font-size: 1. | font-size: 1.8rem; | ||
text-shadow: 1px 1px 2px rgba(0,0,0,0.1); | text-shadow: 1px 1px 2px rgba(0,0,0,0.1); | ||
font-weight: 700; | font-weight: 700; | ||
خط ۱۱۵: | خط ۱۰۵: | ||
font-size:1rem; | font-size:1rem; | ||
font-style: italic; | font-style: italic; | ||
margin-top: | margin-top: 5px; | ||
text-align: center; | text-align: center; | ||
} | } | ||
خط ۱۲۲: | خط ۱۱۲: | ||
display: grid; | display: grid; | ||
grid-template-columns: 1fr 1fr; | grid-template-columns: 1fr 1fr; | ||
gap: | gap: 15px; | ||
margin-bottom: | margin-bottom: 20px; | ||
background: white; | background: white; | ||
padding: | padding: 15px; | ||
border-radius: 8px; | border-radius: 8px; | ||
box-shadow: 0 4px 8px rgba(0,0,0,0.08); | box-shadow: 0 4px 8px rgba(0,0,0,0.08); | ||
خط ۱۳۱: | خط ۱۲۱: | ||
direction: rtl; | direction: rtl; | ||
text-align: right; | text-align: right; | ||
} | } | ||
خط ۱۳۷: | خط ۱۲۶: | ||
background: white; | background: white; | ||
border-radius: 6px; | border-radius: 6px; | ||
padding: | padding: 12px; | ||
border: 1px solid var(--border-color); | border: 1px solid var(--border-color); | ||
} | } | ||
.selector-title { | .selector-title { | ||
font-size: | font-size: 1rem; | ||
margin-bottom: | margin-bottom: 8px; | ||
color: var(--primary-color); | color: var(--primary-color); | ||
border-bottom: 1px solid var(--border-color); | border-bottom: 1px solid var(--border-color); | ||
padding-bottom: | padding-bottom: 5px; | ||
text-align: center; | text-align: center; | ||
} | } | ||
خط ۱۵۲: | خط ۱۴۱: | ||
select { | select { | ||
width: 100%; | width: 100%; | ||
padding: | padding: 10px 12px; | ||
border: 1px solid var(--border-color); | border: 1px solid var(--border-color); | ||
border-radius: 4px; | border-radius: 4px; | ||
background-color: white; | background-color: white; | ||
font-size: 0. | font-size: 0.95rem; | ||
color: var(--dark-color); | color: var(--dark-color); | ||
cursor: pointer; | cursor: pointer; | ||
خط ۱۷۵: | خط ۱۶۴: | ||
border-radius: 8px; | border-radius: 8px; | ||
box-shadow: 0 4px 12px rgba(0,0,0,0.1); | box-shadow: 0 4px 12px rgba(0,0,0,0.1); | ||
padding: | padding: 25px; | ||
min-height: 500px; | |||
border: 1px solid var(--border-color); | border: 1px solid var(--border-color); | ||
margin-bottom: | margin-bottom: 20px; | ||
direction: rtl; | direction: rtl; | ||
text-align: right; | text-align: right; | ||
} | } | ||
.chapter-title { | .chapter-title { | ||
text-align: center; | text-align: center; | ||
margin-bottom: | margin-bottom: 20px; | ||
color: var(--primary-color); | color: var(--primary-color); | ||
font-size: 1. | font-size: 1.5rem; | ||
padding-bottom: | padding-bottom: 10px; | ||
border-bottom: 2px solid var(--border-color); | border-bottom: 2px solid var(--border-color); | ||
} | } | ||
.content-display { | .content-display { | ||
width: 100%; | width: 100%; | ||
height: 650px; | |||
border: 1px solid var(--border-color); | border: 1px solid var(--border-color); | ||
border-radius: 6px; | border-radius: 6px; | ||
background: white; | background: white; | ||
} | } | ||
خط ۲۱۷: | خط ۱۹۳: | ||
justify-content: space-between; | justify-content: space-between; | ||
align-items: center; | align-items: center; | ||
margin-top: | margin-top: 25px; | ||
flex-wrap: wrap; | flex-wrap: wrap; | ||
gap: | gap: 10px; | ||
direction: rtl; | direction: rtl; | ||
} | } | ||
.nav-btn { | .nav-btn { | ||
padding: | padding: 12px 20px; | ||
background-color: var(--secondary-color); | background-color: var(--secondary-color); | ||
color: white; | color: white; | ||
خط ۲۳۲: | خط ۲۰۷: | ||
cursor: pointer; | cursor: pointer; | ||
transition: all 0.3s; | transition: all 0.3s; | ||
font-size: | font-size: 1rem; | ||
display: flex; | display: flex; | ||
align-items: center; | align-items: center; | ||
gap: | gap: 8px; | ||
font-family: var(--font-family); | font-family: var(--font-family); | ||
box-shadow: 0 2px 4px rgba(0,0,0,0.2); | box-shadow: 0 2px 4px rgba(0,0,0,0.2); | ||
خط ۲۵۷: | خط ۲۳۲: | ||
align-items: center; | align-items: center; | ||
justify-content: center; | justify-content: center; | ||
gap: | gap: 8px; | ||
padding: | padding: 12px 20px; | ||
background-color: #87CEEB; | background-color: #87CEEB; | ||
color: #000000; | color: #000000; | ||
خط ۲۶۴: | خط ۲۳۹: | ||
border-radius: 6px; | border-radius: 6px; | ||
transition: all 0.3s; | transition: all 0.3s; | ||
font-size: | font-size: 1rem; | ||
font-family: var(--font-family); | font-family: var(--font-family); | ||
box-shadow: 0 2px 4px rgba(0,0,0,0.2); | box-shadow: 0 2px 4px rgba(0,0,0,0.2); | ||
خط ۲۷۸: | خط ۲۵۳: | ||
text-align: center; | text-align: center; | ||
color: #7f8c8d; | color: #7f8c8d; | ||
padding: | padding: 40px 20px; | ||
border: 2px dashed var(--border-color); | border: 2px dashed var(--border-color); | ||
border-radius: 8px; | border-radius: 8px; | ||
font-size: 1rem; | margin-top: 20px; | ||
font-size: 1.1rem; | |||
background-color: var(--light-color); | background-color: var(--light-color); | ||
} | } | ||
.access-denied { | .access-denied { | ||
text-align: center; | text-align: center; | ||
padding: | padding: 40px; | ||
background: #fee; | background: #fee; | ||
border-radius: 8px; | border-radius: 8px; | ||
border: 2px solid #f5c6cb; | border: 2px solid #f5c6cb; | ||
color: #721c24; | color: #721c24; | ||
margin-top: 20px; | |||
} | } | ||
.access-denied h3 { | .access-denied h3 { | ||
color: #721c24; | color: #721c24; | ||
margin-bottom: | margin-bottom: 15px; | ||
font-size: 1. | font-size: 1.5rem; | ||
} | } | ||
.info-message { | .info-message { | ||
text-align: center; | text-align: center; | ||
padding: | padding: 10px; | ||
background: #e7f3ff; | background: #e7f3ff; | ||
border-radius: 5px; | border-radius: 5px; | ||
margin-top: | margin-top: 10px; | ||
font-size: 0. | font-size: 0.9rem; | ||
color: #0066cc; | color: #0066cc; | ||
} | } | ||
خط ۳۲۲: | خط ۲۹۰: | ||
@media (max-width: 768px) { | @media (max-width: 768px) { | ||
.container { | .container { | ||
padding: | padding: 8px 10px; | ||
} | } | ||
.app-header { | .app-header { | ||
margin-bottom: | margin-bottom: 15px; | ||
padding: | padding: 12px 15px; | ||
} | } | ||
.breadcrumb { | .breadcrumb { | ||
font-size: 0. | font-size: 0.85rem; | ||
margin-bottom: | margin-bottom: 10px; | ||
} | } | ||
.app-header h1 { | .app-header h1 { | ||
font-size: 1. | font-size: 1.5rem; | ||
margin-bottom: | margin-bottom: 6px; | ||
} | } | ||
.description { | .description { | ||
font-size: 0. | font-size: 0.9rem; | ||
} | } | ||
.selector-container { | .selector-container { | ||
grid-template-columns: 1fr; | grid-template-columns: 1fr; | ||
gap: | gap: 10px; | ||
margin-bottom: | margin-bottom: 20px; | ||
padding: | padding: 15px; | ||
} | } | ||
.bible-content { | .bible-content { | ||
padding: | padding: 15px; | ||
min-height: 450px; | |||
} | } | ||
.chapter-title { | .chapter-title { | ||
font-size: 1. | font-size: 1.3rem; | ||
margin-bottom: | margin-bottom: 15px; | ||
} | |||
.content-display { | |||
height: 500px; | |||
} | } | ||
.navigation { | .navigation { | ||
flex-direction: column; | flex-direction: column; | ||
gap: | gap: 10px; | ||
} | } | ||
خط ۳۷۲: | خط ۳۴۵: | ||
@media (max-width: 480px) { | @media (max-width: 480px) { | ||
.content-display { | |||
height: 450px; | |||
} | |||
.nav-btn, .wiki-link { | .nav-btn, .wiki-link { | ||
padding: | padding: 10px 15px; | ||
font-size: 0. | font-size: 0.9rem; | ||
} | } | ||
.instructions { | .instructions { | ||
padding: | padding: 30px 15px; | ||
font-size: | font-size: 1rem; | ||
} | } | ||
.app-header { | .app-header { | ||
padding: | padding: 10px 12px; | ||
} | } | ||
.app-header h1 { | .app-header h1 { | ||
font-size: 1. | font-size: 1.3rem; | ||
} | } | ||
} | } | ||
خط ۴۰۳: | خط ۳۸۰: | ||
.placeholder i { | .placeholder i { | ||
font-size: | font-size: 3rem; | ||
margin-bottom: | margin-bottom: 15px; | ||
color: var(--border-color); | color: var(--border-color); | ||
} | } | ||
خط ۴۲۴: | خط ۴۰۱: | ||
</nav> | </nav> | ||
<h1>کتاب مقدس آنلاین</h1> | <h1>کتاب مقدس آنلاین</h1> | ||
<p class="description">مطالعه ترجمههای مختلف بصورت کاربردی با واژه نامه تخصصی</p> | <p class="description">مطالعه ترجمههای مختلف بصورت کاربردی با واژه نامه تخصصی<br> | ||
ترجمهٔ هزارهٔ نو و مژده هماکنون قابل مطالعهاند و عهد جدید کامل شده است. واژهنامهها بهصورت روزانه و با دقت در حال اتصال و بهروزرسانی هستند تا خدمتی ماندگار برای نسل حال و آیندگان در خداوند بهجا بگذاریم.</p> | |||
</div> | </div> | ||
<div id="content-wrapper | <div id="content-wrapper"> | ||
<!-- محتوا توسط JavaScript پر میشود --> | <!-- محتوا توسط JavaScript پر میشود --> | ||
</div> | </div> | ||
خط ۶۴۷: | خط ۶۲۵: | ||
`; | `; | ||
// | // دادههای ترجمههای مختلف | ||
// [ | const translations = { | ||
'old': { | |||
name: 'ترجمه قدیم', | |||
baseUrl: 'https://www.pediabible.com/index.php?title=', | |||
getPageTitle: function(bookDisplayName, chapter) { | |||
return `${bookDisplayName} فصل ${chapter}`; | |||
} | |||
}, | |||
'hejre_nou': { | |||
name: 'هزاره نو', | |||
baseUrl: 'https://www.pediabible.com/index.php?title=', | |||
getPageTitle: function(bookDisplayName, chapter) { | |||
return `${bookDisplayName} هزاره نو فصل ${chapter}`; | |||
} | |||
}, | |||
'mozde': { | |||
name: 'مژده', | |||
baseUrl: 'https://www.pediabible.com/index.php?title=', | |||
getPageTitle: function(bookDisplayName, chapter) { | |||
return `${bookDisplayName} مژده فصل ${chapter}`; | |||
} | |||
}, | |||
'daneshname': { | |||
name: 'دانشنامه', | |||
baseUrl: 'https://www.pediabible.com/index.php?title=', | |||
getPageTitle: function(bookDisplayName, chapter) { | |||
return `${bookDisplayName} دانشنامه فصل ${chapter}`; | |||
} | |||
} | |||
}; | |||
// عناصر DOM | |||
const translationSelect = document.getElementById('translation-select'); | |||
const testamentSelect = document.getElementById('testament-select'); | |||
const bookSelect = document.getElementById('book-select'); | |||
const chapterSelect = document.getElementById('chapter-select'); | |||
const chapterTitle = document.getElementById('chapter-title'); | |||
const versesContainer = document.getElementById('verses-container'); | |||
const prevChapterBtn = document.getElementById('prev-chapter'); | |||
const nextChapterBtn = document.getElementById('next-chapter'); | |||
const wikiPageLink = document.getElementById('wiki-page-link'); | |||
// متغیرهای وضعیت فعلی | |||
let currentTranslation = ''; | |||
let currentTestament = ''; | |||
let currentBook = ''; | |||
let currentChapter = 1; | |||
// رویداد تغییر ترجمه | |||
translationSelect.addEventListener('change', function() { | |||
currentTranslation = this.value; | |||
if (currentTranslation) { | |||
testamentSelect.disabled = false; | |||
testamentSelect.value = ''; | |||
bookSelect.disabled = true; | |||
bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>'; | |||
chapterSelect.disabled = true; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
resetContent(); | |||
} else { | |||
resetAll(); | |||
} | |||
}); | |||
// رویداد تغییر عهد | |||
testamentSelect.addEventListener('change', function() { | |||
currentTestament = this.value; | |||
if (currentTestament) { | |||
bookSelect.disabled = false; | |||
bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>'; | |||
bibleBooks[currentTestament].forEach((book, index) => { | |||
const option = document.createElement('option'); | |||
option.value = index; | |||
option.textContent = book.name; | |||
bookSelect.appendChild(option); | |||
}); | |||
chapterSelect.disabled = true; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
resetContent(); | |||
} else { | |||
bookSelect.disabled = true; | |||
bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>'; | |||
chapterSelect.disabled = true; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
resetContent(); | |||
} | |||
}); | |||
// رویداد تغییر کتاب | |||
bookSelect.addEventListener('change', function() { | |||
currentBook = this.value; | |||
if (currentBook !== '') { | |||
chapterSelect.disabled = false; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
const bookIndex = parseInt(currentBook); | |||
const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters; | |||
for (let i = 1; i <= chaptersCount; i++) { | |||
const option = document.createElement('option'); | |||
option.value = i; | |||
option.textContent = `فصل ${i}`; | |||
chapterSelect.appendChild(option); | |||
} | |||
prevChapterBtn.disabled = true; | |||
nextChapterBtn.disabled = true; | |||
wikiPageLink.style.display = 'none'; | |||
} else { | |||
chapterSelect.disabled = true; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
resetContent(); | |||
} | |||
}); | |||
// رویداد تغییر فصل | |||
chapterSelect.addEventListener('change', function() { | |||
currentChapter = parseInt(this.value); | |||
if (currentChapter) { | |||
displayChapterWithIframe(); | |||
} else { | |||
resetContent(); | |||
} | |||
}); | |||
// نمایش فصل با iframe - فقط محتوای اصلی | |||
function displayChapterWithIframe() { | |||
const bookIndex = parseInt(currentBook); | |||
const bookData = bibleBooks[currentTestament][bookIndex]; | |||
const bookName = bookData.name; | |||
const bookDisplayName = bookData.displayName; | |||
const translationName = translations[currentTranslation].name; | |||
chapterTitle.textContent = `${translationName} - ${bookName} - فصل ${currentChapter}`; | |||
const pageTitle = translations[currentTranslation].getPageTitle(bookDisplayName, currentChapter); | |||
const contentUrl = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}&action=render`; | |||
versesContainer.innerHTML = ` | |||
<iframe | |||
id="content-iframe" | |||
src="${contentUrl}" | |||
class="content-display" | |||
frameborder="0" | |||
loading="lazy" | |||
sandbox="allow-scripts allow-same-origin allow-forms allow-popups" | |||
allowfullscreen> | |||
</iframe> | |||
`; | |||
// اضافه کردن sandbox به iframe برای امنیت بیشتر | |||
const iframe = document.getElementById('content-iframe'); | |||
wikiPageLink.href = `${translations[currentTranslation].baseUrl}${encodeURIComponent(pageTitle)}`; | |||
wikiPageLink.style.display = 'flex'; | |||
updateNavigationButtons(); | |||
} | |||
function updateNavigationButtons() { | |||
const bookIndex = parseInt(currentBook); | |||
const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters; | |||
prevChapterBtn.disabled = currentChapter <= 1; | |||
nextChapterBtn.disabled = currentChapter >= chaptersCount; | |||
} | |||
prevChapterBtn.addEventListener('click', function() { | |||
if (currentChapter > 1) { | |||
currentChapter--; | |||
chapterSelect.value = currentChapter; | |||
displayChapterWithIframe(); | |||
} | |||
}); | |||
nextChapterBtn.addEventListener('click', function() { | |||
const bookIndex = parseInt(currentBook); | |||
const chaptersCount = bibleBooks[currentTestament][bookIndex].chapters; | |||
if (currentChapter < chaptersCount) { | |||
currentChapter++; | |||
chapterSelect.value = currentChapter; | |||
displayChapterWithIframe(); | |||
} | |||
}); | |||
function resetContent() { | |||
chapterTitle.textContent = 'لطفاً ترجمه، کتاب و فصل مورد نظر را انتخاب کنید'; | |||
versesContainer.innerHTML = ` | |||
<div class="instructions"> | |||
<div class="placeholder"> | |||
<i class="fas fa-book-open"></i> | |||
<p>برای مطالعه کتاب مقدس، لطفاً ابتدا ترجمه، سپس عهد، کتاب و فصل مورد نظر خود را انتخاب کنید.</p> | |||
</div> | |||
</div> | |||
`; | |||
prevChapterBtn.disabled = true; | |||
nextChapterBtn.disabled = true; | |||
wikiPageLink.style.display = 'none'; | |||
} | |||
function resetAll() { | |||
testamentSelect.disabled = true; | |||
testamentSelect.innerHTML = '<option value="">انتخاب عهد</option>'; | |||
bookSelect.disabled = true; | |||
bookSelect.innerHTML = '<option value="">انتخاب کتاب</option>'; | |||
chapterSelect.disabled = true; | |||
chapterSelect.innerHTML = '<option value="">انتخاب فصل</option>'; | |||
resetContent(); | |||
} | |||
console.log('✅ برنامه کتاب مقدس روی دامنه مجاز بارگذاری شد'); | |||
} | } | ||
نسخهٔ کنونی تا ۱۱ اکتبر ۲۰۲۵، ساعت ۲۲:۰۹
کتاب مقدس آنلاین
مطالعه ترجمههای مختلف بصورت کاربردی با واژه نامه تخصصی
ترجمهٔ هزارهٔ نو و مژده هماکنون قابل مطالعهاند و عهد جدید کامل شده است. واژهنامهها بهصورت روزانه و با دقت در حال اتصال و بهروزرسانی هستند تا خدمتی ماندگار برای نسل حال و آیندگان در خداوند بهجا بگذاریم.