پرش به محتوا

تست: تفاوت میان نسخه‌ها

از دانشنامه کتاب مقدس
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۱: خط ۱:
<!DOCTYPE html>
<html lang="fa" dir="rtl">
<html lang="fa" dir="rtl">
<head>
<head>
خط ۴۸: خط ۴۹:
             font-size: 16px;
             font-size: 16px;
             box-sizing: border-box;
             box-sizing: border-box;
        }
        .quick-search {
            width: 200px !important;
            display: inline-block;
            margin-left: 10px;
         }
         }
         button {
         button {
خط ۶۲: خط ۵۸:
             cursor: pointer;
             cursor: pointer;
             font-size: 16px;
             font-size: 16px;
             margin: 5px;
             margin-top: 10px;
         }
         }
         button:hover {
         button:hover {
             background-color: #0056b3;
             background-color: #0056b3;
        }
        .button-group {
            display: flex;
            justify-content: flex-start;
            flex-wrap: wrap;
            margin-top: 10px;
        }
        .navigation-buttons {
            display: flex;
            justify-content: center;
            margin: 15px 0;
            gap: 10px;
        }
        .nav-btn {
            background-color: #6c757d;
        }
        .nav-btn:hover {
            background-color: #545b62;
        }
        .view-original {
            background-color: #28a745;
        }
        .view-original:hover {
            background-color: #218838;
         }
         }
         .iframe-container {
         .iframe-container {
خط ۹۶: خط ۶۸:
             border-radius: 8px;
             border-radius: 8px;
             overflow: hidden;
             overflow: hidden;
            position: relative;
         }
         }
         iframe {
         iframe {
خط ۱۰۲: خط ۷۳:
             height: 600px;
             height: 600px;
             border: none;
             border: none;
        }
        .content-only {
            /* استایل برای نمایش فقط محتوا */
         }
         }
         .help-text {
         .help-text {
خط ۱۱۱: خط ۷۹:
             margin-top: 5px;
             margin-top: 5px;
         }
         }
         .admin-only {
         .admin-section {
            display: none;
             background: #e8f5e8;
             background-color: #f8f9fa;
             border: 1px solid #28a745;
             border: 1px dashed #dc3545;
             padding: 15px;
             padding: 15px;
             border-radius: 4px;
             border-radius: 6px;
             margin-top: 10px;
             margin-top: 15px;
         }
         }
         .admin-label {
         .admin-title {
             color: #dc3545;
             color: #155724;
             font-weight: bold;
             font-weight: bold;
        }
             margin-bottom: 10px;
        .quick-search-container {
            display: flex;
            align-items: center;
             margin-bottom: 15px;
        }
        .quick-search-label {
            margin-bottom: 0;
            margin-left: 10px;
            white-space: nowrap;
         }
         }
     </style>
     </style>
