about summary refs log tree commit diff
path: root/sort.php
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@gmail.com>2018-03-20 12:08:43 -0400
committerZach DeCook <zachdecook@gmail.com>2018-03-20 12:08:43 -0400
commitb01ad1d9123ab8f497ce78fcab0c5caebc0cc993 (patch)
tree2f3e81f50a665b8316eb774b7deba4ba023954e5 /sort.php
parentf3c77eac34d58d3e3c3173419a9b2c82d2141740 (diff)
downloadprosongsa-b01ad1d9123ab8f497ce78fcab0c5caebc0cc993.tar.gz
* Allow sorting by bible book and by key
Diffstat (limited to 'sort.php')
-rw-r--r--sort.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/sort.php b/sort.php
new file mode 100644
index 0000000..887178d
--- /dev/null
+++ b/sort.php
@@ -0,0 +1,66 @@
+<?php
+
+function tocKeysort( $a, $b ){
+	$aKey = $a['key'] ?: 'H';
+	$bKey = $b['key'] ?: 'H';
+	return ord($aKey[0]) - ord($bKey[0]);
+}
+
+
+function tocBooksort( $a, $b ){
+$bookOrder = array(
+'Genesis',
+'Exodus',
+'Numbers',
+'Deuteronomy',
+'Joshua',
+'I Samuel',
+'I Chronicles',
+'II Chronicles',
+'Psalm',
+'Proverbs',
+'Isaiah',
+'Jeremiah',
+'Lamentations',
+'Micah',
+'Habakkuk',
+'Zephaniah',
+'Zepheniah',
+'Matthew',
+'Matt.',
+'John',
+'Romans',
+'I Cor.',
+'II Corinthians',
+'Galatians',
+'Ephesians',
+'Philippians',
+'Phil.',
+'I Thessalonians',
+'II Timothy',
+'Hebrews',
+'James',
+'Psalm',
+'I Peter',
+'I John',
+'Jude',
+'Revelation',
+'Revelations',
+'Rev.',
+);
+	$aVerse = $a['verse'] ?: '';
+	$bVerse = $b['verse'] ?: '';
+	$matches = array();
+	$aBookKey = 3000;
+	$bBookKey = 3000;
+	if ( preg_match( '/^[0-9i]*\ ?[A-Z.]+/i', $aVerse, $matches ) ){
+		$aBook = $matches[0];
+		$aBookKey = array_search( $aBook, $bookOrder );
+	}
+	if ( preg_match( '/^[0-9i]*\ ?[A-Z.]+/i', $bVerse, $matches ) ){
+		$bBook = $matches[0];
+		$bBookKey = array_search( $bBook, $bookOrder );
+	}
+
+	return $aBookKey - $bBookKey;
+}