diff --git a/administrator/components/com_admin/models/sysinfo.php b/administrator/components/com_admin/models/sysinfo.php
index d87acb615892d..22e6efc874d34 100644
--- a/administrator/components/com_admin/models/sysinfo.php
+++ b/administrator/components/com_admin/models/sysinfo.php
@@ -527,6 +527,7 @@ public function getDirectory($public = false)
$cparams = JComponentHelper::getParams('com_media');
$this->addDirectory('administrator/components', JPATH_ADMINISTRATOR . '/components');
+ $this->addDirectory('administrator/components/com_joomlaupdate', JPATH_ADMINISTRATOR . '/components/com_joomlaupdate');
$this->addDirectory('administrator/language', JPATH_ADMINISTRATOR . '/language');
// List all admin languages
diff --git a/administrator/components/com_admin/sql/updates/sqlazure/3.10.1-2021-08-17.sql b/administrator/components/com_admin/sql/updates/sqlazure/3.10.1-2021-08-17.sql
new file mode 100644
index 0000000000000..0b7c592d78dc1
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/sqlazure/3.10.1-2021-08-17.sql
@@ -0,0 +1,6 @@
+--
+-- These database columns are not used in Joomla 3.10 but will be used in Joomla 4.
+-- They are added to 3.10 because otherwise the update to 4 will fail.
+--
+ALTER TABLE [#__template_styles] ADD [inheritable] [smallint] NOT NULL DEFAULT 0;
+ALTER TABLE [#__template_styles] ADD [parent] [nvarchar](50) NOT NULL DEFAULT '';
diff --git a/administrator/components/com_installer/models/update.php b/administrator/components/com_installer/models/update.php
index 927d8bc42f773..443682e8b4b90 100644
--- a/administrator/components/com_installer/models/update.php
+++ b/administrator/components/com_installer/models/update.php
@@ -246,7 +246,7 @@ public function getDisabledUpdateSites()
* Finds updates for an extension.
*
* @param int $eid Extension identifier to look for
- * @param int $cacheTimeout Cache timout
+ * @param int $cacheTimeout Cache timeout
* @param int $minimumStability Minimum stability for updates {@see JUpdater} (0=dev, 1=alpha, 2=beta, 3=rc, 4=stable)
*
* @return boolean Result
diff --git a/administrator/components/com_joomlaupdate/joomlaupdate.xml b/administrator/components/com_joomlaupdate/joomlaupdate.xml
index f34f405c235fa..71c11701e7f96 100644
--- a/administrator/components/com_joomlaupdate/joomlaupdate.xml
+++ b/administrator/components/com_joomlaupdate/joomlaupdate.xml
@@ -7,7 +7,7 @@
GNU General Public License version 2 or later; see LICENSE.txt
admin@joomla.org
www.joomla.org
- 3.6.2
+ 3.10.1
COM_JOOMLAUPDATE_XML_DESCRIPTION
js
@@ -15,7 +15,6 @@
- access.xml
config.xml
controller.php
joomlaupdate.php
diff --git a/administrator/components/com_joomlaupdate/models/default.php b/administrator/components/com_joomlaupdate/models/default.php
index 44e4803139ca0..0a6b88c04fb30 100644
--- a/administrator/components/com_joomlaupdate/models/default.php
+++ b/administrator/components/com_joomlaupdate/models/default.php
@@ -46,7 +46,6 @@ public function applyUpdateSite()
switch ($params->get('updatesource', 'nochange'))
{
// "Minor & Patch Release for Current version AND Next Major Release".
- case 'sts':
case 'next':
$updateURL = 'https://update.joomla.org/core/sts/list_sts.xml';
break;
@@ -74,6 +73,7 @@ public function applyUpdateSite()
* The commented "case" below are for documenting where 'default' and legacy options falls
* case 'default':
* case 'lts':
+ * case 'sts': (It's shown as "Default" because that option does not exist any more)
* case 'nochange':
*/
default:
@@ -1475,8 +1475,10 @@ public function getNonCoreExtensions()
{
$decode = json_decode($extension->manifest_cache);
- // Removed description so that CDATA content does not cause javascript error during pre-update check
+ // Remove unused fields so they do not cause javascript errors during pre-update check
unset($decode->description);
+ unset($decode->copyright);
+ unset($decode->creationDate);
$this->translateExtensionName($extension);
$extension->version = isset($decode->version)
@@ -1549,8 +1551,10 @@ public function getNonCorePlugins($folderFilter = array())
{
$decode = json_decode($plugin->manifest_cache);
- // Removed description so that CDATA content does not cause javascript error during pre-update check
- $decode->description = '';
+ // Remove unused fields so they do not cause javascript errors during pre-update check
+ unset($decode->description);
+ unset($decode->copyright);
+ unset($decode->creationDate);
$this->translateExtensionName($plugin);
$plugin->version = isset($decode->version)
diff --git a/administrator/components/com_joomlaupdate/views/default/tmpl/default_update.php b/administrator/components/com_joomlaupdate/views/default/tmpl/default_update.php
index edf9a62792289..81708df651fda 100644
--- a/administrator/components/com_joomlaupdate/views/default/tmpl/default_update.php
+++ b/administrator/components/com_joomlaupdate/views/default/tmpl/default_update.php
@@ -228,7 +228,7 @@
-
+
|
diff --git a/administrator/components/com_joomlaupdate/views/default/view.html.php b/administrator/components/com_joomlaupdate/views/default/view.html.php
index 7adf9c391854c..c64170864a42a 100644
--- a/administrator/components/com_joomlaupdate/views/default/view.html.php
+++ b/administrator/components/com_joomlaupdate/views/default/view.html.php
@@ -104,7 +104,7 @@ public function display($tpl = null)
$this->isBackendTemplateIsis = (bool) $model->isTemplateActive('isis');
// Disable the critical plugins check for non-major updates.
- $this->nonCoreCriticalPlugins = false;
+ $this->nonCoreCriticalPlugins = array();
if (version_compare($this->updateInfo['latest'], '4', '>='))
{
@@ -136,7 +136,6 @@ public function display($tpl = null)
switch ($params->get('updatesource', 'default'))
{
// "Minor & Patch Release for Current version AND Next Major Release".
- case 'sts':
case 'next':
$this->langKey = 'COM_JOOMLAUPDATE_VIEW_DEFAULT_UPDATES_INFO_NEXT';
$this->updateSourceKey = JText::_('COM_JOOMLAUPDATE_CONFIG_UPDATESOURCE_NEXT');
@@ -159,6 +158,7 @@ public function display($tpl = null)
* The commented "case" below are for documenting where 'default' and legacy options falls
* case 'default':
* case 'lts':
+ * case 'sts':
* case 'nochange':
*/
default:
@@ -268,8 +268,11 @@ private function checkForSelfUpdate()
*/
public function shouldDisplayPreUpdateCheck()
{
- return isset($this->updateInfo['object']->downloadurl->_data)
- && $this->getModel()->isDatabaseTypeSupported()
- && $this->getModel()->isPhpVersionSupported();
+ $nextMinor = JVersion::MAJOR_VERSION . '.' . (JVersion::MINOR_VERSION + 1);
+
+ // Show only when we found a download URL, we have an update and when we update to the next minor or greater.
+ return $this->updateInfo['hasUpdate']
+ && version_compare($this->updateInfo['latest'], $nextMinor, '>=');
}
}
+
diff --git a/administrator/language/en-GB/en-GB.com_joomlaupdate.ini b/administrator/language/en-GB/en-GB.com_joomlaupdate.ini
index 12508839131d4..314d99cdc92db 100644
--- a/administrator/language/en-GB/en-GB.com_joomlaupdate.ini
+++ b/administrator/language/en-GB/en-GB.com_joomlaupdate.ini
@@ -111,8 +111,8 @@ COM_JOOMLAUPDATE_VIEW_DEFAULT_NOUPDATES="No updates available."
COM_JOOMLAUPDATE_VIEW_DEFAULT_NOUPDATESNOTICE="You already have the latest Joomla version, %s."
COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_DOWNLOAD_URL="We can't find a download URL"
COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_DOWNLOAD_URL_DESC="An update to Joomla %1$s was found, but it wasn't possible to download that update. There are three possibilities why this happens:
- Your host doesn't support the minimum requirements for Joomla %1$s and there is no alternative download for your configuration available.
- The update to Joomla %1$s is not available for your stability level.
- There is a problem with the Joomla Update Server.
Please try to download the update package from the official Joomla download page and use the Upload and Update tab."
-COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE="Live Update is not available"
-COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE_DESC="There is a new version of the Joomla Update Component that needs to be installed first. Click here to update the component."
+COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE="A new version of the Joomla Update Component is available."
+COM_JOOMLAUPDATE_VIEW_DEFAULT_NO_LIVE_UPDATE_DESC="You must update this first before you can update Joomla! Click here to update the component."
COM_JOOMLAUPDATE_VIEW_DEFAULT_PACKAGE="Update package URL"
COM_JOOMLAUPDATE_VIEW_DEFAULT_PACKAGE_REINSTALL="Reinstall package URL"
COM_JOOMLAUPDATE_VIEW_DEFAULT_PREUPDATE_CHECK="Pre-Update Check for Joomla %s"
diff --git a/administrator/language/en-GB/en-GB.lib_joomla.ini b/administrator/language/en-GB/en-GB.lib_joomla.ini
index a254d5a0da5cc..5ec83f34a3454 100644
--- a/administrator/language/en-GB/en-GB.lib_joomla.ini
+++ b/administrator/language/en-GB/en-GB.lib_joomla.ini
@@ -677,7 +677,7 @@ JLIB_LOGIN_EXPIRED="Your authentication has expired."
JLIB_MAIL_FUNCTION_DISABLED="The mail() function has been disabled and the mail can't be sent."
JLIB_MAIL_FUNCTION_OFFLINE="The mail function has been disabled by an administrator."
-JLIB_MAIL_INVALID_EMAIL_SENDER="JMail: : Invalid email Sender: %s, JMail: :setSender(%s)."
+JLIB_MAIL_INVALID_EMAIL_SENDER="Invalid email sender: %s"
JLIB_MEDIA_ERROR_UPLOAD_INPUT="Unable to upload file."
JLIB_MEDIA_ERROR_WARNFILENAME="File name must only have alphanumeric characters and no spaces."
diff --git a/administrator/language/en-GB/en-GB.xml b/administrator/language/en-GB/en-GB.xml
index b77a31a4b25c2..a1f474b3566aa 100644
--- a/administrator/language/en-GB/en-GB.xml
+++ b/administrator/language/en-GB/en-GB.xml
@@ -1,7 +1,7 @@
English (en-GB)
- 3.10.1
+ 3.10.2
August 2021
Joomla! Project
admin@joomla.org
diff --git a/administrator/language/en-GB/install.xml b/administrator/language/en-GB/install.xml
index e73b3f5856b2d..ab6fa4f1349b3 100644
--- a/administrator/language/en-GB/install.xml
+++ b/administrator/language/en-GB/install.xml
@@ -2,7 +2,7 @@
English (en-GB)
en-GB
- 3.10.1
+ 3.10.2
August 2021
Joomla! Project
admin@joomla.org
diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml
index c34d12ce40854..3539f14ad6410 100644
--- a/administrator/manifests/files/joomla.xml
+++ b/administrator/manifests/files/joomla.xml
@@ -6,7 +6,7 @@
www.joomla.org
(C) 2019 Open Source Matters, Inc.
GNU General Public License version 2 or later; see LICENSE.txt
- 3.10.1-dev
+ 3.10.2-dev
August 2021
FILES_JOOMLA_XML_DESCRIPTION
diff --git a/administrator/manifests/packages/pkg_en-GB.xml b/administrator/manifests/packages/pkg_en-GB.xml
index 31800cc0ba07c..c359e66f3d16e 100644
--- a/administrator/manifests/packages/pkg_en-GB.xml
+++ b/administrator/manifests/packages/pkg_en-GB.xml
@@ -2,7 +2,7 @@
English (en-GB) Language Pack
en-GB
- 3.10.1.1
+ 3.10.2.1
August 2021
Joomla! Project
admin@joomla.org
diff --git a/installation/language/cy-GB/cy-GB.ini b/installation/language/cy-GB/cy-GB.ini
index d7f0ca6e3fad2..873eff8a5b9d9 100644
--- a/installation/language/cy-GB/cy-GB.ini
+++ b/installation/language/cy-GB/cy-GB.ini
@@ -22,7 +22,7 @@ INSTL_PRECHECK_RECOMMENDED_SETTINGS_TITLE="Gosodiadau a argymhellir:"
INSTL_PRECHECK_RECOMMENDED_SETTINGS_DESC="Argymhellir y gosodiadau yma ar gyfer PHP i sicrhau cydnawsedd llwyr efo Joomla!.
Serch hynny, bydd Joomla! yn gweithio os nad yw eich gosodiadau yn llwyr gyfateb efo’r ffurfweddiad sy’n cael ei argymell."
INSTL_PRECHECK_DIRECTIVE="Cyfarwyddeb"
INSTL_PRECHECK_RECOMMENDED="Argymhellwyd"
-INSTL_PRECHECK_ACTUAL="Gwirioneddol"
+INSTL_PRECHECK_ACTUAL="Gweithredol"
; Database view
INSTL_DATABASE="Ffurfweddiad cronfa ddata"
INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="Ymholiad cronfa ddata PostgreSQL wedi methu."
diff --git a/installation/language/en-GB/en-GB.xml b/installation/language/en-GB/en-GB.xml
index 01b860fc6e09b..6c61ee162505b 100644
--- a/installation/language/en-GB/en-GB.xml
+++ b/installation/language/en-GB/en-GB.xml
@@ -3,7 +3,7 @@
version="3.9"
client="installation">
English (United Kingdom)
- 3.10.1
+ 3.10.2
August 2021
Joomla! Project
(C) 2005 Open Source Matters, Inc.
diff --git a/installation/language/sk-SK/sk-SK.xml b/installation/language/sk-SK/sk-SK.xml
index 1150df95d3407..01d6b49c9dec2 100644
--- a/installation/language/sk-SK/sk-SK.xml
+++ b/installation/language/sk-SK/sk-SK.xml
@@ -1,7 +1,7 @@
Slovenčina (Slovak)
- 3.10.0
+ 3.10.1
August 2021
Slovak translation team : Peter Michnica
(C) 2007 Open Source Matters, Inc.
diff --git a/installation/sql/sqlazure/joomla.sql b/installation/sql/sqlazure/joomla.sql
index c4b843eb2c646..c72b711d5bdd1 100644
--- a/installation/sql/sqlazure/joomla.sql
+++ b/installation/sql/sqlazure/joomla.sql
@@ -2579,6 +2579,8 @@ CREATE TABLE "#__template_styles" (
"client_id" tinyint NOT NULL DEFAULT 0,
"home" nvarchar(7) NOT NULL DEFAULT '0',
"title" nvarchar(255) NOT NULL DEFAULT '',
+ "inheritable" smallint NOT NULL DEFAULT 0,
+ "parent" nvarchar(50) NOT NULL DEFAULT '',
"params" nvarchar(max) NOT NULL,
CONSTRAINT "PK_#__template_styles_id" PRIMARY KEY CLUSTERED
(
diff --git a/language/en-GB/en-GB.lib_joomla.ini b/language/en-GB/en-GB.lib_joomla.ini
index 538af32ee02e5..67817d31c149d 100644
--- a/language/en-GB/en-GB.lib_joomla.ini
+++ b/language/en-GB/en-GB.lib_joomla.ini
@@ -677,7 +677,7 @@ JLIB_LOGIN_EXPIRED="Your authentication has expired."
JLIB_MAIL_FUNCTION_DISABLED="The mail() function has been disabled and the mail can't be sent."
JLIB_MAIL_FUNCTION_OFFLINE="The mail function has been disabled by an administrator."
-JLIB_MAIL_INVALID_EMAIL_SENDER="JMail: : Invalid email Sender: %s, JMail: :setSender(%s)."
+JLIB_MAIL_INVALID_EMAIL_SENDER="Invalid email sender: %s"
JLIB_MEDIA_ERROR_UPLOAD_INPUT="Unable to upload file."
JLIB_MEDIA_ERROR_WARNFILENAME="File name must only have alphanumeric characters and no spaces."
diff --git a/language/en-GB/en-GB.xml b/language/en-GB/en-GB.xml
index a046084025805..5ae57c2e59751 100644
--- a/language/en-GB/en-GB.xml
+++ b/language/en-GB/en-GB.xml
@@ -1,7 +1,7 @@
English (en-GB)
- 3.10.1
+ 3.10.2
August 2021
Joomla! Project
admin@joomla.org
diff --git a/language/en-GB/install.xml b/language/en-GB/install.xml
index 44323751dcacc..a1767775dce7e 100644
--- a/language/en-GB/install.xml
+++ b/language/en-GB/install.xml
@@ -2,7 +2,7 @@
English (en-GB)
en-GB
- 3.10.1
+ 3.10.2
August 2021
Joomla! Project
admin@joomla.org
diff --git a/libraries/src/Filter/InputFilter.php b/libraries/src/Filter/InputFilter.php
index 3f82eb2c9a4d1..42f89f25698bc 100644
--- a/libraries/src/Filter/InputFilter.php
+++ b/libraries/src/Filter/InputFilter.php
@@ -508,7 +508,7 @@ public static function isSafeFile($file, $options = array())
// Which file extensions to scan for short tags
'shorttag_extensions' => array(
- 'inc', 'phps', 'class', 'php3', 'php4', 'php5', 'txt', 'dat', 'tpl', 'tmpl',
+ 'inc', 'phps', 'class', 'php3', 'php4', 'php5', 'php6', 'php7', 'php8', 'txt', 'dat', 'tpl', 'tmpl',
),
// Forbidden extensions anywhere in the content
diff --git a/libraries/src/Http/Transport/SocketTransport.php b/libraries/src/Http/Transport/SocketTransport.php
index 80ce6a851a31f..1e02cdb714c68 100644
--- a/libraries/src/Http/Transport/SocketTransport.php
+++ b/libraries/src/Http/Transport/SocketTransport.php
@@ -297,7 +297,7 @@ protected function connect(Uri $uri, $timeout = null)
if (!$php_errormsg)
{
// Error but nothing from php? Create our own
- $php_errormsg = sprintf('Could not connect to resource: %s', $uri, $err, $errno);
+ $php_errormsg = sprintf('Could not connect to resource %s: %s (error code %d)', $uri, $err, $errno);
}
// Restore error tracking to give control to the exception handler
diff --git a/libraries/src/Mail/Mail.php b/libraries/src/Mail/Mail.php
index ed7f1bbc4cfbd..17610f8d9748c 100644
--- a/libraries/src/Mail/Mail.php
+++ b/libraries/src/Mail/Mail.php
@@ -239,7 +239,7 @@ public function setSender($from)
// If it is neither, we log a message and throw an exception
Log::add(\JText::sprintf('JLIB_MAIL_INVALID_EMAIL_SENDER', $from), Log::WARNING, 'jerror');
- throw new \UnexpectedValueException(sprintf('Invalid email Sender: %s, Mail::setSender(%s)', $from));
+ throw new \UnexpectedValueException(sprintf('Invalid email sender: %s', $from));
}
// Check for boolean false return if exception handling is disabled
diff --git a/libraries/src/Version.php b/libraries/src/Version.php
index 7f9d3833bb4e5..9ce7f813bf921 100644
--- a/libraries/src/Version.php
+++ b/libraries/src/Version.php
@@ -49,7 +49,7 @@ final class Version
* @var integer
* @since 3.8.0
*/
- const PATCH_VERSION = 1;
+ const PATCH_VERSION = 2;
/**
* Extra release version info.
@@ -78,7 +78,7 @@ final class Version
* @since 3.5
* @deprecated 4.0 Use separated version constants instead
*/
- const DEV_LEVEL = '1-dev';
+ const DEV_LEVEL = '2-dev';
/**
* Development status.
@@ -111,7 +111,7 @@ final class Version
* @var string
* @since 3.5
*/
- const RELDATE = '14-August-2021';
+ const RELDATE = '22-August-2021';
/**
* Release time.
@@ -119,7 +119,7 @@ final class Version
* @var string
* @since 3.5
*/
- const RELTIME = '12:25';
+ const RELTIME = '18:42';
/**
* Release timezone.
diff --git a/plugins/system/updatenotification/postinstall/updatecachetime.php b/plugins/system/updatenotification/postinstall/updatecachetime.php
index 7f7ab89606f90..a8ba77edd8cfb 100644
--- a/plugins/system/updatenotification/postinstall/updatecachetime.php
+++ b/plugins/system/updatenotification/postinstall/updatecachetime.php
@@ -28,7 +28,7 @@ function updatecachetime_postinstall_condition()
}
/**
- * Sets the cachtimeout back to the default (6 hours)
+ * Sets the cachetimeout back to the default (6 hours)
*
* @return void
*
@@ -38,7 +38,7 @@ function updatecachetime_postinstall_action()
{
$installer = JComponentHelper::getComponent('com_installer');
- // Sets the cachtimeout back to the default (6 hours)
+ // Sets the cachetimeout back to the default (6 hours)
$installer->params->set('cachetimeout', 6);
// Save the new parameters back to com_installer