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 @@ com_joomlaupdate - 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