Stable release of v2.0.31

Fixed #10 so that exact search results now work correctly. Update scripture loader to version 3.0.3.
This commit is contained in:
Robot 2023-12-04 12:04:15 +02:00
parent 4f260d11e3
commit 20da2e8275
Signed by: Robot
GPG Key ID: 14DECD44E7E1BB95
8 changed files with 65 additions and 45 deletions

View File

@ -1,3 +1,8 @@
# v2.0.31
- Fixed #10 so that exact search results now work correctly.
- Update scripture loader to version 3.0.3
# v2.0.30 # v2.0.30
- Update scripture loader to version 3.0.2 - Update scripture loader to version 3.0.2

View File

@ -1,4 +1,4 @@
# Get Bible (2.0.30) # Get Bible (2.0.31)
![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/master/admin/assets/images/vdm-component.jpg "GetBible") ![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/master/admin/assets/images/vdm-component.jpg "GetBible")
@ -18,8 +18,8 @@ In essence, The Bible for Joomla is designed to transform how the Word of God is
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Get Bible](https://getbible.net) + *Name*: [Get Bible](https://getbible.net)
+ *First Build*: 3rd December, 2015 + *First Build*: 3rd December, 2015
+ *Last Build*: 30th November, 2023 + *Last Build*: 4th December, 2023
+ *Version*: 2.0.30 + *Version*: 2.0.31
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
@ -31,8 +31,8 @@ due to [Automated Component Builder](https://www.joomlacomponentbuilder.com))
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, > (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> never making one mistake or taking any coffee break.) > never making one mistake or taking any coffee break.)
+ *Line count*: **200920** + *Line count*: **200940**
+ *File count*: **1742** + *File count*: **1743**
+ *Folder count*: **167** + *Folder count*: **167**
**370 Hours** or **46 Eight Hour Days** (the actual time the author spent) **370 Hours** or **46 Eight Hour Days** (the actual time the author spent)

View File

@ -1,4 +1,4 @@
# Get Bible (2.0.30) # Get Bible (2.0.31)
![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/master/admin/assets/images/vdm-component.jpg "GetBible") ![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/master/admin/assets/images/vdm-component.jpg "GetBible")
@ -18,8 +18,8 @@ In essence, The Bible for Joomla is designed to transform how the Word of God is
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Get Bible](https://getbible.net) + *Name*: [Get Bible](https://getbible.net)
+ *First Build*: 3rd December, 2015 + *First Build*: 3rd December, 2015
+ *Last Build*: 30th November, 2023 + *Last Build*: 4th December, 2023
+ *Version*: 2.0.30 + *Version*: 2.0.31
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
@ -31,8 +31,8 @@ due to [Automated Component Builder](https://www.joomlacomponentbuilder.com))
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**, > (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> never making one mistake or taking any coffee break.) > never making one mistake or taking any coffee break.)
+ *Line count*: **200920** + *Line count*: **200940**
+ *File count*: **1742** + *File count*: **1743**
+ *Folder count*: **167** + *Folder count*: **167**
**370 Hours** or **46 Eight Hour Days** (the actual time the author spent) **370 Hours** or **46 Eight Hour Days** (the actual time the author spent)

View File

@ -0,0 +1 @@

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.10" method="upgrade"> <extension type="component" version="3.10" method="upgrade">
<name>COM_GETBIBLE</name> <name>COM_GETBIBLE</name>
<creationDate>30th November, 2023</creationDate> <creationDate>4th December, 2023</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>joomla@vdm.io</authorEmail> <authorEmail>joomla@vdm.io</authorEmail>
<authorUrl>https://getbible.net</authorUrl> <authorUrl>https://getbible.net</authorUrl>
<copyright>Copyright (C) 2015. All Rights Reserved</copyright> <copyright>Copyright (C) 2015. All Rights Reserved</copyright>
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license> <license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
<version>2.0.30</version> <version>2.0.31</version>
<description><![CDATA[ <description><![CDATA[
<h1>Get Bible (v.2.0.30)</h1> <h1>Get Bible (v.2.0.31)</h1>
<div style="clear: both;"></div> <div style="clear: both;"></div>
<p>Welcome to the next level of scripture engagement - The Bible for Joomla! Our purpose is to bring the Word of God to every person, in their native language, entirely free. This isn't just a typical extension; it's a groundbreaking tool developed to span language divides and deliver a rich, customizable Bible study experience to users worldwide. <p>Welcome to the next level of scripture engagement - The Bible for Joomla! Our purpose is to bring the Word of God to every person, in their native language, entirely free. This isn't just a typical extension; it's a groundbreaking tool developed to span language divides and deliver a rich, customizable Bible study experience to users worldwide.

View File

@ -1539,7 +1539,7 @@ class com_getbibleInstallerScript
echo '<a target="_blank" href="https://getbible.net" title="Get Bible"> echo '<a target="_blank" href="https://getbible.net" title="Get Bible">
<img src="components/com_getbible/assets/images/vdm-component.jpg"/> <img src="components/com_getbible/assets/images/vdm-component.jpg"/>
</a> </a>
<h3>Upgrade to Version 2.0.30 Was Successful! Let us know if anything is not working as expected.</h3>'; <h3>Upgrade to Version 2.0.31 Was Successful! Let us know if anything is not working as expected.</h3>';
// Set db if not set already. // Set db if not set already.
if (!isset($db)) if (!isset($db))

View File

@ -439,16 +439,22 @@ class GetbibleModelSearch extends ListModel
} }
// 3 = EXACT PHRASE // 3 = EXACT PHRASE
elseif ($this->words == 3) elseif ($this->words == 3)
{
if($this->match == 2)
{ {
// 2 = partial match // 2 = partial match
$search = $db->quote('%' . $db->escape($this->search, true) . '%'); if ($this->match == 2) {
$conditions[] = '( ' . $case . ' a.text LIKE ' . $search . ')'; $words = $this->splitSentence($this->search);
$search = [];
foreach ($words as $word) {
$search[] = '%' . $db->escape($word, true) . '%';
}
// Construct the LIKE clause with wildcards between each word for partial matches
$conditions[] = '(' . $case . ' a.text LIKE ' . $db->quote(implode('%', $search)) . ')';
} }
elseif ($this->match == 1) elseif ($this->match == 1)
{ {
// exact match // 1 = exact match
// For exact phrase, escape and quote the entire phrase and use REGEXP to match it exactly
$search = $case . ' a.text REGEXP ' . $db->quote('[[:<:]]' . $db->escape($this->search, true) . '[[:>:]]'); $search = $case . ' a.text REGEXP ' . $db->quote('[[:<:]]' . $db->escape($this->search, true) . '[[:>:]]');
$conditions[] = '(' . $search . ')'; $conditions[] = '(' . $search . ')';
} }
@ -586,26 +592,17 @@ class GetbibleModelSearch extends ListModel
$this->searchWords = array_map('mb_strtolower', $this->searchWords); $this->searchWords = array_map('mb_strtolower', $this->searchWords);
} }
// If we are looking for an exact match // 1 = exact match
if ($this->match == 1) if ($this->match == 3)
{
if ($this->words == 3)
{
// The search string is considered as one phrase
return $word == $this->search;
}
else
{ {
// The search string is considered as separate words // The search string is considered as separate words
return in_array($word, $this->searchWords); foreach ($this->searchWords as $search_word)
{
if ($word === $search_word)
{
return true;
} }
} }
else
{
if ($this->words == 3)
{
// The search string is considered as one phrase
return mb_strpos($word, $this->search) !== false;
} }
else else
{ {
@ -618,7 +615,6 @@ class GetbibleModelSearch extends ListModel
} }
} }
} }
}
return false; return false;
} }

View File

@ -503,4 +503,22 @@
<maintainerurl>https://getbible.net</maintainerurl> <maintainerurl>https://getbible.net</maintainerurl>
<targetplatform name="joomla" version="3.*"/> <targetplatform name="joomla" version="3.*"/>
</update> </update>
<update>
<name>Get Bible</name>
<description>The Bible for Joomla</description>
<element>pkg_getbible</element>
<type>package</type>
<client>site</client>
<version>2.0.31</version>
<infourl title="Get Bible!">https://getbible.net</infourl>
<downloads>
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/getBible/joomla-pkg/archive/v2.0.31.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://getbible.net</maintainerurl>
<targetplatform name="joomla" version="3.*"/>
</update>
</updates> </updates>