public static function getBooksFragment($bible) { $database_bibles = Database_Bibles::getInstance(); $database_books = Database_Books::getInstance(); $ipc_focus = Ipc_Focus::getInstance(); $activeBook = $ipc_focus->getBook(); // Take standard books in case of no Bible. if ($bible == "") { $books = $database_books->getIDs(); } else { $books = Filter_Books::getOrdered($bible); } $html = ""; foreach ($books as $book) { $bookName = $database_books->getEnglishFromId($book); $selected = ""; if ($book == $activeBook) { $selected = " selected"; } $html .= "<option{$selected}>" . $bookName . "</option>"; } return $html; }
$database_bibles = Database_Bibles::getInstance(); $bible = Access_Bible::clamp($_GET['bible']); $view->view->bible = Filter_Html::sanitize($bible); @($reset = $_GET["reset"]); if (isset($reset)) { $database_config_bible->setBookOrder($bible, ""); } @($order = $_POST['order']); if (isset($order)) { $order = explode(",", $order); $ids = array(); foreach ($order as $english) { $id = $database_books->getIdFromEnglish($english); $ids[] = $id; } $order = implode(" ", $ids); $database_config_bible->setBookOrder($bible, $order); die; } $script = <<<EOD var orderBible = '{$bible}'; EOD; $view->view->script = $script; $names = array(); $books = Filter_Books::getOrdered($bible); foreach ($books as $book) { $names[] = $database_books->getEnglishFromId($book); } $view->view->names = $names; $view->render("order.php"); Assets_Page::footer();
public function testGetOrdered() { $database_bibles = Database_Bibles::getInstance(); $database_config_bible = Database_Config_Bible::getInstance(); $bible = "php unit"; // No ordering. $database_bibles->createBible($bible); $database_bibles->storeChapter($bible, 1, 1, "data"); $database_bibles->storeChapter($bible, 2, 1, "data"); $database_bibles->storeChapter($bible, 3, 1, "data"); $database_bibles->storeChapter($bible, 4, 1, "data"); $database_bibles->storeChapter($bible, 5, 1, "data"); $books = Filter_Books::getOrdered($bible); $standard = array(1, 2, 3, 4, 5); $this->assertEquals($standard, $books); // Existing books re-ordered. $database_config_bible->setBookOrder($bible, "1 3 2 5 4"); $books = Filter_Books::getOrdered($bible); $standard = array(1, 3, 2, 5, 4); $this->assertEquals($standard, $books); // Some books ordered, and Bible has extra books: These are to be added to the end. $database_config_bible->setBookOrder($bible, "1 3 2"); $books = Filter_Books::getOrdered($bible); $standard = array(1, 3, 2, 4, 5); $this->assertEquals($standard, $books); // More books ordered than in Bible: Remove the extra ones. $database_config_bible->setBookOrder($bible, "1 3 2 5 4 6"); $books = Filter_Books::getOrdered($bible); $standard = array(1, 3, 2, 5, 4); $this->assertEquals($standard, $books); }