Joomla! 3.9.14

-----BEGIN PGP SIGNATURE-----
 
 iQHIBAABCgAyFiEEc8tLlhrb4aveTfJiRzuTXEnqGwgFAl34mZsUHGxlaXRobmVy
 QGl0cm9uaWMuYXQACgkQRzuTXEnqGwhOYAv+PgzapMJWw6Hic32RIfVrgQtbl4ac
 gybmYhBLFeSd4qrc1Ya8+Fsx79U1RR1elkrZGB1Rm5/vGvHqgFI9JzmpbK8wGTWF
 yU46g9rDM++2M08qQQxg8a2vx9VoN5yvccPi7oKEpU4gzRcEsPr9ih406dtPlSBZ
 w38jmD8J/DF0TcOuWS0dZjEF8NtbxGFGS6x9Wc4ZyYoPvfsqpjYXKnc70ExifSgc
 373B+vCkyhvHaW+aA4nZ50WuZHd3Rasf4VNB8JVz8hXMnnJf2zwthWaJtWiwjLeS
 u6x59xbsibQqZImlqdooSbIKROY3ZjVgNPCrYk4Iolm6MD8khIm4rvOmGP1Nrrr8
 fZrBuN42ynv5tLutuSwSJSPXvX+RGjgPSeLSGM8FXujtCoxNJrbP3qo7EdkIofAD
 BPwwRDUiorRFwT4JfMqyBHSrM4BUqOlFN+9wi7oVM/405LfmTx3K0zfh2YCPvRXt
 IybdpfYAld7RQb6KWONf42Q/+mEVE5/wJhRe
 =KyXf
 -----END PGP SIGNATURE-----

Merge tag '3.9.14' into 4.0-dev

Joomla! 3.9.14
This commit is contained in:
George Wilson 2020-03-04 18:50:06 +00:00
commit 032ea5d32d
86 changed files with 215 additions and 85 deletions

View File

@ -32,7 +32,7 @@ People on every project come and go, and Joomla is no different. When you leave
Check your e-mails regularly and answer them promptly—even if it's "I'll get back to you."
## Be Honest
Sometimes the hardest thing to say is "no" or admit you've forgotten do something. Be honest with each other and yourself with regards to what you say and what you can realistically commit to.
Sometimes the hardest thing to say is "no" or admit you've forgotten to do something. Be honest with each other and yourself with regards to what you say and what you can realistically commit to.
## Follow the Rules
Volunteers are expected to uphold Joomla's licensing and trademark requirements including, but not limited to, compliance on their own or affiliate websites and extensions. Make sure you have sought the appropriate approvals for domain name, name and logo usage prior to volunteering and that any extensions you distribute comply with the Joomla license.

View File

@ -41,6 +41,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.id DESC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.message ASC">COM_ACTIONLOGS_ACTION_ASC</option>

View File

@ -89,6 +89,7 @@
label="JGLOBAL_SORT_BY"
default="id ASC"
onchange="this.form.submit();"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="state ASC">JSTATUS_ASC</option>

View File

@ -71,6 +71,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -42,6 +42,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.state ASC">JSTATUS_ASC</option>

View File

@ -63,7 +63,6 @@
format="%Y-%m-%d"
size="10"
filter="user_utc"
onchange="this.form.submit();"
/>
<field
@ -74,7 +73,6 @@
format="%Y-%m-%d"
size="10"
filter="user_utc"
onchange="this.form.submit();"
/>
</fields>
<fields name="list">
@ -84,6 +82,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="b.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="b.name ASC">JGLOBAL_NAME_ASC</option>

View File

@ -407,9 +407,9 @@ class TracksModel extends ListModel
}
/**
* Get the category name
* Get the client name
*
* @return string The category name.
* @return string The client name.
*
* @since 1.6
*/

View File

@ -18,6 +18,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="group ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="group ASC">COM_CACHE_HEADING_GROUP_ASC</option>

View File

@ -74,6 +74,7 @@
default="a.lft ASC"
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -18,6 +18,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="table ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="table ASC">COM_CHECKIN_DATABASE_TABLE_ASC</option>

View File

@ -96,6 +96,7 @@
label="JGLOBAL_SORT_BY"
default="a.name ASC"
onchange="this.form.submit();"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -119,6 +119,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.id DESC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -106,6 +106,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="fp.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -14,6 +14,7 @@
type="text"
inputmode="search"
label=""
description="COM_FIELDS_FIELDS_FILTER_SEARCH_DESC"
hint="JSEARCH_FILTER"
class="js-stools-search-string"
/>
@ -74,6 +75,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.ordering ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -13,6 +13,7 @@
name="search"
type="text"
inputmode="search"
description="COM_FIELDS_GROUPS_FILTER_SEARCH_DESC"
hint="JSEARCH_FILTER"
class="js-stools-search-string"
/>
@ -52,6 +53,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.ordering ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -28,6 +28,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.state ASC">JSTATUS_ASC</option>

