Skip to content

ScripturNum Bible

GitHub Actions - update documentation edited this page Sep 19, 2024 · 3 revisions

ScripturNum\Bible

A class that defines the composition of a Bible. This includes the number of verses in each chapter, and the names of the books of the Bible. To translate, extend this class.

  • Class name: Bible
  • Namespace: \ScripturNum
  • This is an abstract class

Properties

BOOK_NAMES

protected  BOOK_NAMES = []

An array containing book names that should be recognized. Keyed by sequential integers.

  • Visibility: protected

COMMON_TERMS

protected  COMMON_TERMS = []

An array containing book names that are common words in English. Must match the terms used in $BOOK_NAMES in capitalization and spelling.

  • Visibility: protected

CONJUNCTIONS

protected mixed CONJUNCTIONS = ["chapter" => "chapter", "and" => "and", "through" => "through"]
  • Visibility: protected

ORDINALS

protected  ORDINALS = [['1', 'I', 'First'], ['2', 'II', 'Second'], ['3', 'III', 'Third']]

An array containing the default ordinal strings.

To translate, overwrite these values with translated values.

  • Visibility: protected

VERSES

private  VERSES = [[31, 25, 24, 26, 32, 22, 24, 22, 29, 32, 32, 20, 18, 24, 21, 16, 27, 33, 38, 18, 34, 24, 20, 67, 34, 35, 46, 22, 35, 43, 55, 32, 20, 31, 29, 43, 36, 30, 23, 23, 57, 38, 34, 34, 28, 34, 31, 22, 33, 26], [22, 25, 22, 31, 23, 30, 25, 32, 35, 29, 10, 51, 22, 31, 27, 36, 16, 27, 25, 26, 36, 31, 33, 18, 40, 37, 21, 43, 46, 38, 18, 35, 23, 35, 35, 38, 29, 31, 43, 38], [17, 16, 17, 35, 19, 30, 38, 36, 24, 20, 47, 8, 59, 57, 33, 34, 16, 30, 37, 27, 24, 33, 44, 23, 55, 46, 34], [54, 34, 51, 49, 31, 27, 89, 26, 23, 36, 35, 16, 33, 45, 41, 50, 13, 32, 22, 29, 35, 41, 30, 25, 18, 65, 23, 31, 40, 16, 54, 42, 56, 29, 34, 13], [46, 37, 29, 49, 33, 25, 26, 20, 29, 22, 32, 32, 18, 29, 23, 22, 20, 22, 21, 20, 23, 30, 25, 22, 19, 19, 26, 68, 29, 20, 30, 52, 29, 12], [18, 24, 17, 24, 15, 27, 26, 35, 27, 43, 23, 24, 33, 15, 63, 10, 18, 28, 51, 9, 45, 34, 16, 33], [36, 23, 31, 24, 31, 40, 25, 35, 57, 18, 40, 15, 25, 20, 20, 31, 13, 31, 30, 48, 25], [22, 23, 18, 22], [28, 36, 21, 22, 12, 21, 17, 22, 27, 27, 15, 25, 23, 52, 35, 23, 58, 30, 24, 42, 15, 23, 29, 22, 44, 25, 12, 25, 11, 31, 13], [27, 32, 39, 12, 25, 23, 29, 18, 13, 19, 27, 31, 39, 33, 37, 23, 29, 33, 43, 26, 22, 51, 39, 25], [53, 46, 28, 34, 18, 38, 51, 66, 28, 29, 43, 33, 34, 31, 34, 34, 24, 46, 21, 43, 29, 53], [18, 25, 27, 44, 27, 33, 20, 29, 37, 36, 21, 21, 25, 29, 38, 20, 41, 37, 37, 21, 26, 20, 37, 20, 30], [54, 55, 24, 43, 26, 81, 40, 40, 44, 14, 47, 40, 14, 17, 29, 43, 27, 17, 19, 8, 30, 19, 32, 31, 31, 32, 34, 21, 30], [17, 18, 17, 22, 14, 42, 22, 18, 31, 19, 23, 16, 22, 15, 19, 14, 19, 34, 11, 37, 20, 12, 21, 27, 28, 23, 9, 27, 36, 27, 21, 33, 25, 33, 27, 23], [11, 70, 13, 24, 17, 22, 28, 36, 15, 44], [11, 20, 32, 23, 19, 19, 73, 18, 38, 39, 36, 47, 31], [22, 23, 15, 17, 14, 14, 10, 17, 32, 3], [22, 13, 26, 21, 27, 30, 21, 22, 35, 22, 20, 25, 28, 22, 35, 22, 16, 21, 29, 29, 34, 30, 17, 25, 6, 14, 23, 28, 25, 31, 40, 22, 33, 37, 16, 33, 24, 41, 30, 24, 34, 17], [6, 12, 8, 8, 12, 10, 17, 9, 20, 18, 7, 8, 6, 7, 5, 11, 15, 50, 14, 9, 13, 31, 6, 10, 22, 12, 14, 9, 11, 12, 24, 11, 22, 22, 28, 12, 40, 22, 13, 17, 13, 11, 5, 26, 17, 11, 9, 14, 20, 23, 19, 9, 6, 7, 23, 13, 11, 11, 17, 12, 8, 12, 11, 10, 13, 20, 7, 35, 36, 5, 24, 20, 28, 23, 10, 12, 20, 72, 13, 19, 16, 8, 18, 12, 13, 17, 7, 18, 52, 17, 16, 15, 5, 23, 11, 13, 12, 9, 9, 5, 8, 28, 22, 35, 45, 48, 43, 13, 31, 7, 10, 10, 9, 8, 18, 19, 2, 29, 176, 7, 8, 9, 4, 8, 5, 6, 5, 6, 8, 8, 3, 18, 3, 3, 21, 26, 9, 8, 24, 13, 10, 7, 12, 15, 21, 10, 20, 14, 9, 6], [33, 22, 35, 27, 23, 35, 27, 36, 18, 32, 31, 28, 25, 35, 33, 33, 28, 24, 29, 30, 31, 29, 35, 34, 28, 28, 27, 28, 27, 33, 31], [18, 26, 22, 16, 20, 12, 29, 17, 18, 20, 10, 14], [17, 17, 11, 16, 16, 13, 13, 14], [31, 22, 26, 6, 30, 13, 25, 22, 21, 34, 16, 6, 22, 32, 9, 14, 14, 7, 25, 6, 17, 25, 18, 23, 12, 21, 13, 29, 24, 33, 9, 20, 24, 17, 10, 22, 38, 22, 8, 31, 29, 25, 28, 28, 25, 13, 15, 22, 26, 11, 23, 15, 12, 17, 13, 12, 21, 14, 21, 22, 11, 12, 19, 12, 25, 24], [19, 37, 25, 31, 31, 30, 34, 22, 26, 25, 23, 17, 27, 22, 21, 21, 27, 23, 15, 18, 14, 30, 40, 10, 38, 24, 22, 17, 32, 24, 40, 44, 26, 22, 19, 32, 21, 28, 18, 16, 18, 22, 13, 30, 5, 28, 7, 47, 39, 46, 64, 34], [22, 22, 66, 22, 22], [28, 10, 27, 17, 17, 14, 27, 18, 11, 22, 25, 28, 23, 23, 8, 63, 24, 32, 14, 49, 32, 31, 49, 27, 17, 21, 36, 26, 21, 26, 18, 32, 33, 31, 15, 38, 28, 23, 29, 49, 26, 20, 27, 31, 25, 24, 23, 35], [21, 49, 30, 37, 31, 28, 28, 27, 27, 21, 45, 13], [11, 23, 5, 19, 15, 11, 16, 14, 17, 15, 12, 14, 16, 9], [20, 32, 21], [15, 16, 15, 13, 27, 14, 17, 14, 15], [21], [17, 10, 10, 11], [16, 13, 12, 13, 15, 16, 20], [15, 13, 19], [17, 20, 19], [18, 15, 20], [15, 23], [21, 13, 10, 14, 11, 15, 14, 23, 17, 12, 17, 14, 9, 21], [14, 17, 18, 6], [25, 23, 17, 25, 48, 34, 29, 34, 38, 42, 30, 50, 58, 36, 39, 28, 27, 35, 30, 34, 46, 46, 39, 51, 46, 75, 66, 20], [45, 28, 35, 41, 43, 56, 37, 38, 50, 52, 33, 44, 37, 72, 47, 20], [80, 52, 38, 44, 39, 49, 50, 56, 62, 42, 54, 59, 35, 35, 32, 31, 37, 43, 48, 47, 38, 71, 56, 53], [51, 25, 36, 54, 47, 71, 53, 59, 41, 42, 57, 50, 38, 31, 27, 33, 26, 40, 42, 31, 25], [26, 47, 26, 37, 42, 15, 60, 40, 43, 48, 30, 25, 52, 28, 41, 40, 34, 28, 41, 38, 40, 30, 35, 27, 27, 32, 44, 31], [32, 29, 31, 25, 21, 23, 25, 39, 33, 21, 36, 21, 14, 23, 33, 27], [31, 16, 23, 21, 13, 20, 40, 13, 27, 33, 34, 31, 13, 40, 58, 24], [24, 17, 18, 18, 21, 18, 16, 24, 15, 18, 33, 21, 14], [24, 21, 29, 31, 26, 18], [23, 22, 21, 32, 33, 24], [30, 30, 21, 23], [29, 23, 25, 18], [10, 20, 13, 18, 28], [12, 17, 18], [20, 15, 16, 16, 25, 21], [18, 26, 17, 22], [16, 15, 15], [25], [14, 18, 19, 16, 14, 20, 28, 13, 28, 39, 40, 29, 25], [27, 26, 18, 17, 20], [25, 25, 22, 19, 14], [21, 22, 18], [10, 29, 24, 21, 21], [13], [15], [25], [20, 29, 22, 11, 14, 17, 17, 13, 21, 11, 19, 17, 18, 20, 8, 21, 18, 24, 21, 15, 27, 20]]

