if (isset($target)) { if ($target == "") { $dialog_list = new Dialog_List2(Locale_Translate::_("Select which Bible to insert the cross references into")); $bibles = Access_Bible::bibles(); foreach ($bibles as $bible) { if (Access_Bible::write($bible)) { $dialog_list->add_row($bible, "&target={$bible}"); } } $dialog_list->run(); } else { $database_config_user->setTargetXrefBible($target); } } $source = $database_config_user->getSourceXrefBible(); if (!Access_Bible::read($source)) { $source = ""; $database_config_user->setSourceXrefBible($source); } $target = $database_config_user->getTargetXrefBible(); if (!Access_Bible::write($target)) { $target = ""; $database_config_user->setTargetXrefBible($target); } if ($source == "") { $source = "--"; } if ($target == "") { $target = "--"; } $view->view->source = $source;
if (isset($copy)) { $dialog_entry = new Dialog_Entry(array("origin" => $copy), Locale_Translate::_("Please enter a name for where to copy the Bible to"), "", "", ""); die; } @($origin = $_GET['origin']); if (isset($origin)) { $destination = $_POST['entry']; if (isset($destination)) { $bibles = $database_bibles->getBibles(); if (in_array($destination, $bibles)) { $error_message = Locale_Translate::_("Cannot copy Bible because the destination Bible already exists."); } else { ignore_user_abort(true); set_time_limit(0); // User needs read access to the original. if (Access_Bible::read($origin)) { $database_bibles->createBible($destination); $books = $database_bibles->getBooks($origin); foreach ($books as $book) { $chapters = $database_bibles->getChapters($origin, $book); foreach ($chapters as $chapter) { $data = $database_bibles->getChapter($origin, $book, $chapter); Bible_Logic::storeChapter($destination, $book, $chapter, $data); } } $success_message = Locale_Translate::_("The Bible was copied."); // Check / grant access to destination Bible. if (!Access_Bible::write($destination)) { $database_users->grantAccess2Bible($session_logic->currentUser(), $destination); } }
// The files get stored at http://site.org/bibledit-web/changes/<Bible>/<date> $basePath = "revisions/" . $bible . "/" . strftime("%Y-%m-%d_%H:%M:%S"); $directory = realpath("..") . "/{$basePath}"; mkdir($directory, 0777, true); // Produce the USFM and html files. Filter_Diff::produceVerseLevel($bible, $directory); // Create online page with changed verses. $versesoutputfile = "{$directory}/changed_verses.html"; Filter_Diff::runDiffFile("{$directory}/verses_old.txt", "{$directory}/verses_new.txt", $versesoutputfile); // Email users. $subject = Locale_Translate::_("Recent changes") . " " . $bible; $emailBody = file_get_contents($versesoutputfile); $users = $database_users->getUsers(); foreach ($users as $user) { if ($database_config_user->getUserBibleChangesNotification($user)) { if (Access_Bible::read($bible, $user)) { if (!Filter_Client::enabled()) { $database_mail->send($user, $subject, $emailBody); } } } } // Generate the online change notifications. $books = $database_modifications->getTeamDiffBooks($bible); foreach ($books as $book) { $chapters = $database_modifications->getTeamDiffChapters($bible, $book); foreach ($chapters as $chapter) { $database_logs->log("{$bible} " . Filter_Books::passageDisplay($book, $chapter, "") . " Listing changes", Filter_Roles::TRANSLATOR_LEVEL); $old_chapter_usfm = $database_modifications->getTeamDiff($bible, $book, $chapter); $new_chapter_usfm = $database_bibles->getChapter($bible, $book, $chapter); $old_verse_numbers = Filter_Usfm::getVerseNumbers($old_chapter_usfm);