View File

@ -56,6 +56,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="l.title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="l.published ASC">JSTATUS_ASC</option>

View File

@ -49,6 +49,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="branch_title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.state ASC">JSTATUS_ASC</option>

View File

@ -17,6 +17,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.hits ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.searchterm ASC">COM_FINDER_HEADING_SEARCH_TERM_ASC</option>

View File

@ -45,6 +45,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="name ASC">JGLOBAL_NAME_ASC</option>

View File

@ -17,6 +17,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="name ASC">JGRID_HEADING_LANGUAGE_ASC</option>

View File

@ -65,6 +65,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="status ASC">JSTATUS_ASC</option>

View File

@ -41,6 +41,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="u.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="u.name ASC">JGLOBAL_NAME_ASC</option>

View File

@ -62,6 +62,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="enabled ASC">JSTATUS_ASC</option>

View File

@ -127,6 +127,14 @@ class LanguagesModel extends ListModel
{
$updateSite = $this->getUpdateSite();
// Check whether the updateserver is found
if (empty($updateSite))
{
Factory::getApplication()->enqueueMessage(Text::_('COM_INSTALLER_MSG_WARNING_NO_LANGUAGES_UPDATESERVER'), 'warning');
return;
}
try
{
$response = HttpFactory::getHttp()->get($updateSite);
@ -138,7 +146,7 @@ class LanguagesModel extends ListModel
if ($response === null || $response->code !== 200)
{
Factory::getApplication()->enqueueMessage(Text::_('COM_INSTALLER_MSG_WARNING_NO_LANGUAGES_UPDATESERVER'), 'warning');
Factory::getApplication()->enqueueMessage(Text::sprintf('COM_INSTALLER_MSG_ERROR_CANT_CONNECT_TO_UPDATESERVER', $updateSite), 'error');
return;
}

View File

@ -109,8 +109,8 @@ class HtmlView extends BaseHtmlView
$this->loadHelper('select');
// Assign view variables.
$ftp = $model->getFTPOptions();
$defaultMethod = $ftp['enabled'] ? 'hybrid' : 'direct';
$this->ftp = $model->getFTPOptions();
$defaultMethod = $this->ftp['enabled'] ? 'hybrid' : 'direct';
$this->updateInfo = $model->getUpdateInformation();
$this->methodSelect = JoomlaupdateHelperSelect::getMethods($defaultMethod);

View File

@ -28,6 +28,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="name ASC">COM_LANGUAGES_HEADING_LANGUAGE_ASC</option>

View File

@ -34,6 +34,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.ordering ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -23,7 +23,7 @@ use Joomla\CMS\Router\Route;
class DisplayController extends BaseController
{
/**
* @var string The default view.
* @var string The default view.
* @since 1.6
*/
protected $default_view = 'installed';

View File

@ -35,14 +35,14 @@ class OverridesController extends AdminController
*
* @return void
*
* @since 2.5
* @since 2.5
*/
public function delete()
{
// Check for request forgeries.
$this->checkToken();
// Get items to dlete from the request.
// Get items to delete from the request.
$cid = $this->input->get('cid', array(), 'array');
if (!is_array($cid) || count($cid) < 1)

View File

@ -26,7 +26,7 @@ class StringsController extends AdminController
*
* @return void
*
* @since 2.5
* @since 2.5
*/
public function refresh()
{
@ -38,7 +38,7 @@ class StringsController extends AdminController
*
* @return void
*
* @since 2.5
* @since 2.5
*/
public function search()
{

View File

@ -85,6 +85,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -63,6 +63,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -27,6 +27,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.title ASC">JGLOBAL_TITLE_ASC</option>

View File

@ -26,6 +26,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.date_time DESC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.subject ASC">COM_MESSAGES_HEADING_SUBJECT_ASC</option>

View File

@ -81,6 +81,7 @@
statuses="*,0,1,-2"
onchange="this.form.submit();"
default="a.position ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -74,6 +74,7 @@
statuses="*,0,1,-2"
onchange="this.form.submit();"
default="a.position ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -84,6 +84,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -54,6 +54,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="folder ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -47,6 +47,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.id DESC"
validate="options"
>
<option value="a.state ASC">COM_PRIVACY_HEADING_STATUS_ASC</option>
<option value="a.state DESC">COM_PRIVACY_HEADING_STATUS_DESC</option>

View File

@ -36,6 +36,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.id DESC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.email ASC">COM_PRIVACY_HEADING_EMAIL_ASC</option>

View File

@ -33,6 +33,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.old_url ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.published ASC">JSTATUS_ASC</option>

View File

@ -79,6 +79,7 @@
type="list"
label="JGLOBAL_FIELD_FIELD_ORDERING_LABEL"
default="title"
validate="options"
>
<option value="c.core_title">JGLOBAL_TITLE</option>
<option value="match_count">COM_TAGS_MATCH_COUNT</option>
@ -114,6 +115,7 @@
type="list"
label="COM_TAGS_TAG_LIST_SHOW_DATE_LABEL"
default="0"
validate="options"
>
<option value="0">JHIDE</option>
<option value="created">JGLOBAL_CREATED</option>
@ -229,6 +231,7 @@
type="list"
label="JGLOBAL_FIELD_FIELD_ORDERING_LABEL"
default="title"
validate="options"
>
<option value="title">JGLOBAL_TITLE</option>
<option value="hits">JGLOBAL_HITS</option>

View File

@ -61,6 +61,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -47,6 +47,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.template ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.title ASC">COM_TEMPLATES_HEADING_STYLE_ASC</option>

View File

@ -28,6 +28,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.element ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.element ASC">COM_TEMPLATES_HEADING_TEMPLATE_ASC</option>

View File

@ -45,6 +45,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.title ASC">COM_USERS_HEADING_ASSET_TITLE_ASC</option>

View File

@ -41,6 +41,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.title ASC">COM_USERS_HEADING_ASSET_TITLE_ASC</option>

View File

@ -17,6 +17,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -17,6 +17,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.ordering ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -46,6 +46,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.review_time DESC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.state ASC">JSTATUS_ASC</option>

View File

@ -57,6 +57,7 @@
label="JGLOBAL_SORT_BY"
onchange="this.form.submit();"
default="a.name ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.name ASC">JGLOBAL_NAME_ASC</option>

View File

@ -22,6 +22,7 @@ COM_ACTIONLOGS_EXTENSION="Extension"
COM_ACTIONLOGS_EXTENSION_ASC="Extension ascending"
COM_ACTIONLOGS_EXTENSION_DESC="Extension descending"
COM_ACTIONLOGS_ERROR_COULD_NOT_EXPORT_DATA="Could not export data."
COM_ACTIONLOGS_FILTER_SEARCH_DESC="Search in username. Prefix with ID: to search for an actionlog ID. Prefix with ITEM_ID: to search for an actionlog item ID."
COM_ACTIONLOGS_IP_ADDRESS="IP Address"
COM_ACTIONLOGS_IP_ADDRESS_ASC="IP Address ascending"
COM_ACTIONLOGS_IP_ADDRESS_DESC="IP Address descending"

View File

@ -44,6 +44,7 @@ COM_FIELDS_FIELD_REQUIRED_LABEL="Required"
COM_FIELDS_FIELD_SUFFIX_LABEL="Suffix"
COM_FIELDS_FIELD_TYPE_LABEL="Type"
COM_FIELDS_FIELD_USE_GLOBAL="Use settings from Plugin"
COM_FIELDS_FIELDS_FILTER_SEARCH_DESC="Search in field name, title or note. Prefix with ID: to search for a field ID. Prefix with AUTHOR: to search for a field author."
COM_FIELDS_MUSTCONTAIN_A_TITLE_FIELD="Field must have a title."
COM_FIELDS_MUSTCONTAIN_A_TITLE_GROUP="Field Group must have a title."
COM_FIELDS_FIELD_SAVE_SUCCESS="Field saved"
@ -73,6 +74,7 @@ COM_FIELDS_GROUP_N_ITEMS_TRASHED="%d field groups trashed"
COM_FIELDS_GROUP_N_ITEMS_TRASHED_1="Field group trashed"
COM_FIELDS_GROUP_N_ITEMS_UNPUBLISHED="%d field groups unpublished"
COM_FIELDS_GROUP_N_ITEMS_UNPUBLISHED_1="Field group unpublished"
COM_FIELDS_GROUPS_FILTER_SEARCH_DESC="Search in field group title. Prefix with ID: to search for a field group ID."
COM_FIELDS_GROUPS_TABLE_CAPTION="Table of Field Groups"
COM_FIELDS_SYSTEM_PLUGIN_NOT_ENABLED="The <a href=\"%s\">System - Fields</a> plugin is disabled. Custom fields will not display until you enable this plugin."
COM_FIELDS_VIEW_FIELDS_BATCH_OPTIONS="Batch process the selected fields."

View File

@ -135,6 +135,7 @@ COM_INSTALLER_MSG_DISCOVER_INSTALLSUCCESSFUL="Discover install successful."
COM_INSTALLER_MSG_DISCOVER_NOEXTENSION="<strong>No extensions have been discovered.</strong> Select Discover to find new extensions that might be available for install."
COM_INSTALLER_MSG_DISCOVER_NOEXTENSIONSELECTED="No extension selected."
COM_INSTALLER_MSG_DISCOVER_PURGEDDISCOVEREDEXTENSIONS="Cleared discovered extensions."
COM_INSTALLER_MSG_ERROR_CANT_CONNECT_TO_UPDATESERVER="Can't connect to %s"
COM_INSTALLER_MSG_INSTALL_ENTER_A_URL="Please enter a URL"
COM_INSTALLER_MSG_INSTALL_INVALID_URL="Invalid URL"
COM_INSTALLER_MSG_INSTALL_NO_FILE_SELECTED="No file selected."

View File

@ -8,4 +8,6 @@ PLG_QUICKICON_PHPVERSIONCHECK="Quick Icon - PHP Version Check"
PLG_QUICKICON_PHPVERSIONCHECK_SECURITY_ONLY="Your PHP version, %1$s, is only receiving security fixes from the PHP project at this time. This means your PHP version will soon no longer be supported. We recommend planning to upgrade to a newer PHP version before it reaches end of support on %2$s. Joomla will be faster and more secure if you upgrade to a newer PHP version. Please contact your host for upgrade instructions."
; Key 1 is the server's current PHP version, key 2 is the recommended PHP version, and key 3 is the date at which support will end for the recommended PHP version
PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED="We have detected that your server is using PHP %1$s which is obsolete and no longer receives official security updates by its developers. The Joomla! Project recommends upgrading your site to PHP %2$s or later which will receive security updates at least until %3$s. Please ask your host to make PHP %2$s or a later version the default version for your site. If your host is already PHP %2$s ready please enable PHP %2$s on your site's root and 'administrator' directories typically you can do this yourself through a tool in your hosting control panel, but it's best to ask your host if you are unsure."
; Key 1 is the server's current PHP version
PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED_JOOMLA_OUTDATED="We have detected that your server is using PHP %1$s which is obsolete and no longer receives official security updates by its developers. Furthermore, we cannot recommend a newer PHP version because you are using an outdated Joomla! version. We recommend updating Joomla! and then following further PHP upgrade instructions."
PLG_QUICKICON_PHPVERSIONCHECK_XML_DESCRIPTION="Checks the support status of your installation's PHP version and raises a warning if not fully supported."

View File

@ -781,6 +781,9 @@
self.inputField.setAttribute('data-alt-value', "0000-00-00 00:00:00");
self.inputField.setAttribute('value', '');
self.inputField.value = '';
if (self.inputField.onchange) {
self.inputField.onchange();
}
});
if (this.params.showsTodayBtn) {

View File

@ -305,10 +305,9 @@
.replace(/(\[\]$)/g, '')
.replace(/(\]\[)/g, '__')
.replace(/\[/g, '_')
.replace(/\]/g, '')
.replace(/\W/g, '_'); // id from name
.replace(/\]/g, ''); // id from name
const nameNew = name.replace(`[${group}][`, `[${groupnew}][`); // New name
let idNew = id.replace(group, groupnew); // Count new id
let idNew = id.replace(group, groupnew).replace(/\W/g, '_'); // Count new id
let countMulti = 0; // count for multiple radio/checkboxes
let forOldAttr = id; // Fix "for" in the labels

View File

@ -25,8 +25,9 @@ use Joomla\CMS\Table\Table;
* - https://groups.google.com/d/msg/joomla-dev-cms/WsC0nA9Fixo/Ur-gPqpqh-EJ
*/
// Reference global application object
/** @var \Joomla\CMS\Application\CMSApplication $app */
$app = Factory::getApplication();
$app->allowCache(false);
// JInput object
$input = $app->input;

View File

@ -205,8 +205,6 @@ class BannersModel extends ListModel
foreach ($keywords as $key => $keyword)
{
$keyword = trim($keyword);
$condition1 = $db->quoteName('a.own_prefix') . ' = 1'
. ' AND ' . $db->quoteName('a.metakey_prefix')
. ' = SUBSTRING(:aprefix' . $key . ',1,LENGTH(' . $db->quoteName('a.metakey_prefix') . '))'
@ -263,6 +261,23 @@ class BannersModel extends ListModel
*/
public function getItems()
{
if ($this->getState('filter.tag_search'))
{
// Filter out empty keywords.
$keywords = array_values(array_filter(array_map('trim', $this->getState('filter.keywords')), 'strlen'));
// Re-set state before running the query.
$this->setState('filter.keywords', $keywords);
// If no keywords are provided, avoid running the query.
if (!$keywords)
{
$this->cache['items'] = array();
return $this->cache['items'];
}
}
if (!isset($this->cache['items']))
{
$this->cache['items'] = parent::getItems();

View File

@ -87,7 +87,7 @@ class ModulesController extends BaseController
// Set FTP credentials, if given.
ClientHelper::setCredentialsFromRequest('ftp');
// Get sumitted module id
// Get submitted module id
$moduleId = '&id=' . $this->input->getInt('id');
// Get returnUri

View File

@ -90,6 +90,7 @@
description="COM_CONTACT_LIST_FULL_ORDERING_DESC"
default="a.name ASC"
onchange="this.form.submit();"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -98,6 +98,7 @@
description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
onchange="this.form.submit();"
default="a.title ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -69,6 +69,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.ordering ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -33,6 +33,9 @@ class SuggestionsController extends BaseController
$app = $this->app;
$app->mimeType = 'application/json';
// Ensure caching is disabled as it depends on the query param in the model
$app->allowCache(false);
$suggestions = $this->getSuggestions();
// Send the response.
@ -57,6 +60,9 @@ class SuggestionsController extends BaseController
$result[] = $this->getSuggestions();
// Ensure caching is disabled as it depends on the query param in the model
$app->allowCache(false);
// Send the response.
$app->setHeader('Content-Type', $app->mimeType . '; charset=' . $app->charSet);
$app->sendHeaders();

View File

@ -62,6 +62,7 @@
statuses="*,0,1,2,-2"
onchange="this.form.submit();"
default="a.lft ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.lft ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -47,6 +47,7 @@
statuses="*,0,1,-2"
onchange="this.form.submit();"
default="a.position ASC"
validate="options"
>
<option value="">JGLOBAL_SORT_BY</option>
<option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option>

View File

@ -13,7 +13,7 @@ MOD_BANNERS_FIELD_COUNT_LABEL="Count"
MOD_BANNERS_FIELD_FOOTER_LABEL="Footer Text"
MOD_BANNERS_FIELD_HEADER_LABEL="Header Text"
MOD_BANNERS_FIELD_RANDOMISE_LABEL="Randomise"
MOD_BANNERS_FIELD_TAG_DESC="Banner is selected by matching the banner tags to the current document Keywords."
MOD_BANNERS_FIELD_TAG_DESC="Banner is selected by matching the banner meta keywords to the current document Keywords."
MOD_BANNERS_FIELD_TAG_LABEL="Select by Keyword"
MOD_BANNERS_FIELD_TARGET_LABEL="Target"
MOD_BANNERS_VALUE_STICKYORDERING="Pinned, Ordering"

View File

@ -101,7 +101,7 @@ abstract class JHtmlSidebar
* @param string $label Label for the menu item.
* @param string $name Name for the filter. Also used as id.
* @param string $options Options for the select field.
* @param bool $noDefault Don't the label as the empty option
* @param bool $noDefault Don't show the label as the empty option
*
* @return void
*

View File

@ -539,7 +539,7 @@ class Access
// If not full recursive mode, but recursive parent mode, do not add other recursion rules.
if (!$recursive && $recursiveParentAsset && self::$assetPermissionsParentIdMapping[$extensionName][$id]->name !== $extensionName
&& self::$assetPermissionsParentIdMapping[$extensionName][$id]->id !== $assetId)
&& (int) self::$assetPermissionsParentIdMapping[$extensionName][$id]->id !== $assetId)
{
continue;
}

View File

@ -226,7 +226,7 @@ class FeedDocument extends Document
// Render the feed
$data .= $renderer->render();
parent::render();
parent::render($cache, $params);
return $data;
}

View File

@ -144,17 +144,21 @@ class HtmlDocument extends Document
public function getHeadData()
{
$data = array();
$data['title'] = $this->title;
$data['description'] = $this->description;
$data['link'] = $this->link;
$data['metaTags'] = $this->_metaTags;
$data['links'] = $this->_links;
$data['styleSheets'] = $this->_styleSheets;
$data['style'] = $this->_style;
$data['scripts'] = $this->_scripts;
$data['script'] = $this->_script;
$data['custom'] = $this->_custom;
$data['scriptText'] = Text::getScriptStrings();
$data['title'] = $this->title;
$data['description'] = $this->description;
$data['link'] = $this->link;
$data['metaTags'] = $this->_metaTags;
$data['links'] = $this->_links;
$data['styleSheets'] = $this->_styleSheets;
$data['style'] = $this->_style;
$data['scripts'] = $this->_scripts;
$data['script'] = $this->_script;
$data['custom'] = $this->_custom;
// @deprecated 5.0 This property is for backwards compatibility. Pass text through script options in the future
$data['scriptText'] = Text::getScriptStrings();
$data['scriptOptions'] = $this->scriptOptions;
return $data;
}
@ -172,16 +176,17 @@ class HtmlDocument extends Document
{
if (\is_null($types))
{
$this->title = '';
$this->description = '';
$this->link = '';
$this->_metaTags = array();
$this->_links = array();
$this->_styleSheets = array();
$this->_style = array();
$this->_scripts = array();
$this->_script = array();
$this->_custom = array();
$this->title = '';
$this->description = '';
$this->link = '';
$this->_metaTags = array();
$this->_links = array();
$this->_styleSheets = array();
$this->_style = array();
$this->_scripts = array();
$this->_script = array();
$this->_custom = array();
$this->scriptOptions = array();
}
if (\is_array($types))
@ -229,6 +234,10 @@ class HtmlDocument extends Document
$realType = '_' . $type;
$this->{$realType} = array();
break;
case 'scriptOptions':
$this->{$type} = array();
break;
}
}
@ -245,27 +254,20 @@ class HtmlDocument extends Document
{
if (empty($data) || !\is_array($data))
{
return;
return null;
}
$this->title = $data['title'] ?? $this->title;
$this->description = $data['description'] ?? $this->description;
$this->link = $data['link'] ?? $this->link;
$this->_metaTags = $data['metaTags'] ?? $this->_metaTags;
$this->_links = $data['links'] ?? $this->_links;
$this->_styleSheets = $data['styleSheets'] ?? $this->_styleSheets;
$this->_style = $data['style'] ?? $this->_style;
$this->_scripts = $data['scripts'] ?? $this->_scripts;
$this->_script = $data['script'] ?? $this->_script;
$this->_custom = $data['custom'] ?? $this->_custom;
if (isset($data['scriptText']) && !empty($data['scriptText']))
{
foreach ($data['scriptText'] as $key => $string)
{
Text::script($key, $string);
}
}
$this->title = $data['title'] ?? $this->title;
$this->description = $data['description'] ?? $this->description;
$this->link = $data['link'] ?? $this->link;
$this->_metaTags = $data['metaTags'] ?? $this->_metaTags;
$this->_links = $data['links'] ?? $this->_links;
$this->_styleSheets = $data['styleSheets'] ?? $this->_styleSheets;
$this->_style = $data['style'] ?? $this->_style;
$this->_scripts = $data['scripts'] ?? $this->_scripts;
$this->_script = $data['script'] ?? $this->_script;
$this->_custom = $data['custom'] ?? $this->_custom;
$this->scriptOptions = (isset($data['scriptOptions']) && !empty($data['scriptOptions'])) ? $data['scriptOptions'] : $this->scriptOptions;
return $this;
}
@ -344,6 +346,14 @@ class HtmlDocument extends Document
? array_unique(array_merge($this->_custom, $data['custom']))
: $this->_custom;
if (!empty($data['scriptOptions']))
{
foreach ($data['scriptOptions'] as $key => $scriptOptions)
{
$this->addScriptOptions($key, $scriptOptions, true);
}
}
return $this;
}
@ -570,7 +580,7 @@ class HtmlDocument extends Document
}
$data = $this->_renderTemplate();
parent::render();
parent::render($caching, $params);
return $data;
}

View File

@ -69,7 +69,7 @@ class ImageDocument extends Document
$this->_charset = null;
parent::render();
parent::render($cache, $params);
return $this->getBuffer();
}