An array containing the length of each chapter of each book. Changing anything here could be REALLY bad; don't do it.

  • Visibility: private

Methods

getVerseCounts

int[][] ScripturNum\Bible::getVerseCounts()
  • Visibility: public
  • This method is static.

Returns

  • int[][] - An array containing the length of each chapter.

prepareBookNames

void ScripturNum\Bible::prepareBookNames()

Prepare the Book Names array. To translate, override this method. Also, when translating, be sure to use this override to set new values for $CONJUNCTIONS.

  • Visibility: protected
  • This method is static.

ordinals

string[] ScripturNum\Bible::ordinals(int number, string|string[] strings)

Create all combinations of strings for a given ordinal book (ordinal books are the numbered books, like 1 and 2 Kings).

  • Visibility: protected
  • This method is static.

Arguments

  • number int - The number to use with the ordinal. e.g. "1" in "1 John".
  • strings string|string[] - The words to place with the ordinal. e.g. "John", "Jn", etc for "1 John".

Returns

  • string[] - The full name (for formal contexts) must be in position 0, and the shortest address (for urls) must be in position 1.

getBookNames

string[][] ScripturNum\Bible::getBookNames()

Get the Bible book names, as prepared.

  • Visibility: public
  • This method is static.

Returns

  • string[][] - The array of book names, grouped by book.