خط ۱۴۰: خط ۹۸:
          
          
         <div class="search-section">
         <div class="search-section">
            <!-- جستجوی سریع -->
            <div class="quick-search-container">
                <label for="quickSearch" class="quick-search-label">جستجوی سریع:</label>
                <input type="text" id="quickSearch" class="quick-search" placeholder="نام کتاب...">
                <button id="quickSearchBtn">برو</button>
            </div>
             <div class="form-group">
             <div class="form-group">
                 <label for="bookSelect">انتخاب کتاب از لیست:</label>
                 <label for="bookSelect">انتخاب کتاب:</label>
                 <select id="bookSelect">
                 <select id="bookSelect">
                     <option value="">-- لطفاً یک کتاب انتخاب کنید --</option>
                     <option value="">-- لطفاً یک کتاب انتخاب کنید --</option>
                    <option value="کتاب_اول">کتاب اول</option>
                    <option value="کتاب_دوم">کتاب دوم</option>
                    <option value="کتاب_سوم">کتاب سوم</option>
                    <option value="انجیل">انجیل</option>
                    <option value="تورات">تورات</option>
                    <option value="مزامیر">مزامیر</option>
                    <option value="امثال">امثال</option>
                    <option value="اشعیا">اشعیا</option>
                    <option value="متی">متی</option>
                    <option value="مرقس">مرقس</option>
                    <option value="لوقا">لوقا</option>
                    <option value="یوحنا">یوحنا</option>
                    <!-- می‌توانید کتاب‌های بیشتری به این لیست اضافه کنید -->
                 </select>
                 </select>
             </div>
             </div>
              
              
             <!-- بخش مدیریتی - فقط برای مدیران قابل نمایش -->
             <div class="admin-section">
            <div id="adminSection" class="admin-only">
                <div class="admin-title">بخش مدیریت (برای افزودن کتاب جدید)</div>
                 <div class="form-group">
                 <div class="form-group">
                     <label for="bookSearch" class="admin-label">ثبت کتاب جدید (مخصوص مدیران):</label>
                     <label for="bookSearch">نام کتاب جدید:</label>
                     <input type="text" id="bookSearch" placeholder="نام کتاب جدید را وارد کنید...">
                     <input type="text" id="bookSearch" placeholder="نام کتاب جدید را وارد کنید...">
                     <div class="help-text">این بخش فقط برای مدیران سیستم قابل مشاهده است</div>
                     <div class="help-text">برای افزودن کتاب جدید به لیست، نام آن را وارد کرده و Enter بزنید</div>
                </div>
               
                <div class="button-group">
                    <button id="createNew">ایجاد صفحه جدید</button>
                 </div>
                 </div>
            </div>
           
            <div class="button-group">
                <button id="showBook">نمایش کتاب</button>
             </div>
             </div>
         </div>
         </div>
خط ۱۸۷: خط ۱۱۷:
         <div class="iframe-container">
         <div class="iframe-container">
             <iframe id="contentFrame" src="about:blank"></iframe>
             <iframe id="contentFrame" src="about:blank"></iframe>
        </div>
        <!-- دکمه‌های ناوبری -->
        <div class="navigation-buttons">
            <button id="prevBook" class="nav-btn">کتاب قبل</button>
            <button id="nextBook" class="nav-btn">کتاب بعد</button>
            <button id="viewOriginal" class="view-original">مشاهده در صفحه اصلی</button>
         </div>
         </div>
     </div>
     </div>