View File

@ -68,9 +68,10 @@ class JsonDocument extends Document
*/
public function render($cache = false, $params = array())
{
/** @var \Joomla\CMS\Application\CMSApplication $app **/
$app = CmsFactory::getApplication();
$app->allowCache(false);
$app->allowCache($cache);
if ($this->_mime === 'application/json')
{
@ -78,7 +79,7 @@ class JsonDocument extends Document
$app->setHeader('Content-Disposition', 'attachment; filename="' . $this->getName() . '.json"', true);
}
parent::render();
parent::render($cache, $params);
return $this->getBuffer();
}

View File

@ -178,7 +178,7 @@ class OpensearchDocument extends Document
}
$xml->appendChild($elOs);
parent::render();
parent::render($cache, $params);
return $xml->saveXml();
}

View File

@ -47,7 +47,7 @@ class RawDocument extends Document
*/
public function render($cache = false, $params = array())
{
parent::render();
parent::render($cache, $params);
return $this->getBuffer();
}

View File

@ -65,7 +65,7 @@ class XmlDocument extends Document
*/
public function render($cache = false, $params = array())
{
parent::render();
parent::render($cache, $params);
$disposition = $this->isDownload ? 'attachment' : 'inline';

View File

@ -372,14 +372,11 @@ class FormHelper
// Add the new paths to the stack if not already there.
foreach ($new as $path)
{
$path = \trim($path);
if (!\in_array($path, $paths))
{
array_unshift($paths, trim($path));
}
if (!is_dir($path))
{
array_unshift($paths, trim($path));
\array_unshift($paths, $path);
}
}

View File

@ -8,6 +8,8 @@
namespace Joomla\CMS\Log;
defined('JPATH_PLATFORM') or die;
use Psr\Log\AbstractLogger;
use Psr\Log\InvalidArgumentException;
use Psr\Log\LogLevel;

View File

@ -68,6 +68,7 @@
type="list"
label="MOD_ARTICLES_CATEGORY_FIELD_SHOWFEATURED_LABEL"
default="show"
validate="options"
>
<option value="show">JSHOW</option>
<option value="hide">JHIDE</option>
@ -223,6 +224,7 @@
type="list"
label="MOD_ARTICLES_CATEGORY_FIELD_DATEFILTERING_LABEL"
default="off"
validate="options"
>
<option value="off">MOD_ARTICLES_CATEGORY_OPTION_OFF_VALUE</option>
<option value="range">MOD_ARTICLES_CATEGORY_OPTION_DATERANGE_VALUE</option>
@ -235,6 +237,7 @@
label="MOD_ARTICLES_CATEGORY_FIELD_DATERANGEFIELD_LABEL"
default="a.created"
showon="date_filtering!:off"
validate="options"
>
<option value="a.created">MOD_ARTICLES_CATEGORY_OPTION_CREATED_VALUE</option>
<option value="a.modified">MOD_ARTICLES_CATEGORY_OPTION_MODIFIED_VALUE</option>
@ -284,6 +287,7 @@
type="list"
label="MOD_ARTICLES_CATEGORY_FIELD_ARTICLEORDERING_LABEL"
default="a.title"
validate="options"
>
<option value="a.ordering">MOD_ARTICLES_CATEGORY_OPTION_ORDERING_VALUE</option>
<option value="fp.ordering">MOD_ARTICLES_CATEGORY_OPTION_ORDERINGFEATURED_VALUE</option>
@ -305,6 +309,7 @@
type="list"
label="MOD_ARTICLES_CATEGORY_FIELD_ARTICLEORDERINGDIR_LABEL"
default="ASC"
validate="options"
>
<option value="DESC">MOD_ARTICLES_CATEGORY_OPTION_DESCENDING_VALUE</option>
<option value="ASC">MOD_ARTICLES_CATEGORY_OPTION_ASCENDING_VALUE</option>
@ -321,6 +326,7 @@
type="list"
label="MOD_ARTICLES_CATEGORY_FIELD_ARTICLEGROUPING_LABEL"
default="none"
validate="options"
>
<option value="none">JNONE</option>
<option value="year">MOD_ARTICLES_CATEGORY_OPTION_YEAR_VALUE</option>
@ -337,6 +343,7 @@
description="MOD_ARTICLES_CATEGORY_FIELD_DATEGROUPINGFIELD_DESC"
default="created"
showon="article_grouping:year,month_year"
validate="options"
>
<option value="created">MOD_ARTICLES_CATEGORY_OPTION_CREATED_VALUE</option>
<option value="modified">MOD_ARTICLES_CATEGORY_OPTION_MODIFIED_VALUE</option>
@ -358,6 +365,7 @@
label="MOD_ARTICLES_CATEGORY_FIELD_ARTICLEGROUPINGDIR_LABEL"
default="ksort"
showon="article_grouping!:none"
validate="options"
>
<option value="krsort">MOD_ARTICLES_CATEGORY_OPTION_DESCENDING_VALUE</option>
<option value="ksort">MOD_ARTICLES_CATEGORY_OPTION_ASCENDING_VALUE</option>
@ -400,6 +408,7 @@
label="MOD_ARTICLES_CATEGORY_FIELD_DATEFIELD_LABEL"
default="created"
showon="show_date:1"
validate="options"
>
<option value="created">MOD_ARTICLES_CATEGORY_OPTION_CREATED_VALUE</option>
<option value="modified">MOD_ARTICLES_CATEGORY_OPTION_MODIFIED_VALUE</option>

View File

@ -193,6 +193,7 @@
type="list"
label="MOD_ARTICLES_NEWS_FIELD_ORDERING_LABEL"
default="a.publish_up"
validate="options"
>
<option value="a.publish_up">MOD_ARTICLES_NEWS_FIELD_ORDERING_PUBLISHED_DATE</option>
<option value="a.created">MOD_ARTICLES_NEWS_FIELD_ORDERING_CREATED_DATE</option>

View File

@ -63,6 +63,7 @@
type="list"
label="MOD_POPULAR_FIELD_DATEFILTERING_LABEL"
default="off"
validate="options"
>
<option value="off">MOD_POPULAR_OPTION_OFF_VALUE</option>
<option value="range">MOD_POPULAR_OPTION_DATERANGE_VALUE</option>
@ -75,6 +76,7 @@
label="MOD_POPULAR_FIELD_DATEFIELD_LABEL"
default="a.created"
showon="date_filtering:range,relative"
validate="options"
>
<option value="a.created">MOD_POPULAR_OPTION_CREATED_VALUE</option>
<option value="a.modified">MOD_POPULAR_OPTION_MODIFIED_VALUE</option>

View File

@ -49,6 +49,7 @@
type="list"
label="MOD_TAGS_POPULAR_FIELD_TIMEFRAME_LABEL"
default="alltime"
validate="options"
>
<option value="alltime">MOD_TAGS_POPULAR_FIELD_ALL_TIME</option>
<option value="hour">MOD_TAGS_POPULAR_FIELD_LAST_HOUR</option>
@ -63,6 +64,7 @@
type="list"
label="MOD_TAGS_POPULAR_FIELD_ORDER_VALUE_LABEL"
default="count"
validate="options"
>
<option value="title">MOD_TAGS_POPULAR_FIELD_ORDER_VALUE_TITLE</option>
<option value="count">MOD_TAGS_POPULAR_FIELD_ORDER_VALUE_COUNT</option>

View File

@ -119,6 +119,10 @@ class PlgQuickiconPhpVersionCheck extends CMSPlugin
'security' => '2020-12-06',
'eos' => '2021-12-06',
),
'7.4' => array(
'security' => '2021-11-28',
'eos' => '2022-11-28',
),
);
// Fill our return array with default values
@ -149,20 +153,26 @@ class PlgQuickiconPhpVersionCheck extends CMSPlugin
if (version_compare($version, $activePhpVersion, 'ge') && ($today < $versionEndOfSupport))
{
$recommendedVersion = $version;
$recommendedVersionEndOfSupport = $versionEndOfSupport;
$supportStatus['status'] = self::PHP_UNSUPPORTED;
$supportStatus['message'] = JText::sprintf(
'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED',
PHP_VERSION,
$version,
$versionEndOfSupport->format(JText::_('DATE_FORMAT_LC4'))
);
break;
return $supportStatus;
}
}
// PHP version is not supported and we don't know of any supported versions.
$supportStatus['status'] = self::PHP_UNSUPPORTED;
$supportStatus['message'] = Text::sprintf(
'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED',
PHP_VERSION,
$recommendedVersion,
$recommendedVersionEndOfSupport->format(Text::_('DATE_FORMAT_LC4'))
'PLG_QUICKICON_PHPVERSIONCHECK_UNSUPPORTED_JOOMLA_OUTDATED',
PHP_VERSION
);
return $supportStatus;
}
// If the version is still supported, check if it has reached eol minus 3 month

View File

@ -513,6 +513,12 @@ class PlgSystemDebug extends CMSPlugin
foreach ($logs as $k => $query)
{
$dbVersion56 = $db->getServerType() === 'mysql' && version_compare($db->getVersion(), '5.6', '>=');
$dbVersion80 = $db->getServerType() === 'mysql' && version_compare($db->getVersion(), '8.0', '>=');
if ($dbVersion80)
{
$dbVersion56 = false;
}
if ((stripos($query, 'select') === 0) || ($dbVersion56 && ((stripos($query, 'delete') === 0) || (stripos($query, 'update') === 0))))
{

View File

@ -502,7 +502,7 @@ class PlgSystemLanguageFilter extends CMSPlugin
if ($language->getTag() !== $lang_code)
{
$language_new = Language::getInstance($lang_code);
$language_new = Language::getInstance($lang_code, (bool) $this->app->get('debug_lang'));
foreach ($language->getPaths() as $extension => $files)
{