Stable release of v5.0.5

Add option to target MySQL 8+ with the search regex.
This commit is contained in:
Robot 2024-02-19 00:01:37 +02:00
parent 41d1564412
commit 01f3548e69
Signed by: Robot
GPG Key ID: 14DECD44E7E1BB95
61 changed files with 310 additions and 361 deletions

View File

@ -1,3 +1,7 @@
# v5.0.5
- Add option to target MySQL 8+ with the search regex.
# v5.0.4
- Fix the spl_autoload_register function to load all the needed namespace. That was remove in the last update (sorry).
@ -20,10 +24,6 @@
- Moved to Joomla 4 and 5
# v3.0.2
# v3.0.3
- More namespace updates.
# v3.0.1
- Fix missing use statement in app model.
- Add option to target mysql 8+ with the search regex.

View File

@ -439,7 +439,7 @@ class Com_GetbibleInstallerScript implements InstallerScriptInterface
$this->setDatabaseAssetsRulesFix(44480, "TEXT");
// Install the global extension params.
$this->setExtensionsParams(
'{"autorName":"Llewellyn van der Merwe","autorEmail":"joomla@vdm.io","default_translation":"kjv","show_install_button":"0","show_getbible_logo":"1","show_getbible_link":"1","show_hash_validation":"1","show_api_link":"1","activate_search":"0","search_found_color":"#4747ff","table_selection_color":"#dfdfdf","search_words":"1","search_match":"1","search_case":"1","bottom_search_position":"div","show_bottom_search_position_card":"1","bottom_search_position_card_style":"default","activate_notes":"0","activate_tags":"0","allow_untagging":"0","bottom_tag_position":"div","show_bottom_tag_position_card":"1","bottom_tag_position_card_style":"default","activate_sharing":"1","verse_layout_share":"1","verse_number_share":"1","local_link_share":"1","text_reference_share":"3","type_translation_share":"2","default_format_share":"1","verse_selected_color":"#4747ff","show_header":"1","verse_per_line":"1","show_top_menu":"1","top_menu_type":"1","show_bottom_menu":"0","bottom_menu_type":"1","previous_next_navigation":"1","set_custom_tabs":"0","custom_tabs":"div","set_default_tab_names":"0","custom_icons":"0","show_scripture_tab_text":"1","show_scripture_icon":"1","show_scripture_card":"1","scripture_card_style":"default","show_books_tab_text":"1","show_books_icon":"1","show_books_card":"1","books_card_style":"default","show_chapters_tab_text":"1","show_chapters_icon":"1","show_chapters_card":"1","chapters_card_style":"default","show_translations_tab_text":"1","show_translations_icon":"1","show_translations_card":"1","translations_card_style":"default","show_settings":"0","show_settings_tab_text":"1","show_settings_icon":"1","show_settings_card":"1","settings_card_style":"default","show_details":"1","show_details_tab_text":"1","show_details_icon":"1","show_details_card":"1","details_card_style":"default","bottom_app_position":"div","show_bottom_app_position_card":"1","bottom_app_position_card_style":"default","debug":"0","enable_open_ai":"0","openai_model":"gpt-4","openai_token":"secret","enable_open_ai_org":"0","openai_org_token":"secret","openai_max_tokens":"300","openai_temperature":"1","openai_top_p":"1","openai_n":"1","openai_presence_penalty":"0","openai_frequency_penalty":"0","bottom_ai_position":"div","show_bottom_ai_position_card":"1","bottom_ai_position_card_style":"default","check_in":"-1 day","save_history":"1","history_limit":"10","add_jquery_framework":"1","uikit_load":"1","uikit_min":""}'
'{"autorName":"Llewellyn van der Merwe","autorEmail":"joomla@vdm.io","default_translation":"kjv","show_install_button":"0","show_getbible_logo":"1","show_getbible_link":"1","show_hash_validation":"1","show_api_link":"1","activate_search":"0","search_found_color":"#4747ff","table_selection_color":"#dfdfdf","search_words":"1","search_match":"1","search_case":"1","bottom_search_position":"div","show_bottom_search_position_card":"1","bottom_search_position_card_style":"default","activate_notes":"0","activate_tags":"0","allow_untagging":"0","bottom_tag_position":"div","show_bottom_tag_position_card":"1","bottom_tag_position_card_style":"default","activate_sharing":"1","verse_layout_share":"1","verse_number_share":"1","local_link_share":"1","text_reference_share":"3","type_translation_share":"2","default_format_share":"1","verse_selected_color":"#4747ff","show_header":"1","verse_per_line":"1","show_top_menu":"1","top_menu_type":"1","show_bottom_menu":"0","bottom_menu_type":"1","previous_next_navigation":"1","set_custom_tabs":"0","custom_tabs":"div","set_default_tab_names":"0","custom_icons":"0","show_scripture_tab_text":"1","show_scripture_icon":"1","show_scripture_card":"1","scripture_card_style":"default","show_books_tab_text":"1","show_books_icon":"1","show_books_card":"1","books_card_style":"default","show_chapters_tab_text":"1","show_chapters_icon":"1","show_chapters_card":"1","chapters_card_style":"default","show_translations_tab_text":"1","show_translations_icon":"1","show_translations_card":"1","translations_card_style":"default","show_settings":"0","show_settings_tab_text":"1","show_settings_icon":"1","show_settings_card":"1","settings_card_style":"default","show_details":"1","show_details_tab_text":"1","show_details_icon":"1","show_details_card":"1","details_card_style":"default","bottom_app_position":"div","show_bottom_app_position_card":"1","bottom_app_position_card_style":"default","debug":"0","enable_open_ai":"0","openai_model":"gpt-4","openai_token":"secret","enable_open_ai_org":"0","openai_org_token":"secret","openai_max_tokens":"300","openai_temperature":"1","openai_top_p":"1","openai_n":"1","openai_presence_penalty":"0","openai_frequency_penalty":"0","bottom_ai_position":"div","show_bottom_ai_position_card":"1","bottom_ai_position_card_style":"default","check_in":"-1 day","save_history":"1","history_limit":"10","titleContributor1":"Modules","nameContributor1":"CrossWire","emailContributor1":"sword-support@crosswire.org","linkContributor1":"https://wiki.crosswire.org/","useContributor1":"2","showContributor1":"3","add_jquery_framework":"1","uikit_load":"1","uikit_min":""}'
);
@ -755,7 +755,7 @@ class Com_GetbibleInstallerScript implements InstallerScriptInterface
echo '<div style="background-color: #fff;" class="alert alert-info"><a target="_blank" href="https://getbible.net" title="Get Bible">
<img src="components/com_getbible/assets/images/vdm-component.jpg"/>
</a>
<h3>Upgrade to Version 5.0.4 Was Successful! Let us know if anything is not working as expected.</h3></div>';
<h3>Upgrade to Version 5.0.5 Was Successful! Let us know if anything is not working as expected.</h3></div>';
// Add/Update component in the action logs extensions table.
$this->setActionLogsExtensions();

