function addTag($reference_string, $bible_code = 'kjv', $relevant_words = '') { # Get reference data $reference_data = getReferenceData($reference_string); if (!$reference_data) { return false; } # Add tag object $tag_object = new Tag(); # Add tag verse object for each verse number foreach ($reference_data['verses'] as $verse_number) { # Get verse object $verse_object = getVerseByReference($reference_data['book'] . ' ' . $reference_data['chapter'] . ':' . $verse_number); if (!$verse_object) { return false; } # Add tag verse object $tag_verse_object = new TagVerse(); $tag_verse_object->setTag($tag_object)->setVerse($verse_object)->save(); } $tag_object->save(); # Get bible object $bible_object = getBibleByCode($bible_code); # Add tag highlighter object $tag_highlighter_object = new TagHighlighter(); $tag_highlighter_object->setBible($bible_object)->setRelevantWords($relevant_words)->setTag($tag_object)->save(); return $tag_object; }
function getPassageData($reference_string, $bible_code = 'kjv') { # Stop if no reference string provided if (!$reference_string) { return; } # Get reference data $reference_data = getReferenceData($reference_string); # Get bible object $bible_object = BibleQuery::create()->filterByCode($bible_code)->findOne(); # Get book object $book_object = BookQuery::create()->filterByName($reference_data['book'])->findOne(); # Define passage data $passage_data = ['bible' => ['code' => ['default' => $bible_object->getCode(), 'formatted' => strtoupper($bible_object->getCode())], 'id' => $bible_object->getId(), 'name' => $bible_object->getName()], 'book' => ['id' => $book_object->getId(), 'name' => $book_object->getName()], 'chapter' => ['number' => $reference_data['chapter']], 'reference' => ['string' => $reference_string], 'verses' => $reference_data['verses']]; # Return passage data return $passage_data; }
function getVersesByReference($reference_string) { # Get reference data $reference_data = getReferenceData($reference_string); # Get book object $book_object = BookQuery::create()->filterByName($reference_data['book'])->findOne(); if (!$book_object) { return false; } # Get verses object $verses_object = VerseQuery::create()->filterByBook($book_object)->filterByChapterNumber($reference_data['chapter'])->_if($reference_data['verses'])->filterByVerseNumber($reference_data['verses'])->_endif()->find(); if (!$verses_object) { return false; } # Return verses object return $verses_object; }