Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating 4.3-dev with changes from 4.2-dev #39626

Merged
merged 36 commits into from
Jan 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
80e46d0
[4.2] Fix check permission for com_categories/com_workflow in mod_sub…
heelc29 Jan 5, 2023
1c2bb9a
[4] Start and Finished featured article settings cleared when saving …
alikon Jan 6, 2023
4b5e3dd
[4][webservices] return tag info on GET content articles (#39009)
alikon Jan 7, 2023
87d8c0f
Fixed rate button misalignment (#39465)
JackKellyUK Jan 7, 2023
f89797d
metis-menu css logical proprties (#38359)
brianteeman Jan 7, 2023
de7380f
Fix installer hint "/** CAN FAIL **/" for update SQL scripts not work…
richard67 Jan 7, 2023
23c43ed
PHP 8.1 json_decode(null) deprecated when creating new Access Level (…
OctavianC Jan 8, 2023
0788025
Change array to short syntax in LevelModel (#39581)
laoneo Jan 9, 2023
a19b8d0
[4.2] Clean the logo URL in Atum (#39579)
dgrammatiko Jan 9, 2023
b1963b8
Fixed select colour bleed (ultrawide screens) (#39569)
JackKellyUK Jan 9, 2023
c071cbb
Fix Feature start and end date on category blog (#39572)
joomdonation Jan 9, 2023
a1a135d
Fix radio form field required validation (#39578)
joomdonation Jan 9, 2023
24e672e
Change name of style (#39585)
drmenzelit Jan 10, 2023
a348f05
[4.2] Clean the logo URL in Cassiopeia (#39574)
dgrammatiko Jan 10, 2023
3a9ba35
[4.2] Minor patch for the currentModal (#39450)
dgrammatiko Jan 10, 2023
1a4ca33
Disable parent on the fly for tags (#39443)
chmst Jan 10, 2023
6ad41b7
[4.2] PHP8.2 Define the folder property in the media form field (#39602)
laoneo Jan 11, 2023
cc2597a
[4.2] PHP8.2 Define tags variable in helper class (#39600)
laoneo Jan 11, 2023
46a1bee
[4.2] Fix deprecated warning for Calendar form fields on PHP 8.1+ (#3…
joomdonation Jan 12, 2023
87441ba
Encode path parameters in MM API calls (#39613)
laoneo Jan 12, 2023
36f5a14
[4.2] PHP8.2 deprecated relative callables (#39500)
heelc29 Jan 12, 2023
e91b797
[4.2] PHP8.2 deprecated dynamic properties (#39501)
heelc29 Jan 12, 2023
d0f2559
[4.2] PHP8.2 deprecated dynamic properties (#39502)
heelc29 Jan 12, 2023
d743306
[4.2] PHP8.2 deprecated dynamic properties (#39503)
heelc29 Jan 12, 2023
4467f92
Allow dynamic properties for Table, MenuItem and CMSObject (#39591)
laoneo Jan 12, 2023
1e09a0c
Update the uri package with the utf8 fix (#39593)
laoneo Jan 12, 2023
f67504f
Allow dynamic properties in Log class (#39599)
laoneo Jan 12, 2023
129b32f
Use the params correctly in the article form layout (#39601)
laoneo Jan 12, 2023
8e7c43e
[4.2] PHP8.2 Define the threshold in cache (#39604)
laoneo Jan 12, 2023
7835eee
Add the missing props to the calendar form field (#39605)
laoneo Jan 12, 2023
a1f2c6a
Add the missing props to the rules form field (#39606)
laoneo Jan 12, 2023
bc6a5f3
[4.2] PHP8.2 Add the missing props to the password form field (#39608)
laoneo Jan 12, 2023
ab1b78a
[4.2] PHP8.2 Add the missing props to the captcha form field (#39603)
laoneo Jan 12, 2023
4cf6f00
[4.2] content history alerts (#39611)
brianteeman Jan 12, 2023
f6b21f2
Converted read more alert to joomla-alert (#39573)
JackKellyUK Jan 12, 2023
184819b
Merge branch '4.2-dev' into upmerge-2023-01-13
obuisard Jan 13, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class Api {
}

// eslint-disable-next-line no-underscore-dangle
let url = `${this._baseUrl}&task=api.files&path=${dir}`;
let url = `${this._baseUrl}&task=api.files&path=${encodeURIComponent(dir)}`;

if (full) {
url += `&url=${full}`;
Expand Down Expand Up @@ -88,7 +88,7 @@ class Api {
// Wrap the ajax call into a real promise
return new Promise((resolve, reject) => {
// eslint-disable-next-line no-underscore-dangle
const url = `${this._baseUrl}&task=api.files&path=${parent}`;
const url = `${this._baseUrl}&task=api.files&path=${encodeURIComponent(parent)}`;
// eslint-disable-next-line no-underscore-dangle
const data = { [this._csrfToken]: '1', name };

Expand Down Expand Up @@ -123,7 +123,7 @@ class Api {
// Wrap the ajax call into a real promise
return new Promise((resolve, reject) => {
// eslint-disable-next-line no-underscore-dangle
const url = `${this._baseUrl}&task=api.files&path=${parent}`;
const url = `${this._baseUrl}&task=api.files&path=${encodeURIComponent(parent)}`;
const data = {
// eslint-disable-next-line no-underscore-dangle
[this._csrfToken]: '1',
Expand Down Expand Up @@ -165,7 +165,7 @@ class Api {
// Wrap the ajax call into a real promise
return new Promise((resolve, reject) => {
// eslint-disable-next-line no-underscore-dangle
const url = `${this._baseUrl}&task=api.files&path=${path}`;
const url = `${this._baseUrl}&task=api.files&path=${encodeURIComponent(path)}`;
const data = {
// eslint-disable-next-line no-underscore-dangle
[this._csrfToken]: '1',
Expand Down Expand Up @@ -201,7 +201,7 @@ class Api {
// Wrap the ajax call into a real promise
return new Promise((resolve, reject) => {
// eslint-disable-next-line no-underscore-dangle
const url = `${this._baseUrl}&task=api.files&path=${path}`;
const url = `${this._baseUrl}&task=api.files&path=${encodeURIComponent(path)}`;
// eslint-disable-next-line no-underscore-dangle
const data = { [this._csrfToken]: '1' };

Expand Down
1 change: 1 addition & 0 deletions administrator/components/com_tags/forms/tag.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
name="parent_id"
type="tag"
label="COM_TAGS_FIELD_PARENT_LABEL"
custom="false"
mode="nested"
validate="notequals"
field="id"
Expand Down
16 changes: 8 additions & 8 deletions administrator/components/com_users/src/Model/LevelModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ protected function canDelete($record)
// Check if the access level is being used by any content.
if ($this->levelsInUse === null) {
// Populate the list once.
$this->levelsInUse = array();
$this->levelsInUse = [];

$db = $this->getDatabase();
$query = $db->getQuery(true)
Expand Down Expand Up @@ -134,7 +134,7 @@ protected function canDelete($record)
*
* @since 1.6
*/
public function getTable($type = 'ViewLevel', $prefix = 'Joomla\\CMS\\Table\\', $config = array())
public function getTable($type = 'ViewLevel', $prefix = 'Joomla\\CMS\\Table\\', $config = [])
{
$return = Table::getInstance($type, $prefix, $config);

Expand All @@ -155,7 +155,7 @@ public function getItem($pk = null)
$result = parent::getItem($pk);

// Convert the params field to an array.
$result->rules = json_decode($result->rules);
$result->rules = $result->rules !== null ? json_decode($result->rules) : [];

return $result;
}
Expand All @@ -170,7 +170,7 @@ public function getItem($pk = null)
*
* @since 1.6
*/
public function getForm($data = array(), $loadData = true)
public function getForm($data = [], $loadData = true)
{
// Get the form.
$form = $this->loadForm('com_users.level', 'level', array('control' => 'jform', 'load_data' => $loadData));
Expand All @@ -193,7 +193,7 @@ public function getForm($data = array(), $loadData = true)
protected function loadFormData()
{
// Check the session for previously entered form data.
$data = Factory::getApplication()->getUserState('com_users.edit.level.data', array());
$data = Factory::getApplication()->getUserState('com_users.edit.level.data', []);

if (empty($data)) {
$data = $this->getItem();
Expand Down Expand Up @@ -234,7 +234,7 @@ protected function preprocessForm(Form $form, $data, $group = '')
public function save($data)
{
if (!isset($data['rules'])) {
$data['rules'] = array();
$data['rules'] = [];
}

$data['title'] = InputFilter::getInstance()->clean($data['title'], 'TRIM');
Expand Down Expand Up @@ -262,12 +262,12 @@ public function validate($form, $data, $group = null)
// Non Super user should not be able to change the access levels of super user groups
if (!$isSuperAdmin) {
if (!isset($data['rules']) || !is_array($data['rules'])) {
$data['rules'] = array();
$data['rules'] = [];
}

$groups = array_values(UserGroupsHelper::getInstance()->getAll());

$rules = array();
$rules = [];

if (!empty($data['id'])) {
$table = $this->getTable();
Expand Down
17 changes: 12 additions & 5 deletions administrator/modules/mod_submenu/src/Menu/Menu.php
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,12 @@ public static function preprocess($parent)
continue;
}

if ($item->element === 'com_fields') {
// Exclude item if the component is not authorised
$assetName = $item->element;

if ($item->element === 'com_categories') {
$assetName = $query['extension'] ?? 'com_content';
} elseif ($item->element === 'com_fields') {
parse_str($item->link, $query);

// Only display Fields menus when enabled in the component
Expand All @@ -156,7 +161,7 @@ public static function preprocess($parent)
if (isset($query['extension'])) {
$parts = explode('.', $query['extension']);

$workflow = ComponentHelper::getParams($parts[0])->get('workflow_enabled');
$workflow = ComponentHelper::getParams($parts[0])->get('workflow_enabled') && $user->authorise('core.manage.workflow', $parts[0]);
}

if (!$workflow) {
Expand Down Expand Up @@ -184,9 +189,6 @@ public static function preprocess($parent)
$parent->removeChild($item);
continue;
}
} elseif ($item->element && !$user->authorise(($item->scope === 'edit') ? 'core.create' : 'core.manage', $item->element)) {
$parent->removeChild($item);
continue;
} elseif ($item->element === 'com_menus') {
// Get badges for Menus containing a Home page.
$iconImage = $item->icon;
Expand All @@ -203,6 +205,11 @@ public static function preprocess($parent)
}
}

if ($assetName && !$user->authorise(($item->scope === 'edit') ? 'core.create' : 'core.manage', $assetName)) {
$parent->removeChild($item);
continue;
}

if ($item->hasChildren()) {
self::preprocess($item);
}
Expand Down
21 changes: 11 additions & 10 deletions administrator/templates/atum/error_full.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,18 +37,19 @@

// Template params
$logoBrandLarge = $this->params->get('logoBrandLarge')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-large.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-large.svg';
$logoBrandSmall = $this->params->get('logoBrandSmall')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-small.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-small.svg';

$logoBrandLargeAlt = empty($this->params->get('logoBrandLargeAlt')) && empty($this->params->get('emptyLogoBrandLargeAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8');
$logoBrandSmallAlt = empty($this->params->get('logoBrandSmallAlt')) && empty($this->params->get('emptyLogoBrandSmallAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8');


// Get the hue value
preg_match('#^hsla?\(([0-9]+)[\D]+([0-9]+)[\D]+([0-9]+)[\D]+([0-9](?:.\d+)?)?\)$#i', $this->params->get('hue', 'hsl(214, 63%, 20%)'), $matches);
Expand Down Expand Up @@ -97,8 +98,8 @@
<div class="header-title d-flex">
<div class="d-flex align-items-center">
<div class="logo">
<img src="<?php echo $logoBrandLarge; ?>" <?php echo $logoBrandLargeAlt; ?>>
<img class="logo-collapsed" src="<?php echo $logoBrandSmall; ?>" <?php echo $logoBrandSmallAlt; ?>>
<?php echo HTMLHelper::_('image', $logoBrandLarge, $logoBrandLargeAlt, ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
<?php echo HTMLHelper::_('image', $logoBrandSmall, $logoBrandSmallAlt, ['class' => 'logo-collapsed', 'loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</div>
</div>
<jdoc:include type="modules" name="title" />
Expand Down
27 changes: 11 additions & 16 deletions administrator/templates/atum/error_login.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,19 @@

// Template params
$logoBrandLarge = $this->params->get('logoBrandLarge')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-large.svg';
$loginLogo = $this->params->get('loginLogo')
? Uri::root() . $this->params->get('loginLogo')
: Uri::root() . 'media/templates/administrator/atum/images/logos/login.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-large.svg';
$logoBrandSmall = $this->params->get('logoBrandSmall')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-small.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-small.svg';

$logoBrandLargeAlt = empty($this->params->get('logoBrandLargeAlt')) && empty($this->params->get('emptyLogoBrandLargeAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8');
$logoBrandSmallAlt = empty($this->params->get('logoBrandSmallAlt')) && empty($this->params->get('emptyLogoBrandSmallAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
$loginLogoAlt = empty($this->params->get('loginLogoAlt')) && empty($this->params->get('emptyLoginLogoAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('loginLogoAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8');


// Get the hue value
preg_match('#^hsla?\(([0-9]+)[\D]+([0-9]+)[\D]+([0-9]+)[\D]+([0-9](?:.\d+)?)?\)$#i', $this->params->get('hue', 'hsl(214, 63%, 20%)'), $matches);
Expand Down Expand Up @@ -101,8 +96,8 @@
<div class="header-title d-flex">
<div class="d-flex align-items-center">
<div class="logo">
<img src="<?php echo $logoBrandLarge; ?>" <?php echo $logoBrandLargeAlt; ?>>
<img class="logo-collapsed" src="<?php echo $logoBrandSmall; ?>" <?php echo $logoBrandSmallAlt; ?>>
<?php echo HTMLHelper::_('image', $logoBrandLarge, $logoBrandLargeAlt, ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
<?php echo HTMLHelper::_('image', $logoBrandSmall, $logoBrandSmallAlt, ['class' => 'logo-collapsed', 'loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</div>
</div>
<jdoc:include type="modules" name="title" />
Expand Down
24 changes: 12 additions & 12 deletions administrator/templates/atum/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@

// Template params
$logoBrandLarge = $this->params->get('logoBrandLarge')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-large.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-large.svg';
$logoBrandSmall = $this->params->get('logoBrandSmall')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-small.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-small.svg';

$logoBrandLargeAlt = empty($this->params->get('logoBrandLargeAlt')) && empty($this->params->get('emptyLogoBrandLargeAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8');
$logoBrandSmallAlt = empty($this->params->get('logoBrandSmallAlt')) && empty($this->params->get('emptyLogoBrandSmallAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8');

// Get the hue value
preg_match('#^hsla?\(([0-9]+)[\D]+([0-9]+)[\D]+([0-9]+)[\D]+([0-9](?:.\d+)?)?\)$#i', $this->params->get('hue', 'hsl(214, 63%, 20%)'), $matches);
Expand Down Expand Up @@ -112,13 +112,13 @@
<?php // No home link in edit mode (so users can not jump out) and control panel (for a11y reasons) ?>
<?php if ($hiddenMenu || $cpanel) : ?>
<div class="logo <?php echo $sidebarState === 'closed' ? 'small' : ''; ?>">
<img src="<?php echo $logoBrandLarge; ?>" <?php echo $logoBrandLargeAlt; ?>>
<img class="logo-collapsed" src="<?php echo $logoBrandSmall; ?>" <?php echo $logoBrandSmallAlt; ?>>
<?php echo HTMLHelper::_('image', $logoBrandLarge, $logoBrandLargeAlt, ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
<?php echo HTMLHelper::_('image', $logoBrandSmall, $logoBrandSmallAlt, ['class' => 'logo-collapsed', 'loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</div>
<?php else : ?>
<a class="logo <?php echo $sidebarState === 'closed' ? 'small' : ''; ?>" href="<?php echo Route::_('index.php'); ?>">
<img src="<?php echo $logoBrandLarge; ?>" alt="<?php echo Text::_('TPL_ATUM_BACK_TO_CONTROL_PANEL'); ?>">
<img class="logo-collapsed" src="<?php echo $logoBrandSmall; ?>" alt="<?php echo Text::_('TPL_ATUM_BACK_TO_CONTROL_PANEL'); ?>">
<?php echo HTMLHelper::_('image', $logoBrandLarge, Text::_('TPL_ATUM_BACK_TO_CONTROL_PANEL'), ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
<?php echo HTMLHelper::_('image', $logoBrandSmall, Text::_('TPL_ATUM_BACK_TO_CONTROL_PANEL'), ['class' => 'logo-collapsed', 'loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</a>
<?php endif; ?>
</div>
Expand Down
29 changes: 14 additions & 15 deletions administrator/templates/atum/login.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,24 +36,23 @@

// Template params
$logoBrandLarge = $this->params->get('logoBrandLarge')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-large.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandLarge'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-large.svg';
$loginLogo = $this->params->get('loginLogo')
? Uri::root() . $this->params->get('loginLogo')
: Uri::root() . 'media/templates/administrator/atum/images/logos/login.svg';
? Uri::root(false) . $this->params->get('loginLogo')
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/login.svg';
$logoBrandSmall = $this->params->get('logoBrandSmall')
? Uri::root() . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root() . 'media/templates/administrator/atum/images/logos/brand-small.svg';
? Uri::root(false) . htmlspecialchars($this->params->get('logoBrandSmall'), ENT_QUOTES)
: Uri::root(false) . 'media/templates/administrator/atum/images/logos/brand-small.svg';

$logoBrandLargeAlt = empty($this->params->get('logoBrandLargeAlt')) && empty($this->params->get('emptyLogoBrandLargeAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('logoBrandLargeAlt', ''), ENT_COMPAT, 'UTF-8');
$logoBrandSmallAlt = empty($this->params->get('logoBrandSmallAlt')) && empty($this->params->get('emptyLogoBrandSmallAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? '' : htmlspecialchars($this->params->get('logoBrandSmallAlt', ''), ENT_COMPAT, 'UTF-8');
$loginLogoAlt = empty($this->params->get('loginLogoAlt')) && empty($this->params->get('emptyLoginLogoAlt'))
? 'alt=""'
: 'alt="' . htmlspecialchars($this->params->get('loginLogoAlt', ''), ENT_COMPAT, 'UTF-8') . '"';
? ''
: htmlspecialchars($this->params->get('loginLogoAlt', ''), ENT_COMPAT, 'UTF-8');

// Get the hue value
preg_match('#^hsla?\(([0-9]+)[\D]+([0-9]+)[\D]+([0-9]+)[\D]+([0-9](?:.\d+)?)?\)$#i', $this->params->get('hue', 'hsl(214, 63%, 20%)'), $matches);
Expand Down Expand Up @@ -113,8 +112,8 @@
<div class="header-title d-flex">
<div class="d-flex align-items-center">
<div class="logo">
<img src="<?php echo $logoBrandLarge; ?>" <?php echo $logoBrandLargeAlt; ?>>
<img class="logo-collapsed" src="<?php echo $logoBrandSmall; ?>" <?php echo $logoBrandSmallAlt; ?>>
<?php echo HTMLHelper::_('image', $logoBrandLarge, $logoBrandLargeAlt, ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
<?php echo HTMLHelper::_('image', $logoBrandSmall, $logoBrandSmallAlt, ['class' => 'logo-collapsed', 'loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</div>
</div>
<jdoc:include type="modules" name="title" />
Expand All @@ -131,7 +130,7 @@
<main class="d-flex justify-content-center align-items-center h-100">
<div class="login">
<div class="main-brand logo text-center">
<img src="<?php echo $loginLogo; ?>" <?php echo $loginLogoAlt; ?>>
<?php echo HTMLHelper::_('image', $loginLogo, $loginLogoAlt, ['loading' => 'eager', 'decoding' => 'async'], false, 0); ?>
</div>
<jdoc:include type="component" />
</div>
Expand Down
Loading