تست: تفاوت میان نسخهها
ظاهر
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۸۵: | خط ۸۵: | ||
margin-top: 5px; | margin-top: 5px; | ||
} | } | ||
. | .admin-only { | ||
background-color: # | display: none; | ||
background-color: #f8f9fa; | |||
border: 1px dashed #dc3545; | |||
padding: 15px; | |||
border-radius: 4px; | |||
margin-top: 10px; | |||
} | } | ||
. | .admin-label { | ||
color: #dc3545; | |||
font-weight: bold; | |||
} | } | ||
</style> | </style> | ||
خط ۱۱۱: | خط ۱۱۷: | ||
</div> | </div> | ||
<div class="form-group"> | <!-- بخش مدیریتی - فقط برای مدیران قابل نمایش --> | ||
<div id="adminSection" class="admin-only"> | |||
<div class="form-group"> | |||
<label for="bookSearch" class="admin-label">ثبت کتاب جدید (مخصوص مدیران):</label> | |||
<input type="text" id="bookSearch" placeholder="نام کتاب جدید را وارد کنید..."> | |||
<div class="help-text">این بخش فقط برای مدیران سیستم قابل مشاهده است</div> | |||
</div> | |||
<div class="button-group"> | |||
<button id="createNew">ایجاد صفحه جدید</button> | |||
</div> | |||
</div> | </div> | ||
<div class="button-group"> | <div class="button-group"> | ||
<button id="showBook">نمایش کتاب</button> | <button id="showBook">نمایش کتاب</button> | ||
</div> | </div> | ||
</div> | </div> | ||
خط ۱۳۵: | خط ۱۴۷: | ||
const createNewBtn = document.getElementById('createNew'); | const createNewBtn = document.getElementById('createNew'); | ||
const contentFrame = document.getElementById('contentFrame'); | const contentFrame = document.getElementById('contentFrame'); | ||
const adminSection = document.getElementById('adminSection'); | |||
// بررسی آیا در دامنه pediabible هستیم | |||
function isInPediabibleDomain() { | |||
return window.location.hostname === 'www.pediabible.com' || | |||
window.location.hostname === 'pediabible.com' || | |||
window.location.hostname === 'localhost'; // برای تست محلی | |||
} | |||
// بررسی آیا کاربر مدیر است (این بخش باید با منطق احراز هویت مدیاویکی شما یکپارچه شود) | |||
function isAdminUser() { | |||
// این یک نمونه ساده است - باید با سیستم احراز هویت مدیاویکی شما جایگزین شود | |||
return localStorage.getItem('isAdmin') === 'true' || | |||
document.cookie.includes('isAdmin=true') || | |||
window.location.search.includes('admin=true'); // برای تست | |||
} | |||
// تنظیمات اولیه | |||
function initializePage() { | |||
// بررسی دامنه | |||
if (!isInPediabibleDomain()) { | |||
alert('این صفحه فقط در دامنه pediabible قابل دسترسی است'); | |||
document.body.innerHTML = '<div class="container"><h1>دسترسی غیرمجاز</h1><p>این صفحه فقط در دامنه pediabible قابل دسترسی است</p></div>'; | |||
return; | |||
} | |||
// نمایش بخش مدیریتی فقط برای مدیران | |||
if (isAdminUser()) { | |||
adminSection.style.display = 'block'; | |||
} | |||
} | |||
// هنگام تغییر در select، مقدار جستجو را به روز میکند | // هنگام تغییر در select، مقدار جستجو را به روز میکند | ||
bookSelect.addEventListener('change', function() { | bookSelect.addEventListener('change', function() { | ||
if (this.value) { | if (this.value) { | ||
bookSearch.value = this.options[this.selectedIndex].text; | // فقط اگر کاربر مدیر است، مقدار را در جستجو قرار دهد | ||
if (isAdminUser()) { | |||
bookSearch.value = this.options[this.selectedIndex].text; | |||
} | |||
} | } | ||
}); | }); | ||
// نمایش کتاب انتخاب شده | // نمایش کتاب انتخاب شده | ||
showBookBtn.addEventListener('click', function() { | showBookBtn.addEventListener('click', function() { | ||
let | let bookName = bookSelect.value; | ||
if (bookName) { | if (bookName) { | ||
خط ۱۵۹: | خط ۱۹۷: | ||
contentFrame.src = `https://www.pediabible.com/index.php/${encodedBookName}`; | contentFrame.src = `https://www.pediabible.com/index.php/${encodedBookName}`; | ||
} else { | } else { | ||
alert('لطفاً | alert('لطفاً یک کتاب از لیست انتخاب کنید'); | ||
} | } | ||
}); | }); | ||
خط ۱۶۷: | خط ۲۰۵: | ||
let bookName = bookSearch.value.trim(); | let bookName = bookSearch.value.trim(); | ||
if (!bookName) { | if (!bookName) { | ||
alert('لطفاً نام کتاب را وارد کنید'); | alert('لطفاً نام کتاب جدید را وارد کنید'); | ||
return; | |||
} | |||
// بررسی مجوز مدیر | |||
if (!isAdminUser()) { | |||
alert('شما مجوز ایجاد کتاب جدید را ندارید'); | |||
return; | return; | ||
} | } | ||
خط ۱۷۴: | خط ۲۱۸: | ||
const newPageUrl = `https://www.pediabible.com/index.php/${encodedBookName}`; | const newPageUrl = `https://www.pediabible.com/index.php/${encodedBookName}`; | ||
// | // ایجاد درخواست برای بررسی وجود صفحه | ||
fetch(newPageUrl) | |||
.then(response => { | |||
if (response.status === 404) { | |||
// صفحه وجود ندارد - ایجاد صفحه جدید | |||
window.open(newPageUrl + '?action=edit', '_blank'); | |||
alert(`صفحه جدید برای "${bookName}" در حال ایجاد است`); | |||
} else { | |||
// صفحه وجود دارد | |||
alert(`صفحه "${bookName}" از قبل وجود دارد`); | |||
contentFrame.src = newPageUrl; | |||
} | |||
}) | |||
.catch(error => { | |||
console.error('Error:', error); | |||
// در صورت خطا، مستقیماً به صفحه ویرایش هدایت شود | |||
window.open(newPageUrl + '?action=edit', '_blank'); | |||
}); | |||
}); | }); | ||
// راهاندازی اولیه صفحه | |||
initializePage(); | |||
// برای تست: اضافه کردن قابلیت مدیر شدن (در محیط واقعی حذف شود) | |||
if (window.location.search.includes('setadmin=true')) { | |||
localStorage.setItem('isAdmin', 'true'); | |||
adminSection.style.display = 'block'; | |||
alert('حالت مدیر فعال شد'); | |||
} | |||
if (window.location.search.includes('removeadmin=true')) { | |||
localStorage.setItem('isAdmin', 'false'); | |||
adminSection.style.display = 'none'; | |||
alert('حالت مدیر غیرفعال شد'); | |||
} | |||
}); | }); | ||
</script> | </script> | ||
</body> | </body> | ||
</html> | </html> |
نسخهٔ ۱۲ اکتبر ۲۰۲۵، ساعت ۱۷:۳۱
<!DOCTYPE html>
کتابخانه پدیا بایبل
این بخش فقط برای مدیران سیستم قابل مشاهده است