Ejemplo n.º 1
0
 public function testOneString()
 {
     $this->assertEquals("", Filter_Usfm::oneString(""));
     $this->assertEquals("\\id GEN", Filter_Usfm::oneString("\\id GEN\n"));
     $this->assertEquals("\\v 10 text", Filter_Usfm::oneString("\\v 10\ntext"));
     $this->assertEquals("\\v 10\\v 11", Filter_Usfm::oneString("\\v 10\n\\v 11"));
     $this->assertEquals("\\v 10 text\\p\\v 11", Filter_Usfm::oneString("\\v 10 text\n\\p\\v 11"));
 }
Ejemplo n.º 2
0
 public static function import($input, $stylesheet)
 {
     $result = array();
     $book_number = 0;
     $chapter_number = 0;
     $chapter_data = "";
     $input = Filter_Usfm::oneString($input);
     $markers_and_text = Filter_Usfm::getMarkersAndText($input);
     $retrieve_book_number_on_next_iteration = false;
     $retrieve_chapter_number_on_next_iteration = false;
     foreach ($markers_and_text as $marker_or_text) {
         if ($retrieve_book_number_on_next_iteration) {
             $database_books = Database_Books::getInstance();
             $book_number = $database_books->getIdFromUsfm(substr($marker_or_text, 0, 3));
             $chapter_number = 0;
             $retrieve_book_number_on_next_iteration = false;
         }
         if ($retrieve_chapter_number_on_next_iteration) {
             $retrieve_chapter_number_on_next_iteration = false;
             $chapter_number = Filter_Numeric::integer_in_string($marker_or_text);
             if ($chapter_number == "") {
                 $chapter_number = 0;
             }
         }
         $marker = Filter_Usfm::getMarker($marker_or_text);
         if ($marker != "") {
             // USFM marker found.
             if ($marker == "id") {
                 $retrieve_book_number_on_next_iteration = true;
                 $store_chapter_data = true;
             }
             if ($marker == "c") {
                 $retrieve_chapter_number_on_next_iteration = true;
                 $store_chapter_data = true;
             }
             if ($store_chapter_data) {
                 $chapter_data = trim($chapter_data);
                 if ($chapter_data != "") {
                     $result[] = array($book_number, $chapter_number, $chapter_data);
                 }
                 $chapter_number = 0;
                 $chapter_data = "";
                 $store_chapter_data = false;
             }
             $database_styles = Database_Styles::getInstance();
             $marker_data = $database_styles->getMarkerData($stylesheet, $marker);
             $type = $marker_data['type'];
             $subtype = $marker_data['subtype'];
             $styles_logic = Styles_Logic::getInstance();
             if ($styles_logic->startsNewLineInUsfm($type, $subtype)) {
                 $chapter_data .= "\n";
             }
         }
         $chapter_data .= $marker_or_text;
     }
     $chapter_data = trim($chapter_data);
     if ($chapter_data != "") {
         $result[] = array($book_number, $chapter_number, $chapter_data);
     }
     return $result;
 }