getCommonTerms

string[] ScripturNum\Bible::getCommonTerms()

Get the common terms, as prepared

  • Visibility: public
  • This method is static.

Returns

  • string[] - The array of common names in the vernacular language.

getConjunctions

string[] ScripturNum\Bible::getConjunctions()

Get the conjunctions, as prepared

  • Visibility: public
  • This method is static.

Returns

  • string[] - The array of some specific conjunctions so they're translatable.

pluralizeBookName

string ScripturNum\Bible::pluralizeBookName(string bookNameSingular)

Pluralizes the books where singular and plural make a difference. In English, Psalm(s) and Song(s) of Solomon.

For translation, override this method.

  • Visibility: public
  • This method is static.

Arguments

  • bookNameSingular string - The singular book name

Returns

  • string - The plural book name

in_arrayi

bool ScripturNum\Bible::in_arrayi(mixed needle, mixed haystack)

Returns true if the given needle is in the haystack, case-insensitive.

  • Visibility: public
  • This method is static.

Arguments

  • needle mixed* haystack mixed

Returns

  • bool -

bookHasSingleChapter

bool ScripturNum\Bible::bookHasSingleChapter(mixed bookIndex)

Returns true if the book at a particular position has only a single chapter.

  • Visibility: public
  • This method is static.

Arguments

  • bookIndex mixed

Returns

  • bool -

validateBookNames

bool|array ScripturNum\Bible::validateBookNames(bool returnDupes)

Confirms that there are no duplicate names in the arrays of book names. This is important because some abbreviations can be interpreted multiple different ways.

The return value can be either an array of duplicates (or empty array if none), or a bool that is true if the list is valid.

  • Visibility: public
  • This method is static.

Arguments

  • returnDupes bool - Default False. Set true to return an array of duplicate names.

Returns

  • bool|array -

validateBookNamesEx

true ScripturNum\Bible::validateBookNamesEx()

Confirms that there are no duplicate names in the arrays of book names. This is important because some abbreviations can be interpreted multiple different ways.

This function will return true if the book names are valid, and will throw an exception if not.

  • Visibility: public
  • This method is static.

Returns

  • true -