پرش به محتوا

کتابخانه دانشنامه کتاب مقدس: تفاوت میان نسخه‌ها

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۶: خط ۶:
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
     <style>
     <style>
        /* استایل‌ها مانند قبل */
         * {
         * {
             margin: 0;
             margin: 0;
خط ۳۶۳: خط ۳۶۴:
         .notification.error {
         .notification.error {
             background: #dc3545;
             background: #dc3545;
        }
       
        .admin-toggle {
            position: fixed;
            top: 10px;
            left: 10px;
            background: #4a7c59;
            color: white;
            border: none;
            border-radius: 50%;
            width: 40px;
            height: 40px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 1001;
            box-shadow: 0 2px 8px rgba(0,0,0,0.2);
         }
         }
          
          
خط ۴۴۴: خط ۴۲۷:
<body>
<body>
     <div class="notification" id="notification"></div>
     <div class="notification" id="notification"></div>
   
    <!-- دکمه مخفی برای فعال‌سازی حالت مدیر -->
    <button class="admin-toggle" id="adminToggle" title="فعال‌سازی حالت مدیر">
        <i class="fas fa-user-shield"></i>
    </button>


     <div class="container">
     <div class="container">
خط ۴۷۳: خط ۴۵۱:
         </section>
         </section>


         <!-- پنل مدیریت -->
         <!-- پنل مدیریت (فقط برای مدیران مدیاویکی) -->
         <section class="admin-panel" id="adminPanel" style="display: none;">
         <section class="admin-panel" id="adminPanel" style="display: none;">
             <h3><i class="fas fa-user-shield"></i> پنل مدیریت</h3>
             <h3><i class="fas fa-user-shield"></i> پنل مدیریت</h3>
             <p style="font-size: 12px; color: #666; margin-bottom: 15px;">
             <p style="font-size: 12px; color: #666; margin-bottom: 15px;">
                 حالت مدیریت فعال است. می‌توانید محتوای جدید به کتابخانه اضافه کنید.
                 شما به عنوان مدیر وارد شده‌اید. می‌توانید محتوای جدید به کتابخانه اضافه کنید.
             </p>
             </p>
             <div class="admin-controls">
             <div class="admin-controls">
                 <button class="admin-btn" id="addContentBtn">
                 <button class="admin-btn" id="addContentBtn">
                     <i class="fas fa-plus"></i> افزودن محتوای جدید
                     <i class="fas fa-plus"></i> افزودن محتوای جدید
                </button>
                <button class="admin-btn" id="disableAdminBtn">
                    <i class="fas fa-times"></i> غیرفعال کردن حالت مدیر
                 </button>
                 </button>
             </div>
             </div>
         </section>
         </section>


         <!-- بخش محتوای سفارشی -->
         <!-- بخش محتوای سفارشی (فقط برای مدیران مدیاویکی) -->
         <section class="custom-content-section" id="customContentSection" style="display: none;">
         <section class="custom-content-section" id="customContentSection" style="display: none;">
             <h3><i class="fas fa-edit"></i> افزودن محتوای سفارشی</h3>
             <h3><i class="fas fa-edit"></i> افزودن محتوای سفارشی</h3>
خط ۵۹۹: خط ۵۷۴:
         const customContentSection = document.getElementById('customContentSection');
         const customContentSection = document.getElementById('customContentSection');
         const addContentBtn = document.getElementById('addContentBtn');
         const addContentBtn = document.getElementById('addContentBtn');
        const disableAdminBtn = document.getElementById('disableAdminBtn');
         const customTitle = document.getElementById('customTitle');
         const customTitle = document.getElementById('customTitle');
         const customCategory = document.getElementById('customCategory');
         const customCategory = document.getElementById('customCategory');
         const addCustomContent = document.getElementById('addCustomContent');
         const addCustomContent = document.getElementById('addCustomContent');
         const notification = document.getElementById('notification');
         const notification = document.getElementById('notification');
        const adminToggle = document.getElementById('adminToggle');


         let currentZoom = 100;
         let currentZoom = 100;
         let currentContent = '';
         let currentContent = '';
         let isAdminMode = false;
         let isMediaWikiAdmin = false;
         let booksData = { ...defaultBooksData };
         let booksData = { ...defaultBooksData };


خط ۶۲۲: خط ۵۹۵:
         }
         }


         // فعال‌سازی حالت مدیر
         // بررسی وضعیت مدیر در مدیاویکی
         function enableAdminMode() {
         async function checkMediaWikiAdminStatus() {
             isAdminMode = true;
             try {
            adminPanel.style.display = 'block';
                // روش 1: استفاده از API مدیاویکی
             customContentSection.style.display = 'block';
                const apiUrl = window.location.origin + '/api.php?action=query&meta=userinfo&uiprop=groups&format=json';
             adminToggle.style.display = 'none';
               
            showNotification('حالت مدیریت فعال شد');
                const response = await fetch(apiUrl);
                const data = await response.json();
               
                if (data.query && data.query.userinfo) {
                    const groups = data.query.userinfo.groups || [];
                    const isAdmin = groups.includes('sysop') || groups.includes('bureaucrat');
                   
                    if (isAdmin) {
                        enableAdminFeatures();
                        return;
                    }
                }
               
                // روش 2: بررسی از طریق کوکی‌ها
                checkAdminByCookies();
               
             } catch (error) {
                console.log('خطا در بررسی وضعیت مدیر:', error);
                // روش 3: بررسی از طریق المنت‌های صفحه
                checkAdminByPageElements();
            }
        }
 
        // بررسی از طریق کوکی‌های مدیاویکی
        function checkAdminByCookies() {
            const cookies = document.cookie.split(';');
            let mediaWikiUser = null;
              
            for (let cookie of cookies) {
                const [name, value] = cookie.trim().split('=');
                if (name === 'MediaWikiUser' || name === 'mwuser') {
                    mediaWikiUser = decodeURIComponent(value);
                    break;
                }
            }
              
              
             // ذخیره در localStorage
             // اگر کاربر وارد شده باشد و نام کاربری مشخص باشد، احتمالاً مدیر است
             localStorage.setItem('adminModeEnabled', 'true');
             if (mediaWikiUser && mediaWikiUser !== 'Anonymous') {
                // اینجا می‌توانید لیست مدیران را چک کنید
                const adminUsers = ['مدیر', 'admin', 'administrator']; // نام‌های مدیران
                if (adminUsers.some(admin => mediaWikiUser.toLowerCase().includes(admin.toLowerCase()))) {
                    enableAdminFeatures();
                }
            }
         }
         }


         // غیرفعال‌سازی حالت مدیر
         // بررسی از طریق المنت‌های صفحه مدیاویکی
         function disableAdminMode() {
         function checkAdminByPageElements() {
             isAdminMode = false;
             // بررسی وجود لینک‌های مدیریتی
             adminPanel.style.display = 'none';
             const adminElements = document.querySelectorAll(
            customContentSection.style.display = 'none';
                '#pt-administration, #ca-protect, .mw-group-admin, a[href*="Special:"]'
            adminToggle.style.display = 'flex';
             );
             showNotification('حالت مدیریت غیرفعال شد');
              
              
             // حذف از localStorage
             if (adminElements.length > 0) {
            localStorage.removeItem('adminModeEnabled');
                enableAdminFeatures();
            }
         }
         }


         // بررسی وضعیت در localStorage
         // فعال‌سازی ویژگی‌های مدیر
         function checkAdminStatus() {
         function enableAdminFeatures() {
             const adminEnabled = localStorage.getItem('adminModeEnabled');
             isMediaWikiAdmin = true;
             if (adminEnabled === 'true') {
            adminPanel.style.display = 'block';
                enableAdminMode();
             customContentSection.style.display = 'block';
            }
            console.log('ویژگی‌های مدیریتی برای مدیر مدیاویکی فعال شد');
         }
         }


         // افزودن محتوای سفارشی
         // افزودن محتوای سفارشی
         addCustomContent.addEventListener('click', function() {
         addCustomContent.addEventListener('click', function() {
             if (!isAdminMode) {
             if (!isMediaWikiAdmin) {
                 showNotification('لطفاً ابتدا حالت مدیریت را فعال کنید', true);
                 showNotification('شما دسترسی لازم برای این عمل را ندارید', true);
                 return;
                 return;
             }
             }
خط ۶۹۴: خط ۷۰۷:
         // افزودن محتوای جدید
         // افزودن محتوای جدید
         addContentBtn.addEventListener('click', function() {
         addContentBtn.addEventListener('click', function() {
             if (!isAdminMode) {
             if (!isMediaWikiAdmin) {
                 showNotification('لطفاً ابتدا حالت مدیریت را فعال کنید', true);
                 showNotification('شما دسترسی لازم برای این عمل را ندارید', true);
                 return;
                 return;
             }
             }
خط ۷۰۲: خط ۷۱۵:
             customContentSection.scrollIntoView({ behavior: 'smooth' });
             customContentSection.scrollIntoView({ behavior: 'smooth' });
             customTitle.focus();
             customTitle.focus();
        });
        // غیرفعال کردن حالت مدیر
        disableAdminBtn.addEventListener('click', function() {
            disableAdminMode();
        });
        // فعال کردن حالت مدیر با دکمه مخفی
        adminToggle.addEventListener('click', function() {
            enableAdminMode();
         });
         });


خط ۷۲۴: خط ۷۲۷:
         // ذخیره محتوای سفارشی در localStorage
         // ذخیره محتوای سفارشی در localStorage
         function saveCustomContent() {
         function saveCustomContent() {
            // فقط محتوای سفارشی را ذخیره می‌کنیم (بدون محتوای پیش‌فرض)
             const customContent = {};
             const customContent = {};
              
              
خط ۷۳۱: خط ۷۳۳:
                 const allItems = booksData[category] || [];
                 const allItems = booksData[category] || [];
                  
                  
                // فقط آیتم‌هایی که در پیش‌فرض نیستند را ذخیره می‌کنیم
                 customContent[category] = allItems.filter(item =>  
                 customContent[category] = allItems.filter(item =>  
                     !defaultItems.some(defaultItem => defaultItem.value === item.value)
                     !defaultItems.some(defaultItem => defaultItem.value === item.value)
خط ۷۴۷: خط ۷۴۸:
                     const customContent = JSON.parse(saved);
                     const customContent = JSON.parse(saved);
                      
                      
                    // ترکیب محتوای پیش‌فرض با محتوای سفارشی
                     Object.keys(customContent).forEach(category => {
                     Object.keys(customContent).forEach(category => {
                         if (!booksData[category]) {
                         if (!booksData[category]) {
خط ۷۸۸: خط ۷۸۸:
             }
             }
              
              
            // پر کردن لیست محتواها
             contentSelect.disabled = false;
             contentSelect.disabled = false;
             updateContentList(selectedCategory);
             updateContentList(selectedCategory);
           
             resetContent();
             resetContent();
         });
         });
خط ۸۱۷: خط ۸۱۵:
             contentTitle.textContent = bookText;
             contentTitle.textContent = bookText;
              
              
            // نمایش loading
             contentFrame.style.display = 'none';
             contentFrame.style.display = 'none';
             iframePlaceholder.style.display = 'flex';
             iframePlaceholder.style.display = 'flex';
خط ۸۲۷: خط ۸۲۴:
             `;
             `;
              
              
            // نوار پیشرفت
             let progress = 0;
             let progress = 0;
             const progressInterval = setInterval(() => {
             const progressInterval = setInterval(() => {
خط ۸۳۵: خط ۸۳۱:
             }, 200);
             }, 200);
              
              
            // بارگذاری محتوا
             contentFrame.src = contentUrl;
             contentFrame.src = contentUrl;
              
              
خط ۸۶۳: خط ۸۵۸:
             };
             };
              
              
            // به‌روزرسانی لینک‌ها
             wikiLink.href = wikiUrl;
             wikiLink.href = wikiUrl;
             wikiLink.style.display = 'flex';
             wikiLink.style.display = 'flex';
خط ۹۲۲: خط ۹۱۶:
         document.addEventListener('DOMContentLoaded', function() {
         document.addEventListener('DOMContentLoaded', function() {
             loadCustomContent();
             loadCustomContent();
             checkAdminStatus();
             checkMediaWikiAdminStatus();
         });
         });
     </script>
     </script>
</body>
</body>
</html>
</html>

نسخهٔ ‏۱۳ اکتبر ۲۰۲۵، ساعت ۰۱:۳۴

کتابخانه انتشارات دانشنامه کتاب مقدس

کتابخانه پدیا بایبل

مطالعه آنلاین کتاب‌ها و مقالات مذهبی شامل کتاب‌های مقدس و مقالات تخصصی

کتابخانه جامع منابع مذهبی

کتابخانه پدیا بایبل مرجع کامل و تخصصی برای مطالعه آنلاین کتاب‌های مقدس و مقالات مذهبی است. در این کتابخانه می‌توانید به منابع معتبر و جامعی از متون دینی دسترسی داشته باشید.

کتاب‌های مقدس

مطالعه کتاب‌های مقدس از جمله عیسی، انجیل متی، مزامیر، پیدایش و دیگر متون مذهبی با ترجمه‌های معتبر

مقالات تخصصی

مقالات متعدد درباره موضوعات مذهبی مانند مسیح، تثلیث، نجات، روح القدس و دیگر مفاهیم دینی

هیچ محتوایی انتخاب نشده است

لطفاً یک کتاب یا مقاله از لیست انتخاب کنید