diff --git a/CHANGELOG.md b/CHANGELOG.md
index ac12bf22..e0da19f2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+# v3.0.4
+
+- Add the getDocument method call to view
+- Add recall tab memory to view tabs
+- Add root class calls like \JRoute
+
# v3.0.3
- Removed the not_required field from the sermon model. #36
diff --git a/README.md b/README.md
index 9344c167..6138d3ce 100644
--- a/README.md
+++ b/README.md
@@ -24,38 +24,38 @@ The best way to see all your options is to install this component on you Joomla
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Sermon Distributor](https://www.vdm.io/)
+ *First Build*: 22nd October, 2015
-+ *Last Build*: 11th February, 2024
++ *Last Build*: 7th March, 2024
+ *Version*: 3.0.x
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
## Build Time :hourglass:
-**243 Hours** or **30 Eight Hour Days** (actual time the author saved -
+**237 Hours** or **30 Eight Hour Days** (actual time the author saved -
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*: **87039**
-+ *File count*: **595**
-+ *Folder count*: **113**
++ *Line count*: **84910**
++ *File count*: **572**
++ *Folder count*: **101**
-**160 Hours** or **20 Eight Hour Days** (the actual time the author spent)
+**156 Hours** or **19 Eight Hour Days** (the actual time the author spent)
> (with the following break down:
-> **debugging @61hours** = codingtime / 4;
-> **planning @35hours** = codingtime / 7;
+> **debugging @59hours** = codingtime / 4;
+> **planning @34hours** = codingtime / 7;
> **mapping @24hours** = codingtime / 10;
-> **office @40hours** = codingtime / 6;)
+> **office @39hours** = codingtime / 6;)
-**403 Hours** or **50 Eight Hour Days**
+**393 Hours** or **49 Eight Hour Days**
(a total of the realistic time frame for this project)
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
-Project duration: **10 weeks** or **2.1 months**
+Project duration: **9.8 weeks** or **2 months**
> This **component** was build with a Joomla [Automated Component Builder](https://www.joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
\ No newline at end of file
diff --git a/admin/README.txt b/admin/README.txt
index 9344c167..6138d3ce 100644
--- a/admin/README.txt
+++ b/admin/README.txt
@@ -24,38 +24,38 @@ The best way to see all your options is to install this component on you Joomla
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Sermon Distributor](https://www.vdm.io/)
+ *First Build*: 22nd October, 2015
-+ *Last Build*: 11th February, 2024
++ *Last Build*: 7th March, 2024
+ *Version*: 3.0.x
+ *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
## Build Time :hourglass:
-**243 Hours** or **30 Eight Hour Days** (actual time the author saved -
+**237 Hours** or **30 Eight Hour Days** (actual time the author saved -
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*: **87039**
-+ *File count*: **595**
-+ *Folder count*: **113**
++ *Line count*: **84910**
++ *File count*: **572**
++ *Folder count*: **101**
-**160 Hours** or **20 Eight Hour Days** (the actual time the author spent)
+**156 Hours** or **19 Eight Hour Days** (the actual time the author spent)
> (with the following break down:
-> **debugging @61hours** = codingtime / 4;
-> **planning @35hours** = codingtime / 7;
+> **debugging @59hours** = codingtime / 4;
+> **planning @34hours** = codingtime / 7;
> **mapping @24hours** = codingtime / 10;
-> **office @40hours** = codingtime / 6;)
+> **office @39hours** = codingtime / 6;)
-**403 Hours** or **50 Eight Hour Days**
+**393 Hours** or **49 Eight Hour Days**
(a total of the realistic time frame for this project)
> (if creating a folder and file took **5 seconds** and writing one line of code took **10 seconds**,
> with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)
-Project duration: **10 weeks** or **2.1 months**
+Project duration: **9.8 weeks** or **2 months**
> This **component** was build with a Joomla [Automated Component Builder](https://www.joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
\ No newline at end of file
diff --git a/admin/helpers/sermondistributor.php b/admin/helpers/sermondistributor.php
index 67506b77..015b6ead 100644
--- a/admin/helpers/sermondistributor.php
+++ b/admin/helpers/sermondistributor.php
@@ -209,7 +209,7 @@ abstract class SermondistributorHelper
}
$keyCounterRAW = $safe->encryptString(json_encode($keyCounter));
$keyCounter = self::base64_urlencode($keyCounterRAW);
- $token = JSession::getFormToken();
+ $token = \JSession::getFormToken();
$downloadURL = Uri::root().'index.php?option=com_sermondistributor&task=download.file&key='.$keyCounter.'&token='.$token;
// check if local .htaccess should be set
$setHtaccess = false;
@@ -219,7 +219,7 @@ abstract class SermondistributorHelper
{
case 1:
// local file get local folder and check if outside root (if not then allow direct)
- $localFolder = JComponentHelper::getParams('com_sermondistributor')->get('localfolder', JPATH_ROOT.'/images').'/';
+ $localFolder = \JComponentHelper::getParams('com_sermondistributor')->get('localfolder', JPATH_ROOT.'/images').'/';
// should we allow direct downloads
$allowDirect = false;
if (2 == $sermon->link_type && strpos($localFolder, JPATH_ROOT) !== false)
@@ -257,7 +257,7 @@ abstract class SermondistributorHelper
break;
case 2:
// Dropbox get global dropbox switch
- $addToButton = JComponentHelper::getParams('com_sermondistributor')->get('add_to_button', 0);
+ $addToButton = \JComponentHelper::getParams('com_sermondistributor')->get('add_to_button', 0);
if (1 == $sermon->build)
{
if (self::checkArray($sermon->manual_files))
@@ -777,7 +777,7 @@ abstract class SermondistributorHelper
if (!isset(self::$localkey[$type]))
{
// get the main key
- self::$localkey[$type] = JComponentHelper::getParams('com_sermondistributor')->get($type, 'localKey34fdWEkl');
+ self::$localkey[$type] = \JComponentHelper::getParams('com_sermondistributor')->get($type, 'localKey34fdWEkl');
}
return self::$localkey[$type];
}
@@ -1928,40 +1928,40 @@ abstract class SermondistributorHelper
// load user for access menus
$user = Factory::getUser();
// load the submenus to sidebar
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_DASHBOARD'), 'index.php?option=com_sermondistributor&view=sermondistributor', $submenu === 'sermondistributor');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_DASHBOARD'), 'index.php?option=com_sermondistributor&view=sermondistributor', $submenu === 'sermondistributor');
if ($user->authorise('preacher.access', 'com_sermondistributor') && $user->authorise('preacher.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_PREACHERS'), 'index.php?option=com_sermondistributor&view=preachers', $submenu === 'preachers');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_PREACHERS'), 'index.php?option=com_sermondistributor&view=preachers', $submenu === 'preachers');
}
if ($user->authorise('sermon.access', 'com_sermondistributor') && $user->authorise('sermon.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_SERMONS'), 'index.php?option=com_sermondistributor&view=sermons', $submenu === 'sermons');
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SERMON_SERMONS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_sermondistributor.sermon', $submenu === 'categories.sermon');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_SERMONS'), 'index.php?option=com_sermondistributor&view=sermons', $submenu === 'sermons');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SERMON_SERMONS_CATEGORIES'), 'index.php?option=com_categories&view=categories&extension=com_sermondistributor.sermon', $submenu === 'categories.sermon');
}
if ($user->authorise('series.access', 'com_sermondistributor') && $user->authorise('series.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_SERIES_LIST'), 'index.php?option=com_sermondistributor&view=series_list', $submenu === 'series_list');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_SERIES_LIST'), 'index.php?option=com_sermondistributor&view=series_list', $submenu === 'series_list');
}
if ($user->authorise('statistic.access', 'com_sermondistributor') && $user->authorise('statistic.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_STATISTICS'), 'index.php?option=com_sermondistributor&view=statistics', $submenu === 'statistics');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_STATISTICS'), 'index.php?option=com_sermondistributor&view=statistics', $submenu === 'statistics');
}
if ($user->authorise('external_source.access', 'com_sermondistributor') && $user->authorise('external_source.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_EXTERNAL_SOURCES'), 'index.php?option=com_sermondistributor&view=external_sources', $submenu === 'external_sources');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_EXTERNAL_SOURCES'), 'index.php?option=com_sermondistributor&view=external_sources', $submenu === 'external_sources');
}
// Access control (manual_updater.access && manual_updater.submenu).
if ($user->authorise('manual_updater.access', 'com_sermondistributor') && $user->authorise('manual_updater.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_MANUAL_UPDATER'), 'index.php?option=com_sermondistributor&view=manual_updater', $submenu === 'manual_updater');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_MANUAL_UPDATER'), 'index.php?option=com_sermondistributor&view=manual_updater', $submenu === 'manual_updater');
}
if ($user->authorise('local_listing.access', 'com_sermondistributor') && $user->authorise('local_listing.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_LOCAL_LISTINGS'), 'index.php?option=com_sermondistributor&view=local_listings', $submenu === 'local_listings');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_LOCAL_LISTINGS'), 'index.php?option=com_sermondistributor&view=local_listings', $submenu === 'local_listings');
}
if ($user->authorise('help_document.access', 'com_sermondistributor') && $user->authorise('help_document.submenu', 'com_sermondistributor'))
{
- JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_HELP_DOCUMENTS'), 'index.php?option=com_sermondistributor&view=help_documents', $submenu === 'help_documents');
+ \JHtmlSidebar::addEntry(Text::_('COM_SERMONDISTRIBUTOR_SUBMENU_HELP_DOCUMENTS'), 'index.php?option=com_sermondistributor&view=help_documents', $submenu === 'help_documents');
}
}
diff --git a/admin/models/ajax.php b/admin/models/ajax.php
index e35101d4..3d2ac833 100644
--- a/admin/models/ajax.php
+++ b/admin/models/ajax.php
@@ -245,11 +245,11 @@ class SermondistributorModelAjax extends ListModel
$result['error'] = '' . Text::sprintf('COM_SERMONDISTRIBUTOR_NO_CRONJOB_PATH_FOUND_FOR_S', $type) . '';
if ($this->hasCurl())
{
- $path = '*/15 * * * * curl -s "' .JURI::root() . 'index.php?option=com_sermondistributor&task=api.externalUpdate" >/dev/null 2>&1';
+ $path = '*/15 * * * * curl -s "' .\JUri::root() . 'index.php?option=com_sermondistributor&task=api.externalUpdate" >/dev/null 2>&1';
}
else
{
- $path = '*/15 * * * * wget "' .JURI::root() . 'index.php?option=com_sermondistributor&task=api.externalUpdate" >/dev/null 2>&1';
+ $path = '*/15 * * * * wget "' .\JUri::root() . 'index.php?option=com_sermondistributor&task=api.externalUpdate" >/dev/null 2>&1';
}
$result['path'] = '' . $path . '
';
}
diff --git a/admin/sql/updates/mysql/3.0.3.sql b/admin/sql/updates/mysql/3.0.3.sql
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/admin/sql/updates/mysql/3.0.3.sql
@@ -0,0 +1 @@
+
diff --git a/admin/views/external_source/tmpl/edit.php b/admin/views/external_source/tmpl/edit.php
index df06e006..aaa8ece8 100644
--- a/admin/views/external_source/tmpl/edit.php
+++ b/admin/views/external_source/tmpl/edit.php
@@ -55,10 +55,10 @@ $componentParams = $this->params; // will be removed just use $this->params inst