View File

@ -1,4 +1,4 @@
# Get Bible (5.0.4)
# Get Bible (5.0.5)
![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/5.0/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)
+ *Name*: [Get Bible](https://getbible.net)
+ *First Build*: 3rd December, 2015
+ *Last Build*: 10th February, 2024
+ *Version*: 5.0.4
+ *Last Build*: 18th February, 2024
+ *Version*: 5.0.5
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
@ -31,7 +31,7 @@ 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**,
> never making one mistake or taking any coffee break.)
+ *Line count*: **205576**
+ *Line count*: **205513**
+ *File count*: **1723**
+ *Folder count*: **189**

View File

@ -1,4 +1,4 @@
# Get Bible (5.0.4)
# Get Bible (5.0.5)
![Get Bible image](https://git.vdm.dev/getBible/joomla-component/raw/branch/5.0/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)
+ *Name*: [Get Bible](https://getbible.net)
+ *First Build*: 3rd December, 2015
+ *Last Build*: 10th February, 2024
+ *Version*: 5.0.4
+ *Last Build*: 18th February, 2024
+ *Version*: 5.0.5
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
@ -31,7 +31,7 @@ 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**,
> never making one mistake or taking any coffee break.)
+ *Line count*: **205576**
+ *Line count*: **205513**
+ *File count*: **1723**
+ *Folder count*: **189**

View File

@ -174,6 +174,59 @@
readonly="true"
class="readonly"
/>
<field type="spacer" name="spacerContributor1" hr="true" />
<field name="contributor1"
type="spacer"
class="text"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_ONE"
/>
<field name="titleContributor1"
type="text"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_TITLE_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_TITLE_DESC"
size="60"
default="Modules"
/>
<field name="nameContributor1"
type="text"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_NAME_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_NAME_DESC"
size="60"
default="CrossWire"
/>
<field name="emailContributor1"
type="email"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_EMAIL_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_EMAIL_DESC"
size="60"
default="sword-support@crosswire.org"
/>
<field name="linkContributor1"
type="url"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_LINK_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_LINK_DESC"
size="60"
default="https://wiki.crosswire.org/"
/>
<field name="useContributor1"
type="list"
default="2"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_DESC">
<option value="0">COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_NONE</option>
<option value="1">COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_EMAIL</option>
<option value="2">COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_WWW</option>
</field>
<field name="showContributor1"
type="list"
default="3"
label="COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_LABEL"
description="COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_DESC">
<option value="0">COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_NONE</option>
<option value="1">COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_BACK</option>
<option value="2">COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_FRONT</option>
<option value="3">COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_ALL</option>
</field>
</fieldset>
<fieldset
name="uikit_config"

View File

@ -260,6 +260,26 @@ COM_GETBIBLE_CONFIG_CHECK_TIMER_OPTION_TWO="Every twelve hours"
COM_GETBIBLE_CONFIG_CLASS_HINT="Blank for none"
COM_GETBIBLE_CONFIG_CLASS_LABEL="Class"
COM_GETBIBLE_CONFIG_CLASS_MESSAGE="Error! Please add some Class here."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_EMAIL_DESC="The email of this contributor."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_EMAIL_LABEL="Contributor Email"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_LINK_DESC="The link to this contributor's website."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_LINK_LABEL="Contributor Website"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_NAME_DESC="The name of this contributor."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_NAME_LABEL="Contributor Name"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_ONE="Contributor One"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_ALL="Both Front & Back-end"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_BACK="Back-end"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_DESC="Select where you want this contributor's details to show in the component."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_FRONT="Front-end"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_LABEL="Show"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_SHOW_NONE="Hide"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_TITLE_DESC="The job title that best describes the contributor's relationship to this component."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_TITLE_LABEL="Contributor Job Title"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_DESC="How should we link to this contributor."
COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_EMAIL="Email"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_LABEL="Use"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_NONE="None"
COM_GETBIBLE_CONFIG_CONTRIBUTOR_USE_WWW="Website"
COM_GETBIBLE_CONFIG_CUSTOM_ICONS_DESCRIPTION="Use this option to set custom icons found at https://getuikit.com/docs/icon"
COM_GETBIBLE_CONFIG_CUSTOM_ICONS_LABEL="Set Custom Icons"
COM_GETBIBLE_CONFIG_CUSTOM_TABS_LABEL="Custom Tabs"

View File

@ -1,3 +1,6 @@
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
CREATE TABLE IF NOT EXISTS `#__getbible_linker` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`asset_id` INT(10) unsigned NOT NULL DEFAULT 0 COMMENT 'FK to the #__assets table.',
@ -9,10 +12,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_linker` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -43,10 +46,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_note` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`ordering` INT(11) NOT NULL DEFAULT 0,
@ -78,10 +81,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_tagged_verse` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`ordering` INT(11) NOT NULL DEFAULT 0,
@ -132,10 +135,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_prompt` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -184,10 +187,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_open_ai_response` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -230,10 +233,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_open_ai_message` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -261,10 +264,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_password` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -292,10 +295,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_tag` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`ordering` INT(11) NOT NULL DEFAULT 0,
@ -334,10 +337,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_translation` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -362,10 +365,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_book` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -393,10 +396,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_chapter` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,
@ -426,10 +429,10 @@ CREATE TABLE IF NOT EXISTS `#__getbible_verse` (
`published` TINYINT(3) NOT NULL DEFAULT 1,
`created_by` INT(10) unsigned NOT NULL DEFAULT 0,
`modified_by` INT(10) unsigned NOT NULL DEFAULT 0,
`created` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`created` DATETIME DEFAULT CURRENT_TIMESTAMP,
`modified` DATETIME DEFAULT NULL,
`checked_out` int(11) unsigned NOT NULL DEFAULT 0,
`checked_out_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`checked_out_time` DATETIME DEFAULT NULL,
`version` INT(10) unsigned NOT NULL DEFAULT 1,
`hits` INT(10) unsigned NOT NULL DEFAULT 0,
`access` INT(10) unsigned NOT NULL DEFAULT 0,

View File

@ -54,27 +54,32 @@ class AjaxController extends BaseController
$this->app->getDocument()->setMimeEncoding( 'application/json' );
$this->app->setHeader('Content-Disposition','attachment;filename="getajax.json"');
$this->app->setHeader('Access-Control-Allow-Origin', '*');
// load the tasks
// load the tasks
$this->registerTask('isNew', 'ajax');
$this->registerTask('isRead', 'ajax');
$this->registerTask('getWiki', 'ajax');
$this->registerTask('getVersion', 'ajax');
}
/**
* The ajax function
*
* @since 3.10
*/
public function ajax()
{
// get the user for later use
$user = $this->app->getIdentity();
// get the input values
$jinput = $this->input ?? $this->app->input;
$input = $this->input ?? $this->app->input;
// check if we should return raw (DEFAULT TRUE SINCE J4)
$returnRaw = $jinput->get('raw', true, 'BOOLEAN');
$returnRaw = $input->get('raw', true, 'BOOLEAN');
// return to a callback function
$callback = $jinput->get('callback', null, 'CMD');
$callback = $input->get('callback', null, 'CMD');
// Check Token!
$token = Session::getFormToken();
$call_token = $jinput->get('token', 0, 'ALNUM');
if($jinput->get($token, 0, 'ALNUM') || $token === $call_token)
$call_token = $input->get('token', 0, 'ALNUM');
if($input->get($token, 0, 'ALNUM') || $token === $call_token)
{
// get the task
$task = $this->getTask();

View File

@ -61,30 +61,12 @@ class BookController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Books'; // safeguard for setting the return view listing to the main view.
}###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
protected $view_list = 'books';###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class ChapterController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Chapters'; // safeguard for setting the return view listing to the main view.
}###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
protected $view_list = 'chapters';###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class LinkerController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Linkers'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'linkers';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class NoteController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Notes'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'notes';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class Open_ai_messageController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Open_ai_messages'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'open_ai_messages';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class Open_ai_responseController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Open_ai_responses'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'open_ai_responses';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class PasswordController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Passwords'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'passwords';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class PromptController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Prompts'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'prompts';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class TagController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Tags'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'tags';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class Tagged_verseController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Tagged_verses'; // safeguard for setting the return view listing to the main view.
}
protected $view_list = 'tagged_verses';
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class TranslationController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Translations'; // safeguard for setting the return view listing to the main view.
}###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
protected $view_list = 'translations';###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
/**
* Method override to check if you can add a new record.

View File

@ -61,30 +61,12 @@ class VerseController extends FormController
protected $task;
/**
* Constructor.
* The URL view list variable.
*
* @param array $config An optional associative array of configuration settings.
* Recognized key values include 'name', 'default_task',
* 'model_path', and 'view_path' (this list is not meant to be
* comprehensive).
* @param MVCFactoryInterface|null $factory The factory.
* @param CMSApplication|null $app The Application for the dispatcher
* @param Input|null $input Input
* @param FormFactoryInterface|null $formFactory The form factory.
*
* @since 3.0
* @var string
* @since 1.6
*/
public function __construct(
$config = [],
?MVCFactoryInterface $factory = null,
?CMSApplication $app = null,
?Input $input = null,
?FormFactoryInterface $formFactory = null
) {
parent::__construct($config, $factory, $app, $input, $formFactory);
$this->view_list = 'Verses'; // safeguard for setting the return view listing to the main view.
}###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
protected $view_list = 'verses';###ADMIN_CUSTOM_BUTTONS_CONTROLLER###
/**
* Method override to check if you can add a new record.

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -26,6 +26,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -23,6 +23,7 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('book.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'bookTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'bookTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'bookTab', 'details', Text::_('COM_GETBIBLE_BOOK_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('chapter.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'chapterTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'chapterTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'chapterTab', 'details', Text::_('COM_GETBIBLE_CHAPTER_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('linker.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'linkerTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'linkerTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'linkerTab', 'details', Text::_('COM_GETBIBLE_LINKER_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('note.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'noteTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'noteTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'noteTab', 'details', Text::_('COM_GETBIBLE_NOTE_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('open_ai_message.message_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'open_ai_messageTab', array('active' => 'message')); ?>
<?php echo Html::_('uitab.startTabSet', 'open_ai_messageTab', ['active' => 'message', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'open_ai_messageTab', 'message', Text::_('COM_GETBIBLE_OPEN_AI_MESSAGE_MESSAGE', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('open_ai_response.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'open_ai_responseTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'open_ai_responseTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'open_ai_responseTab', 'details', Text::_('COM_GETBIBLE_OPEN_AI_RESPONSE_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('password.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'passwordTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'passwordTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'passwordTab', 'details', Text::_('COM_GETBIBLE_PASSWORD_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('prompt.prompt_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'promptTab', array('active' => 'prompt')); ?>
<?php echo Html::_('uitab.startTabSet', 'promptTab', ['active' => 'prompt', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'promptTab', 'prompt', Text::_('COM_GETBIBLE_PROMPT_PROMPT', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('tag.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'tagTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'tagTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'tagTab', 'details', Text::_('COM_GETBIBLE_TAG_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('tagged_verse.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'tagged_verseTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'tagged_verseTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'tagged_verseTab', 'details', Text::_('COM_GETBIBLE_TAGGED_VERSE_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('translation.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'translationTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'translationTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'translationTab', 'details', Text::_('COM_GETBIBLE_TRANSLATION_DETAILS', true)); ?>
<div class="row">

View File

@ -52,7 +52,7 @@ defined('_JEXEC') or die;
<?php echo LayoutHelper::render('verse.details_above', $this); ?>
<div class="main-card">
<?php echo Html::_('uitab.startTabSet', 'verseTab', array('active' => 'details')); ?>
<?php echo Html::_('uitab.startTabSet', 'verseTab', ['active' => 'details', 'recall' => true]); ?>
<?php echo Html::_('uitab.addTab', 'verseTab', 'details', Text::_('COM_GETBIBLE_VERSE_DETAILS', true)); ?>
<div class="row">

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="4.0" method="upgrade">
<name>COM_GETBIBLE</name>
<creationDate>10th February, 2024</creationDate>
<creationDate>18th February, 2024</creationDate>
<author>Llewellyn van der Merwe</author>
<authorEmail>joomla@vdm.io</authorEmail>
<authorUrl>https://getbible.net</authorUrl>
<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>
<version>5.0.4</version>
<version>5.0.5</version>
<description><![CDATA[
<h1>Get Bible (v.5.0.4)</h1>
<h1>Get Bible (v.5.0.5)</h1>
<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.

View File

@ -30,6 +30,7 @@ use Joomla\Input\Input;
use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Helper\TagsHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use VDM\Joomla\GetBible\Factory as GetBibleFactory;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\StringHelper;

View File

@ -30,6 +30,7 @@ use Joomla\Input\Input;
use Joomla\Utilities\ArrayHelper;
use Joomla\CMS\Helper\TagsHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\GuidHelper;
use VDM\Joomla\GetBible\Openai;

View File

@ -23,11 +23,13 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;
use Joomla\CMS\Helper\TagsHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\ArrayHelper as UtilitiesArrayHelper;
use VDM\Joomla\Utilities\StringHelper;
@ -448,6 +450,14 @@ class SearchModel extends ListModel
$conditions = [];
$case = $this->case == 2 ? 'BINARY' : ' ';
// Determine the database type and version
$db_type = $this->getDatabaseType($db); // Implement this method based on your environment
$use_modern_regex = $db_type === 'mysql' && $this->isModernMySQL($db); // Implement isModernMySQL to detect MySQL 8+
// Adjust REGEXP syntax based on the database type and version
$word_boundary_start = $use_modern_regex ? '\\b' : '[[:<:]]';
$word_boundary_end = $use_modern_regex ? '\\b' : '[[:>:]]';
// 2 = ANY WORDS
if($this->words == 2)
{
@ -487,11 +497,12 @@ class SearchModel extends ListModel
{
if ($i == 0)
{
$condition .= $db->quote('[[:<:]]' . $db->escape($word, true). '[[:>:]]');
$condition .= $db->quote($word_boundary_start . $db->escape($word, true). $word_boundary_end);
}
else
{
$condition .= ' OR ' . $case . ' a.text REGEXP '. $db->quote('[[:<:]]' . $db->escape($word, true) . '[[:>:]]');
$condition .= ' OR ' . $case . ' a.text REGEXP '.
$db->quote($word_boundary_start . $db->escape($word, true) . $word_boundary_end);
}
$i++;
}
@ -521,7 +532,8 @@ class SearchModel extends ListModel
{
// 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($word_boundary_start . $db->escape($this->search, true) . $word_boundary_end);
$conditions[] = '(' . $search . ')';
}
}
@ -549,7 +561,8 @@ class SearchModel extends ListModel
{
if ($this->hasLength($word))
{
$search = $case . ' a.text REGEXP '. $db->quote('[[:<:]]' . $db->escape($word, true) . '[[:>:]]');
$search = $case . ' a.text REGEXP '.
$db->quote($word_boundary_start . $db->escape($word, true) . $word_boundary_end);
$conditions[] = '( ' . $search . ')';
}
}
@ -713,5 +726,51 @@ class SearchModel extends ListModel
protected function hasLength(string $word): bool
{
return GetBibleFactory::_('GetBible.Utilities.String')->hasLength($word);
}
/**
* Determines whether the database is MySQL or MariaDB.
*
* This function executes a query to fetch the version comment from the database.
* MariaDB includes its name in the version comment, allowing us to distinguish between MySQL and MariaDB.
*
* @param \JDatabaseDriver $db The database driver object from Joomla.
*
* @return string Returns 'mysql' for MySQL, 'mariadb' for MariaDB, or 'unknown' for other or undetectable types.
*/
protected function getDatabaseType($db): string
{
try {
// Attempt to get the version comment from the database
$versionComment = $db->setQuery("SELECT VERSION()")->loadResult();
if (strpos(strtolower($versionComment), 'mariadb') !== false) {
return 'mariadb';
} else {
return 'mysql'; // Assuming MySQL if MariaDB is not detected
}
} catch (\Exception $e) {
// Handle exceptions or fallback for other databases
return 'unknown';
}
}
/**
* Checks if the MySQL version is 8.0 or higher.
*
* This function queries the database version directly and compares it against 8.0
* to determine if modern MySQL features, such as enhanced regular expression syntax, can be used.
* It's specifically designed for MySQL and does not apply to MariaDB or other databases.
*
* @param \JDatabaseDriver $db The database driver object.
*
* @return bool Returns true if the MySQL version is 8.0 or higher, false otherwise.
*/
protected function isModernMySQL($db): bool
{
// Query the database for its version
$version = $db->getVersion();
// Compare the version to determine if it's modern MySQL
return version_compare($version, '8.0', '>=');
}
}

View File

@ -23,11 +23,13 @@ use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\MVC\Model\ListModel;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
use Joomla\CMS\Plugin\PluginHelper;
use Joomla\CMS\Router\Route;
use Joomla\CMS\User\User;
use Joomla\Utilities\ArrayHelper;
use Joomla\Input\Input;
use Joomla\CMS\Helper\TagsHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\Component\Helper;
use VDM\Joomla\Utilities\GuidHelper;

View File

@ -28,6 +28,7 @@ use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Document\Document;
use TrueChristianChurch\Component\Getbible\Site\Helper\HeaderCheck;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;

View File

@ -28,6 +28,7 @@ use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Document\Document;
use TrueChristianChurch\Component\Getbible\Site\Helper\HeaderCheck;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri;

View File

@ -28,6 +28,7 @@ use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Document\Document;
use TrueChristianChurch\Component\Getbible\Site\Helper\HeaderCheck;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Router\Router;
use Joomla\CMS\Router\Route;

View File

@ -28,6 +28,7 @@ use Joomla\CMS\Toolbar\ToolbarHelper;
use Joomla\CMS\Document\Document;
use TrueChristianChurch\Component\Getbible\Site\Helper\HeaderCheck;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
use TrueChristianChurch\Component\Getbible\Site\Helper\RouteHelper;
use Joomla\CMS\Session\Session;
use Joomla\CMS\Router\Router;
use Joomla\CMS\Router\Route;

View File

@ -18,6 +18,7 @@
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\HTML\HTMLHelper as Html;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
// No direct access to this file

View File

@ -18,6 +18,7 @@
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\HTML\HTMLHelper as Html;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
// No direct access to this file

View File

@ -18,6 +18,7 @@
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\HTML\HTMLHelper as Html;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
// No direct access to this file

View File

@ -18,6 +18,7 @@
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Router\Route;
use Joomla\CMS\HTML\HTMLHelper as Html;
use TrueChristianChurch\Component\Getbible\Site\Helper\GetbibleHelper;
// No direct access to this file

View File

@ -5,28 +5,10 @@
<element>pkg_getbible</element>
<type>package</type>
<client>site</client>
<version>3.0.1</version>
<version>3.0.3</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/v3.0.1.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>
<update>
<name>Get Bible</name>
<description>The Bible for Joomla</description>
<element>pkg_getbible</element>
<type>package</type>
<client>site</client>
<version>3.0.2</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/v3.0.2.zip</downloadurl>
<downloadurl type="full" format="zip">https://git.vdm.dev/api/v1/repos/getBible/joomla-pkg/archive/v3.0.3.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
@ -125,4 +107,22 @@
<maintainerurl>https://getbible.net</maintainerurl>
<targetplatform name="joomla" version="4\.[01234]|5\.0"/>
</update>
<update>
<name>Get Bible</name>
<description>The Bible for Joomla</description>
<element>pkg_getbible</element>
<type>package</type>
<client>site</client>
<version>5.0.5</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/v5.0.5.zip</downloadurl>
</downloads>
<tags>
<tag>stable</tag>
</tags>
<maintainer>Llewellyn van der Merwe</maintainer>
<maintainerurl>https://getbible.net</maintainerurl>
<targetplatform name="joomla" version="4\.[01234]|5\.0"/>
</update>
</updates>