BIBILIYA YERA

$0', $escaped ); } return $escaped; } class qa_bible_reader_page { function match_request($request) { return $request === 'bible-reader'; } function process_request($request) { $pdo = qa_bible_reader_db(); if ($pdo === null) { echo '

Bible Reader

'; echo '

Database connection failed.

'; return; } /* * --------------------------------------------------------- * CSS * --------------------------------------------------------- */ echo ''; /* * --------------------------------------------------------- * Get all Bible books * --------------------------------------------------------- */ $stmt = $pdo->query(" SELECT id, book_code, book_name, testament, book_order, chapter_count FROM bible_books ORDER BY book_order ASC "); $books = $stmt->fetchAll(); /* * --------------------------------------------------------- * Selected book * --------------------------------------------------------- */ $selected_book_id = isset($_GET['book']) ? (int) $_GET['book'] : 0; /* * --------------------------------------------------------- * Selected chapter * --------------------------------------------------------- */ $selected_chapter_id = isset($_GET['chapter']) ? (int) $_GET['chapter'] : 0; /* * --------------------------------------------------------- * Get chapters * --------------------------------------------------------- */ $chapters = array(); if ($selected_book_id > 0) { $chapter_stmt = $pdo->prepare(" SELECT id, chapter_number FROM bible_chapters WHERE book_id = ? ORDER BY chapter_number ASC "); $chapter_stmt->execute( array($selected_book_id) ); $chapters = $chapter_stmt->fetchAll(); } /* * --------------------------------------------------------- * Get selected book information * --------------------------------------------------------- */ $selected_book = null; if ($selected_book_id > 0) { $book_stmt = $pdo->prepare(" SELECT id, book_name, testament, book_order, chapter_count FROM bible_books WHERE id = ? LIMIT 1 "); $book_stmt->execute( array($selected_book_id) ); $selected_book = $book_stmt->fetch(); } /* * --------------------------------------------------------- * Get selected chapter information * --------------------------------------------------------- */ $current_chapter_number = 0; if ($selected_chapter_id > 0) { $current_chapter_stmt = $pdo->prepare(" SELECT id, book_id, chapter_number FROM bible_chapters WHERE id = ? LIMIT 1 "); $current_chapter_stmt->execute( array($selected_chapter_id) ); $current_chapter = $current_chapter_stmt->fetch(); if ($current_chapter) { $current_chapter_number = (int) $current_chapter['chapter_number']; /* * Make sure the selected chapter belongs * to the selected book. */ if ( (int) $current_chapter['book_id'] !== $selected_book_id ) { $selected_chapter_id = 0; $current_chapter_number = 0; } } } /* * --------------------------------------------------------- * Find previous and next chapters * --------------------------------------------------------- */ $previous_chapter = null; $next_chapter = null; if ( $selected_book_id > 0 && $selected_chapter_id > 0 ) { $previous_stmt = $pdo->prepare(" SELECT id, chapter_number FROM bible_chapters WHERE book_id = ? AND chapter_number < ? ORDER BY chapter_number DESC LIMIT 1 "); $previous_stmt->execute(array( $selected_book_id, $current_chapter_number )); $previous_chapter = $previous_stmt->fetch(); $next_stmt = $pdo->prepare(" SELECT id, chapter_number FROM bible_chapters WHERE book_id = ? AND chapter_number > ? ORDER BY chapter_number ASC LIMIT 1 "); $next_stmt->execute(array( $selected_book_id, $current_chapter_number )); $next_chapter = $next_stmt->fetch(); } /* * --------------------------------------------------------- * Get verses * --------------------------------------------------------- */ $verses = array(); if ($selected_chapter_id > 0) { $verse_stmt = $pdo->prepare(" SELECT id, verse_start, verse_end, verse_text, source_id, source_page, source_status, validation_status FROM bible_verses WHERE chapter_id = ? ORDER BY verse_start ASC "); $verse_stmt->execute( array($selected_chapter_id) ); $verses = $verse_stmt->fetchAll(); } /* * --------------------------------------------------------- * Bible Reader * --------------------------------------------------------- */ echo '
'; echo '

Bible Reader

'; /* * --------------------------------------------------------- * BIBLE SEARCH — STEP 2G.30D.17 * Search with optional Book filter * --------------------------------------------------------- */ $search_query = isset($_GET['qa_bible_search']) ? trim((string) $_GET['qa_bible_search']) : ''; $search_book_id = isset($_GET['qa_bible_search_book']) ? (int) $_GET['qa_bible_search_book'] : 0; $search_page = isset($_GET['qa_bible_search_page']) ? max(1, (int) $_GET['qa_bible_search_page']) : 1; $search_per_page = 20; echo ''; /* * --------------------------------------------------------- * BOOK SELECTOR * --------------------------------------------------------- */ echo '

Select Book:

'; echo '
'; echo ''; echo '
'; /* * --------------------------------------------------------- * CHAPTER SELECTOR * --------------------------------------------------------- */ if ($selected_book_id > 0) { echo '

Select Chapter:

'; echo '
'; echo ''; echo ''; echo '
'; /* * --------------------------------------------------------- * CHAPTER BUTTONS * --------------------------------------------------------- */ echo '
'; echo '
Chapters
'; foreach ($chapters as $chapter) { $active_class = ( $selected_chapter_id === (int) $chapter['id'] ) ? ' active' : ''; echo ''; echo (int) $chapter['chapter_number']; echo ''; } echo '
'; } /* * --------------------------------------------------------- * BOOK / CHAPTER HEADER * --------------------------------------------------------- */ if ( $selected_book && $selected_chapter_id > 0 && $current_chapter_number > 0 ) { echo '
'; echo '
'; echo ( $selected_book['testament'] === 'OT' ? 'ISEZERANO RYA KERA' : 'ISEZERANO RISHYA' ); echo '
'; echo '

'; echo htmlspecialchars( $selected_book['book_name'], ENT_QUOTES, 'UTF-8' ); echo '

'; echo '
'; echo 'Chapter ' . $current_chapter_number; echo '
'; echo '
'; } /* * --------------------------------------------------------- * VERSES * --------------------------------------------------------- */ if ($selected_chapter_id > 0) { echo '
'; if (count($verses) === 0) { echo '

No verses found for this chapter.

'; } else { foreach ($verses as $verse) { echo '
'; /* * Verse number */ echo ''; echo (int) $verse['verse_start']; echo ''; /* * Verse text */ echo ' '; echo ''; echo htmlspecialchars( $verse['verse_text'], ENT_QUOTES, 'UTF-8' ); echo ''; echo '
'; } } echo '
'; /* * ----------------------------------------------------- * VERSE HIGHLIGHT ON CLICK * ----------------------------------------------------- */ echo ''; /* * ----------------------------------------------------- * CHAPTER NAVIGATION * ----------------------------------------------------- */ echo '
'; /* * Previous chapter */ if ($previous_chapter) { echo ''; echo '← Previous Chapter'; echo ''; } else { echo ''; } /* * Next chapter */ if ($next_chapter) { echo ''; echo 'Next Chapter →'; echo ''; } else { echo ''; } echo '
'; } echo '
'; } }
Ikaze kuri Bazabibiriya.org; Wemerewe kubaza ikibazo cyose kijyanye n'iyobokamana, Dufite inararibonye n'abasesenguzi ba Bibiriya biteguye kugusubiza.
...