diff --git a/README.md b/README.md index bcc52dc7..e419cbe0 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ 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*: 30th November, 2020 ++ *Last Build*: 3rd December, 2020 + *Version*: 2.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 @@ -36,11 +36,11 @@ due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder > (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*: **72694** ++ *Line count*: **72786** + *File count*: **459** + *Folder count*: **93** -**133 Hours** or **17 Eight Hour Days** (the actual time the author spent) +**134 Hours** or **17 Eight Hour Days** (the actual time the author spent) > (with the following break down: > **debugging @51hours** = codingtime / 4; @@ -48,7 +48,7 @@ due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder > **mapping @20hours** = codingtime / 10; > **office @34hours** = codingtime / 6;) -**336 Hours** or **42 Eight Hour Days** +**337 Hours** or **42 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**, diff --git a/admin/README.txt b/admin/README.txt index bcc52dc7..e419cbe0 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -23,7 +23,7 @@ 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*: 30th November, 2020 ++ *Last Build*: 3rd December, 2020 + *Version*: 2.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 @@ -36,11 +36,11 @@ due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder > (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*: **72694** ++ *Line count*: **72786** + *File count*: **459** + *Folder count*: **93** -**133 Hours** or **17 Eight Hour Days** (the actual time the author spent) +**134 Hours** or **17 Eight Hour Days** (the actual time the author spent) > (with the following break down: > **debugging @51hours** = codingtime / 4; @@ -48,7 +48,7 @@ due to [Automated Component Builder](https://www.vdm.io/joomla-component-builder > **mapping @20hours** = codingtime / 10; > **office @34hours** = codingtime / 6;) -**336 Hours** or **42 Eight Hour Days** +**337 Hours** or **42 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**, diff --git a/admin/controllers/external_sources.php b/admin/controllers/external_sources.php index 24adbbdc..cfa27022 100644 --- a/admin/controllers/external_sources.php +++ b/admin/controllers/external_sources.php @@ -68,7 +68,7 @@ class SermondistributorControllerExternal_sources extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('External_sources'); // get the data to export diff --git a/admin/controllers/help_documents.php b/admin/controllers/help_documents.php index 89b5a9b5..bedd4f09 100644 --- a/admin/controllers/help_documents.php +++ b/admin/controllers/help_documents.php @@ -68,7 +68,7 @@ class SermondistributorControllerHelp_documents extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Help_documents'); // get the data to export diff --git a/admin/controllers/local_listings.php b/admin/controllers/local_listings.php index 39b4a98d..d23e7fca 100644 --- a/admin/controllers/local_listings.php +++ b/admin/controllers/local_listings.php @@ -68,7 +68,7 @@ class SermondistributorControllerLocal_listings extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Local_listings'); // get the data to export diff --git a/admin/controllers/preachers.php b/admin/controllers/preachers.php index dd5ee0f2..ca5371b1 100644 --- a/admin/controllers/preachers.php +++ b/admin/controllers/preachers.php @@ -68,7 +68,7 @@ class SermondistributorControllerPreachers extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Preachers'); // get the data to export diff --git a/admin/controllers/series_list.php b/admin/controllers/series_list.php index 6addf6a5..531f3b81 100644 --- a/admin/controllers/series_list.php +++ b/admin/controllers/series_list.php @@ -68,7 +68,7 @@ class SermondistributorControllerSeries_list extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Series_list'); // get the data to export diff --git a/admin/controllers/sermons.php b/admin/controllers/sermons.php index 0662f573..ce87609b 100644 --- a/admin/controllers/sermons.php +++ b/admin/controllers/sermons.php @@ -68,7 +68,7 @@ class SermondistributorControllerSermons extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Sermons'); // get the data to export diff --git a/admin/controllers/statistics.php b/admin/controllers/statistics.php index b02eb371..6707b156 100644 --- a/admin/controllers/statistics.php +++ b/admin/controllers/statistics.php @@ -68,7 +68,7 @@ class SermondistributorControllerStatistics extends JControllerAdmin $input = JFactory::getApplication()->input; $pks = $input->post->get('cid', array(), 'array'); // Sanitize the input - ArrayHelper::toInteger($pks); + $pks = ArrayHelper::toInteger($pks); // Get the model $model = $this->getModel('Statistics'); // get the data to export diff --git a/admin/language/en-GB/en-GB.com_sermondistributor.ini b/admin/language/en-GB/en-GB.com_sermondistributor.ini index 6ded0fa0..078407dc 100644 --- a/admin/language/en-GB/en-GB.com_sermondistributor.ini +++ b/admin/language/en-GB/en-GB.com_sermondistributor.ini @@ -699,6 +699,7 @@ COM_SERMONDISTRIBUTOR_FILTER_SEARCH_PREACHERS="Search the preacher items. Prefix COM_SERMONDISTRIBUTOR_FILTER_SEARCH_SERIES_LIST="Search the series items. Prefix with ID: to search for an item by ID." COM_SERMONDISTRIBUTOR_FILTER_SEARCH_SERMONS="Search the sermon items. Prefix with ID: to search for an item by ID." COM_SERMONDISTRIBUTOR_FILTER_SEARCH_STATISTICS="Search the statistic items. Prefix with ID: to search for an item by ID." +COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS="Select Access" COM_SERMONDISTRIBUTOR_FILTER_SELECT_ADMIN_VIEW="Select Admin View" COM_SERMONDISTRIBUTOR_FILTER_SELECT_BUILD="Select Build" COM_SERMONDISTRIBUTOR_FILTER_SELECT_EXTERNALSOURCES="Select Externalsources" diff --git a/admin/models/forms/filter_help_documents.xml b/admin/models/forms/filter_help_documents.xml index 15eb584c..fe3bbed8 100644 --- a/admin/models/forms/filter_help_documents.xml +++ b/admin/models/forms/filter_help_documents.xml @@ -24,8 +24,8 @@ select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) @@ -507,6 +516,7 @@ class SermondistributorModelHelp_documents extends JModelList $id .= ':' . $this->getState('filter.id'); $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); diff --git a/admin/models/preacher.php b/admin/models/preacher.php index 940f1170..9ea93550 100644 --- a/admin/models/preacher.php +++ b/admin/models/preacher.php @@ -179,9 +179,17 @@ class SermondistributorModelPreacher extends JModelAdmin $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) diff --git a/admin/models/preachers.php b/admin/models/preachers.php index 89082dde..7c2c9623 100644 --- a/admin/models/preachers.php +++ b/admin/models/preachers.php @@ -39,6 +39,7 @@ class SermondistributorModelPreachers extends JModelList $config['filter_fields'] = array( 'a.id','id', 'a.published','published', + 'a.access','access', 'a.ordering','ordering', 'a.created_by','created_by', 'a.modified_by','modified_by', @@ -182,9 +183,17 @@ class SermondistributorModelPreachers extends JModelList $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) @@ -353,6 +362,7 @@ class SermondistributorModelPreachers extends JModelList $id .= ':' . $this->getState('filter.id'); $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); diff --git a/admin/models/series.php b/admin/models/series.php index 4c4f3c78..10330101 100644 --- a/admin/models/series.php +++ b/admin/models/series.php @@ -178,9 +178,17 @@ class SermondistributorModelSeries extends JModelAdmin $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) diff --git a/admin/models/series_list.php b/admin/models/series_list.php index 0a8fe5b0..db492778 100644 --- a/admin/models/series_list.php +++ b/admin/models/series_list.php @@ -39,6 +39,7 @@ class SermondistributorModelSeries_list extends JModelList $config['filter_fields'] = array( 'a.id','id', 'a.published','published', + 'a.access','access', 'a.ordering','ordering', 'a.created_by','created_by', 'a.modified_by','modified_by', @@ -174,9 +175,17 @@ class SermondistributorModelSeries_list extends JModelList $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) @@ -345,6 +354,7 @@ class SermondistributorModelSeries_list extends JModelList $id .= ':' . $this->getState('filter.id'); $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); diff --git a/admin/models/sermon.php b/admin/models/sermon.php index e1773306..d95ff085 100644 --- a/admin/models/sermon.php +++ b/admin/models/sermon.php @@ -215,9 +215,17 @@ class SermondistributorModelSermon extends JModelAdmin $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) diff --git a/admin/models/sermons.php b/admin/models/sermons.php index c6f37972..b09bc844 100644 --- a/admin/models/sermons.php +++ b/admin/models/sermons.php @@ -39,6 +39,7 @@ class SermondistributorModelSermons extends JModelList $config['filter_fields'] = array( 'a.id','id', 'a.published','published', + 'a.access','access', 'a.ordering','ordering', 'a.created_by','created_by', 'a.modified_by','modified_by', @@ -291,9 +292,17 @@ class SermondistributorModelSermons extends JModelList $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) @@ -447,7 +456,7 @@ class SermondistributorModelSermons extends JModelList } elseif (is_array($categoryId)) { - ArrayHelper::toInteger($categoryId); + $categoryId = ArrayHelper::toInteger($categoryId); $categoryId = implode(',', $categoryId); $query->where('a.catid IN (' . $categoryId . ')'); } @@ -598,6 +607,7 @@ class SermondistributorModelSermons extends JModelList $id .= ':' . $this->getState('filter.id'); $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); diff --git a/admin/models/statistics.php b/admin/models/statistics.php index 76229c3e..a45f6fc7 100644 --- a/admin/models/statistics.php +++ b/admin/models/statistics.php @@ -39,6 +39,7 @@ class SermondistributorModelStatistics extends JModelList $config['filter_fields'] = array( 'a.id','id', 'a.published','published', + 'a.access','access', 'a.ordering','ordering', 'a.created_by','created_by', 'a.modified_by','modified_by', @@ -218,9 +219,17 @@ class SermondistributorModelStatistics extends JModelList $query->select('ag.title AS access_level'); $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Filter by access level. - if ($access = $this->getState('filter.access')) + $_access = $this->getState('filter.access'); + if ($_access && is_numeric($_access)) { - $query->where('a.access = ' . (int) $access); + $query->where('a.access = ' . (int) $_access); + } + elseif (SermondistributorHelper::checkArray($_access)) + { + // Secure the array for the query + $_access = ArrayHelper::toInteger($_access); + // Filter by the Access Array. + $query->where('a.access IN (' . implode(',', $_access) . ')'); } // Implement View Level Access if (!$user->authorise('core.options', 'com_sermondistributor')) @@ -440,6 +449,7 @@ class SermondistributorModelStatistics extends JModelList $id .= ':' . $this->getState('filter.id'); $id .= ':' . $this->getState('filter.search'); $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.access'); $id .= ':' . $this->getState('filter.ordering'); $id .= ':' . $this->getState('filter.created_by'); $id .= ':' . $this->getState('filter.modified_by'); diff --git a/admin/sql/uninstall.mysql.utf8.sql b/admin/sql/uninstall.mysql.utf8.sql index 80615850..825f072d 100644 --- a/admin/sql/uninstall.mysql.utf8.sql +++ b/admin/sql/uninstall.mysql.utf8.sql @@ -5,3 +5,14 @@ DROP TABLE IF EXISTS `#__sermondistributor_statistic`; DROP TABLE IF EXISTS `#__sermondistributor_external_source`; DROP TABLE IF EXISTS `#__sermondistributor_local_listing`; DROP TABLE IF EXISTS `#__sermondistributor_help_document`; + + +-- +-- Always insure this column rules is reversed to Joomla defaults on uninstall. (as on 1st Dec 2020) +-- +ALTER TABLE `#__assets` CHANGE `rules` `rules` varchar(5120) NOT NULL COMMENT 'JSON encoded access control.'; + +-- +-- Always insure this column name is reversed to Joomla defaults on uninstall. (as on 1st Dec 2020). +-- +ALTER TABLE `#__assets` CHANGE `name` `name` VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.'; diff --git a/admin/views/help_documents/tmpl/default.php b/admin/views/help_documents/tmpl/default.php index 77f9f436..a0f103c2 100644 --- a/admin/views/help_documents/tmpl/default.php +++ b/admin/views/help_documents/tmpl/default.php @@ -28,6 +28,7 @@ defined('_JEXEC') or die('Restricted access'); JHtml::_('behavior.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS') . ' -')); JHtml::_('formbehavior.chosen', 'select'); if ($this->saveOrder) { diff --git a/admin/views/preachers/tmpl/default.php b/admin/views/preachers/tmpl/default.php index 3b8b3992..3b6e5df3 100644 --- a/admin/views/preachers/tmpl/default.php +++ b/admin/views/preachers/tmpl/default.php @@ -28,6 +28,7 @@ defined('_JEXEC') or die('Restricted access'); JHtml::_('behavior.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS') . ' -')); JHtml::_('formbehavior.chosen', 'select'); if ($this->saveOrder) { diff --git a/admin/views/series_list/tmpl/default.php b/admin/views/series_list/tmpl/default.php index 4687e48e..e9cd22b4 100644 --- a/admin/views/series_list/tmpl/default.php +++ b/admin/views/series_list/tmpl/default.php @@ -28,6 +28,7 @@ defined('_JEXEC') or die('Restricted access'); JHtml::_('behavior.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS') . ' -')); JHtml::_('formbehavior.chosen', 'select'); if ($this->saveOrder) { diff --git a/admin/views/sermons/tmpl/default.php b/admin/views/sermons/tmpl/default.php index 3ed9ef17..d45fffee 100644 --- a/admin/views/sermons/tmpl/default.php +++ b/admin/views/sermons/tmpl/default.php @@ -30,6 +30,8 @@ JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); JHtml::_('formbehavior.chosen', '.multiplePreachers', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_PREACHER') . ' -')); JHtml::_('formbehavior.chosen', '.multipleSeries', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_SERIES') . ' -')); +JHtml::_('formbehavior.chosen', '.multipleCategories', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_SERMONS_CATEGORIES') . ' -')); +JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS') . ' -')); JHtml::_('formbehavior.chosen', 'select'); if ($this->saveOrder) { diff --git a/admin/views/statistics/tmpl/default.php b/admin/views/statistics/tmpl/default.php index ed13d342..d10004da 100644 --- a/admin/views/statistics/tmpl/default.php +++ b/admin/views/statistics/tmpl/default.php @@ -28,6 +28,7 @@ defined('_JEXEC') or die('Restricted access'); JHtml::_('behavior.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => '- ' . JText::_('COM_SERMONDISTRIBUTOR_FILTER_SELECT_ACCESS') . ' -')); JHtml::_('formbehavior.chosen', 'select'); if ($this->saveOrder) { diff --git a/sermondistributor.xml b/sermondistributor.xml index 61a64a94..5809447b 100644 --- a/sermondistributor.xml +++ b/sermondistributor.xml @@ -1,7 +1,7 @@ COM_SERMONDISTRIBUTOR - 30th November, 2020 + 3rd December, 2020 Llewellyn van der Merwe joomla@vdm.io https://www.vdm.io/