خط ۲۰۱: خط ۱۲۴:
             const bookSelect = document.getElementById('bookSelect');
             const bookSelect = document.getElementById('bookSelect');
             const bookSearch = document.getElementById('bookSearch');
             const bookSearch = document.getElementById('bookSearch');
            const quickSearch = document.getElementById('quickSearch');
            const quickSearchBtn = document.getElementById('quickSearchBtn');
            const showBookBtn = document.getElementById('showBook');
            const createNewBtn = document.getElementById('createNew');
             const contentFrame = document.getElementById('contentFrame');
             const contentFrame = document.getElementById('contentFrame');
            const adminSection = document.getElementById('adminSection');
            const prevBookBtn = document.getElementById('prevBook');
            const nextBookBtn = document.getElementById('nextBook');
            const viewOriginalBtn = document.getElementById('viewOriginal');
            let currentBookIndex = -1;
            const books = [
                'کتاب_اول', 'کتاب_دوم', 'کتاب_سوم', 'انجیل', 'تورات',
                'مزامیر', 'امثال', 'اشعیا', 'متی', 'مرقس', 'لوقا', 'یوحنا'
            ];
            // بررسی آیا در دامنه pediabible هستیم
            function isInPediabibleDomain() {
                return window.location.hostname === 'www.pediabible.com' ||
                      window.location.hostname === 'pediabible.com' ||
                      window.location.hostname === 'localhost'; // برای تست محلی
            }
              
              
             // بررسی آیا کاربر مدیر است
             const STORAGE_KEY = 'pediabible_books_list';
            function isAdminUser() {
                return localStorage.getItem('isAdmin') === 'true' ||
                      document.cookie.includes('isAdmin=true') ||
                      window.location.search.includes('admin=true');
            }
              
              
             // دریافت فقط محتوای صفحه
             // بارگذاری لیست کتاب‌ها از localStorage
             function loadContentOnly(bookName) {
             function loadBooksList() {
                 const encodedBookName = encodeURIComponent(bookName);
                 const savedBooks = localStorage.getItem(STORAGE_KEY);
                 // استفاده از action=render برای دریافت فقط محتوا
                 if (savedBooks) {
                const contentUrl = `https://www.pediabible.com/index.php/${encodedBookName}?action=render`;
                    const books = JSON.parse(savedBooks);
                contentFrame.src = contentUrl;
                    books.forEach(book => {
               
                        addBookToSelect(book);
                // به روزرسانی ایندکس کتاب جاری
                    });
                currentBookIndex = books.indexOf(bookName);
                   
                updateNavigationButtons();
                    // اگر کتابی در لیست وجود دارد، اولین کتاب را نمایش بده
                    if (books.length > 0) {
                        bookSelect.value = books[0];
                        showBook(books[0]);
                    }
                }
             }
             }
              
              
             // به روزرسانی وضعیت دکمه‌های ناوبری
             // ذخیره لیست کتاب‌ها در localStorage
             function updateNavigationButtons() {
             function saveBooksList() {
                 prevBookBtn.disabled = currentBookIndex <= 0;
                 const books = [];
                nextBookBtn.disabled = currentBookIndex >= books.length - 1;
                 for (let i = 1; i < bookSelect.options.length; i++) {
                  
                     books.push(bookSelect.options[i].value);
                if (prevBookBtn.disabled) {
                    prevBookBtn.style.opacity = '0.5';
                    prevBookBtn.style.cursor = 'not-allowed';
                } else {
                    prevBookBtn.style.opacity = '1';
                    prevBookBtn.style.cursor = 'pointer';
                }
               
                if (nextBookBtn.disabled) {
                     nextBookBtn.style.opacity = '0.5';
                    nextBookBtn.style.cursor = 'not-allowed';
                } else {
                    nextBookBtn.style.opacity = '1';
                    nextBookBtn.style.cursor = 'pointer';
                 }
                 }
                localStorage.setItem(STORAGE_KEY, JSON.stringify(books));
             }
             }
              
              
             // جستجو در لیست کتاب‌ها
             // اضافه کردن کتاب به لیست انتخاب
             function searchInBooks(searchTerm) {
             function addBookToSelect(bookName) {
                 const normalizedSearch = searchTerm.trim().toLowerCase();
                 // بررسی عدم تکراری بودن
                if (!normalizedSearch) return null;
                for (let i = 0; i < bookSelect.options.length; i++) {
                    if (bookSelect.options[i].value === bookName) {
                        return false;
                    }
                }
                  
                  
                 return books.find(book =>
                 const option = document.createElement('option');
                    book.toLowerCase().includes(normalizedSearch) ||
                option.value = bookName;
                    getBookDisplayName(book).toLowerCase().includes(normalizedSearch)
                 option.textContent = bookName;
                 );
                 bookSelect.appendChild(option);
            }
                 return true;
           
            // دریافت نام نمایشی کتاب
            function getBookDisplayName(bookId) {
                 const option = bookSelect.querySelector(`option[value="${bookId}"]`);
                 return option ? option.text : bookId;
             }
             }
              
              
             // تنظیمات اولیه
             // نمایش کتاب در iframe
             function initializePage() {
             function showBook(bookName) {
                 if (!isInPediabibleDomain()) {
                 if (!bookName) return;
                    alert('این صفحه فقط در دامنه pediabible قابل دسترسی است');
                    document.body.innerHTML = '<div class="container"><h1>دسترسی غیرمجاز</h1><p>این صفحه فقط در دامنه pediabible قابل دسترسی است</p></div>';
                    return;
                }
                  
                  
                 if (isAdminUser()) {
                 const encodedBookName = encodeURIComponent(bookName);
                    adminSection.style.display = 'block';
                const bookUrl = `https://www.pediabible.com/index.php/${encodedBookName}`;
                 }
                 contentFrame.src = bookUrl;
               
                updateNavigationButtons();
             }
             }
              
              
             // رویدادهای صفحه
             // ایجاد کتاب جدید
             bookSelect.addEventListener('change', function() {
             function createNewBook(bookName) {
                 if (this.value && isAdminUser()) {
                 if (!bookName.trim()) {
                    bookSearch.value = this.options[this.selectedIndex].text;
                }
            });
           
            // جستجوی سریع
            quickSearchBtn.addEventListener('click', function() {
                const searchTerm = quickSearch.value.trim();
                if (!searchTerm) {
                     alert('لطفاً نام کتاب را وارد کنید');
                     alert('لطفاً نام کتاب را وارد کنید');
                     return;
                     return;
                 }
                 }
                  
                  
                 const foundBook = searchInBooks(searchTerm);
                 // اضافه کردن به لیست
                 if (foundBook) {
                 if (addBookToSelect(bookName)) {
                     bookSelect.value = foundBook;
                    saveBooksList();
                     loadContentOnly(foundBook);
                   
                    // نمایش کتاب جدید
                     bookSelect.value = bookName;
                     showBook(bookName);
                   
                    // پاک کردن فیلد جستجو
                    bookSearch.value = '';
                   
                    alert(`کتاب "${bookName}" به لیست اضافه شد`);
                 } else {
                 } else {
                     alert(`کتاب "${searchTerm}" یافت نشد`);
                     alert(`کتاب "${bookName}" قبلاً در لیست وجود دارد`);
                 }
                 }
             });
             }
              
              
             quickSearch.addEventListener('keypress', function(e) {
             // رویدادها
                if (e.key === 'Enter') {
                    quickSearchBtn.click();
                }
            });
              
              
             // نمایش کتاب انتخاب شده
             // وقتی کاربر از لیست کتابی انتخاب می‌کند
             showBookBtn.addEventListener('click', function() {
             bookSelect.addEventListener('change', function() {
                 const bookName = bookSelect.value;
                 if (this.value) {
                if (bookName) {
                     showBook(this.value);
                     loadContentOnly(bookName);
                } else {
                    alert('لطفاً یک کتاب از لیست انتخاب کنید');
                 }
                 }
             });
             });
              
              
             // ایجاد صفحه جدید برای کتاب
             // وقتی مدیر در فیلد جستجو Enter می‌زند
             createNewBtn.addEventListener('click', function() {
             bookSearch.addEventListener('keypress', function(e) {
                 let bookName = bookSearch.value.trim();
                 if (e.key === 'Enter') {
                if (!bookName) {
                    createNewBook(this.value.trim());
                    alert('لطفاً نام کتاب جدید را وارد کنید');
                    return;
                 }
                 }
               
                if (!isAdminUser()) {
                    alert('شما مجوز ایجاد کتاب جدید را ندارید');
                    return;
                }
               
                const encodedBookName = encodeURIComponent(bookName);
                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}" از قبل وجود دارد`);
                            loadContentOnly(bookName);
                        }
                    })
                    .catch(error => {
                        console.error('Error:', error);
                        window.open(newPageUrl + '?action=edit', '_blank');
                    });
             });
             });
              
              
             // ناوبری بین کتاب‌ها
             // بارگذاری اولیه لیست کتاب‌ها
             prevBookBtn.addEventListener('click', function() {
             loadBooksList();
                if (currentBookIndex > 0) {
                    const prevBook = books[currentBookIndex - 1];
                    bookSelect.value = prevBook;
                    loadContentOnly(prevBook);
                }
            });
           
            nextBookBtn.addEventListener('click', function() {
                if (currentBookIndex < books.length - 1) {
                    const nextBook = books[currentBookIndex + 1];
                    bookSelect.value = nextBook;
                    loadContentOnly(nextBook);
                }
            });
           
            // مشاهده در صفحه اصلی
            viewOriginalBtn.addEventListener('click', function() {
                const currentBook = bookSelect.value;
                if (currentBook) {
                    const encodedBookName = encodeURIComponent(currentBook);
                    window.open(`https://www.pediabible.com/index.php/${encodedBookName}`, '_blank');
                } else {
                    alert('لطفاً ابتدا یک کتاب انتخاب کنید');
                }
            });
           
            // راه‌اندازی اولیه صفحه
            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> کتابخانه - پدیا بایبل

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

بخش مدیریت (برای افزودن کتاب جدید)
برای افزودن کتاب جدید به لیست، نام آن را وارد کرده و Enter بزنید