mirror of
https://github.com/joomla/joomla-cms.git
synced 2024-06-28 08:03:40 +00:00
Merge branch '4.0-dev' of github.com:joomla/joomla-cms into 4.1-dev
This commit is contained in:
commit
93a46a3696
|
@ -70,8 +70,8 @@ install:
|
|||
- IF %PHP%==1 echo zend_extension=php_opcache.dll >> php.ini
|
||||
- IF %PHP%==1 echo opcache.enable_cli=1 >> php.ini
|
||||
- IF %PHP%==1 echo extension=php_ldap.dll >> php.ini
|
||||
- IF %PHP%==1 echo @php %%~dp0composer-1.phar %%* > composer.bat
|
||||
- IF %PHP%==1 appveyor-retry appveyor DownloadFile https://getcomposer.org/composer-1.phar
|
||||
- IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
|
||||
- IF %PHP%==1 appveyor-retry appveyor DownloadFile https://getcomposer.org/download/latest-1.x/composer.phar
|
||||
- cd C:\projects\joomla-cms
|
||||
- appveyor-retry composer install --no-progress --profile
|
||||
before_test:
|
||||
|
|
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
|
@ -45,8 +45,6 @@ RoboFile.php @rdeutz @hackwar
|
|||
|
||||
# CSP Tooling
|
||||
plugins/system/httpheaders/* @zero-24
|
||||
administrator/components/com_csp/* @zero-24
|
||||
components/com_csp/* @zero-24
|
||||
|
||||
# Web Authentication (WebAuthn)
|
||||
plugins/system/webauthn/* @nikosdion
|
||||
|
|
2
.github/SUPPORT.md
vendored
2
.github/SUPPORT.md
vendored
|
@ -5,4 +5,4 @@ Where can you get support and help?
|
|||
* Find the [information you need](https://docs.joomla.org/Special:MyLanguage/Start_here).
|
||||
* Find [help and other users](https://www.joomla.org/about-joomla/create-and-share.html).
|
||||
* Post questions at [our forums](https://forum.joomla.org).
|
||||
* [Joomla Resources Directory](https://resources.joomla.org) (JRD).
|
||||
* [Joomla Resources Directory](https://community.joomla.org/service-providers-directory/) (JRD).
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Joomla! CMS™ [![Analytics](https://ga-beacon.appspot.com/UA-544070-3/joomla-cms/readme)](https://github.com/igrigorik/ga-beacon)
|
||||
Joomla! CMS™ [![Analytics](https://ga-beacon.appspot.com/UA-544070-3/joomla-cms/readme)](https://github.com/igrigorik/ga-beacon)
|
||||
====================
|
||||
|
||||
Build Status
|
||||
|
|
|
@ -52,7 +52,7 @@ Joomla! CMS™
|
|||
* Find the information you need: https://docs.joomla.org/Special:MyLanguage/Start_here
|
||||
* Find help and other users: https://www.joomla.org/about-joomla/create-and-share.html
|
||||
* Post questions at our forums: https://forum.joomla.org
|
||||
* Joomla! Resources Directory (JRD): https://resources.joomla.org/
|
||||
* Joomla! Resources Directory (JRD): https://community.joomla.org/service-providers-directory/
|
||||
|
||||
11- Do you already have a Joomla! site that's not built with Joomla! 4.x ?
|
||||
* What's new in Joomla! 4.x: https://www.joomla.org/4
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_admin
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Filesystem\File;
|
||||
use Joomla\Registry\Registry;
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
/**
|
||||
* Notifies users of the new Behind Load Balancer option in Global Config, if we detect they might be behind a proxy
|
||||
*
|
||||
* @return boolean
|
||||
*
|
||||
* @since 3.9.26
|
||||
*/
|
||||
function admin_postinstall_behindproxy_condition()
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
if ($app->get('behind_loadbalancer', '0'))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (array_key_exists('HTTP_CLIENT_IP', $_SERVER) && !empty($_SERVER['HTTP_CLIENT_IP']))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Enables the Behind Load Balancer setting in Global Configuration
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 3.9.26
|
||||
*/
|
||||
function behindproxy_postinstall_action()
|
||||
{
|
||||
$prev = ArrayHelper::fromObject(new JConfig);
|
||||
$data = array_merge($prev, array('behind_loadbalancer' => '1'));
|
||||
|
||||
$config = new Registry($data);
|
||||
|
||||
jimport('joomla.filesystem.path');
|
||||
jimport('joomla.filesystem.file');
|
||||
|
||||
// Set the configuration file path.
|
||||
$file = JPATH_CONFIGURATION . '/configuration.php';
|
||||
|
||||
// Get the new FTP credentials.
|
||||
$ftp = JClientHelper::getCredentials('ftp', true);
|
||||
|
||||
// Attempt to make the file writeable if using FTP.
|
||||
if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0644'))
|
||||
{
|
||||
JError::raiseNotice(500, JText::_('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTWRITABLE'));
|
||||
}
|
||||
|
||||
// Attempt to write the configuration file as a PHP class named JConfig.
|
||||
$configuration = $config->toString('PHP', array('class' => 'JConfig', 'closingtag' => false));
|
||||
|
||||
if (!File::write($file, $configuration))
|
||||
{
|
||||
JFactory::getApplication()->enqueueMessage(JText::_('COM_CONFIG_ERROR_WRITE_FAILED'), 'error');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Attempt to make the file unwriteable if NOT using FTP.
|
||||
if (!$ftp['enabled'] && JPath::isOwner($file) && !JPath::setPermissions($file, '0444'))
|
||||
{
|
||||
JError::raiseNotice(500, JText::_('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTUNWRITABLE'));
|
||||
}
|
||||
}
|
|
@ -9,7 +9,6 @@
|
|||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Extension\ExtensionHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filesystem\File;
|
||||
|
@ -18,8 +17,6 @@ use Joomla\CMS\Installer\Installer;
|
|||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Log\Log;
|
||||
use Joomla\CMS\Table\Table;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
use Joomla\Component\Config\Administrator\Model\ComponentModel;
|
||||
use Joomla\Component\Fields\Administrator\Model\FieldModel;
|
||||
use Joomla\Database\ParameterType;
|
||||
|
||||
|
@ -581,7 +578,7 @@ class JoomlaInstallerScript
|
|||
];
|
||||
|
||||
$files = array(
|
||||
// Joomla 4.0 Beta 1
|
||||
// From 3.10 to 4.0
|
||||
'/administrator/components/com_actionlogs/actionlogs.php',
|
||||
'/administrator/components/com_actionlogs/controller.php',
|
||||
'/administrator/components/com_actionlogs/controllers/actionlogs.php',
|
||||
|
@ -611,7 +608,9 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_admin/models/profile.php',
|
||||
'/administrator/components/com_admin/models/sysinfo.php',
|
||||
'/administrator/components/com_admin/postinstall/eaccelerator.php',
|
||||
'/administrator/components/com_admin/postinstall/htaccess.php',
|
||||
'/administrator/components/com_admin/postinstall/joomla40checks.php',
|
||||
'/administrator/components/com_admin/postinstall/updatedefaultsettings.php',
|
||||
'/administrator/components/com_admin/sql/others/mysql/utf8mb4-conversion-01.sql',
|
||||
'/administrator/components/com_admin/sql/others/mysql/utf8mb4-conversion-02.sql',
|
||||
'/administrator/components/com_admin/sql/others/mysql/utf8mb4-conversion-03.sql',
|
||||
|
@ -744,6 +743,9 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_admin/sql/updates/mysql/3.9.16-2020-03-04.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.19-2020-05-16.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.19-2020-06-01.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.21-2020-08-02.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.22-2020-09-16.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.26-2021-04-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.3-2019-01-12.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.3-2019-02-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/3.9.7-2019-04-23.sql',
|
||||
|
@ -856,6 +858,9 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.16-2020-02-15.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.16-2020-03-04.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.19-2020-06-01.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.21-2020-08-02.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.22-2020-09-16.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.26-2021-04-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.3-2019-01-12.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.3-2019-02-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/3.9.7-2019-04-23.sql',
|
||||
|
@ -973,6 +978,7 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.19-2020-06-01.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.21-2020-08-02.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.22-2020-09-16.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.26-2021-04-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.3-2019-01-12.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.3-2019-02-07.sql',
|
||||
'/administrator/components/com_admin/sql/updates/sqlazure/3.9.4-2019-03-06.sql',
|
||||
|
@ -1286,6 +1292,7 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_finder/helpers/indexer/driver/mysql.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/driver/postgresql.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/driver/sqlsrv.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/indexer.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/parser/html.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/parser/rtf.php',
|
||||
'/administrator/components/com_finder/helpers/indexer/parser/txt.php',
|
||||
|
@ -3169,6 +3176,7 @@ class JoomlaInstallerScript
|
|||
'/language/en-GB/en-GB.tpl_protostar.ini',
|
||||
'/language/en-GB/en-GB.tpl_protostar.sys.ini',
|
||||
'/language/en-GB/en-GB.xml',
|
||||
'/layouts/joomla/content/blog_style_default_links.php',
|
||||
'/layouts/joomla/content/icons/email.php',
|
||||
'/layouts/joomla/content/icons/print_popup.php',
|
||||
'/layouts/joomla/content/icons/print_screen.php',
|
||||
|
@ -3180,13 +3188,23 @@ class JoomlaInstallerScript
|
|||
'/layouts/joomla/html/formbehavior/chosen.php',
|
||||
'/layouts/joomla/html/sortablelist.php',
|
||||
'/layouts/joomla/html/tag.php',
|
||||
'/layouts/joomla/modal/body.php',
|
||||
'/layouts/joomla/modal/footer.php',
|
||||
'/layouts/joomla/modal/header.php',
|
||||
'/layouts/joomla/modal/iframe.php',
|
||||
'/layouts/joomla/modal/main.php',
|
||||
'/layouts/joomla/sidebars/toggle.php',
|
||||
'/layouts/joomla/tinymce/buttons.php',
|
||||
'/layouts/joomla/tinymce/buttons/button.php',
|
||||
'/layouts/joomla/toolbar/confirm.php',
|
||||
'/layouts/joomla/toolbar/help.php',
|
||||
'/layouts/joomla/toolbar/modal.php',
|
||||
'/layouts/joomla/toolbar/slider.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/addtab.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/addtabscript.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/endtab.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/endtabset.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/starttabset.php',
|
||||
'/layouts/libraries/cms/html/bootstrap/starttabsetscript.php',
|
||||
'/libraries/cms/class/loader.php',
|
||||
'/libraries/cms/html/access.php',
|
||||
|
@ -3821,6 +3839,7 @@ class JoomlaInstallerScript
|
|||
'/libraries/vendor/joomla/compat/src/CallbackFilterIterator.php',
|
||||
'/libraries/vendor/joomla/compat/src/JsonSerializable.php',
|
||||
'/libraries/vendor/joomla/event/src/DelegatingDispatcher.php',
|
||||
'/libraries/vendor/joomla/filesystem/src/Stream/String.php',
|
||||
'/libraries/vendor/joomla/image/LICENSE',
|
||||
'/libraries/vendor/joomla/image/src/Filter/Backgroundfill.php',
|
||||
'/libraries/vendor/joomla/image/src/Filter/Brightness.php',
|
||||
|
@ -3862,7 +3881,6 @@ class JoomlaInstallerScript
|
|||
'/libraries/vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php',
|
||||
'/libraries/vendor/paragonie/random_compat/lib/random_bytes_openssl.php',
|
||||
'/libraries/vendor/paragonie/random_compat/lib/random_int.php',
|
||||
'/libraries/vendor/paragonie/sodium_compat/src/Core/Xsalsa20.php',
|
||||
'/libraries/vendor/paragonie/sodium_compat/src/Core32/Curve25519/README.md',
|
||||
'/libraries/vendor/phpmailer/phpmailer/PHPMailerAutoload.php',
|
||||
'/libraries/vendor/phpmailer/phpmailer/class.phpmailer.php',
|
||||
|
@ -4770,6 +4788,7 @@ class JoomlaInstallerScript
|
|||
'/media/overrider/css/overrider.css',
|
||||
'/media/overrider/js/overrider.js',
|
||||
'/media/overrider/js/overrider.min.js',
|
||||
'/media/plg_system_highlight/highlight.css',
|
||||
'/media/plg_twofactorauth_totp/js/qrcode.js',
|
||||
'/media/plg_twofactorauth_totp/js/qrcode.min.js',
|
||||
'/media/plg_twofactorauth_totp/js/qrcode_SJIS.js',
|
||||
|
@ -5099,14 +5118,29 @@ class JoomlaInstallerScript
|
|||
'/templates/system/images/j_button2_readmore.png',
|
||||
'/templates/system/images/j_button2_right.png',
|
||||
'/templates/system/images/selector-arrow.png',
|
||||
// Joomla 4.0 Beta 3
|
||||
'/administrator/templates/atum/images/logo.svg',
|
||||
// 4.0 from Beta 1 to Beta 2
|
||||
'/administrator/components/com_finder/src/Indexer/Driver/Mysql.php',
|
||||
'/administrator/components/com_finder/src/Indexer/Driver/Postgresql.php',
|
||||
'/administrator/components/com_workflow/access.xml',
|
||||
'/api/components/com_installer/src/Controller/LanguagesController.php',
|
||||
'/api/components/com_installer/src/View/Languages/JsonapiView.php',
|
||||
'/libraries/vendor/joomla/controller/LICENSE',
|
||||
'/libraries/vendor/joomla/controller/src/AbstractController.php',
|
||||
'/libraries/vendor/joomla/controller/src/ControllerInterface.php',
|
||||
'/media/com_users/js/admin-users-user.es6.js',
|
||||
'/media/com_users/js/admin-users-user.es6.min.js',
|
||||
'/media/com_users/js/admin-users-user.es6.min.js.gz',
|
||||
'/media/com_users/js/admin-users-user.js',
|
||||
'/media/com_users/js/admin-users-user.min.js',
|
||||
'/media/com_users/js/admin-users-user.min.js.gz',
|
||||
// 4.0 from Beta 2 to Beta 3
|
||||
'/administrator/templates/atum/images/logo-blue.svg',
|
||||
'/administrator/templates/atum/images/logo-joomla-blue.svg',
|
||||
'/administrator/templates/atum/images/logo-joomla-white.svg',
|
||||
// Joomla 4.0 Beta 4
|
||||
'/administrator/templates/atum/images/logo.svg',
|
||||
// 4.0 from Beta 3 to Beta 4
|
||||
'/components/com_config/src/Model/CmsModel.php',
|
||||
// Joomla 4.0 Beta 5
|
||||
// 4.0 from Beta 4 to Beta 5
|
||||
'/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-11.sql',
|
||||
'/administrator/components/com_admin/sql/updates/mysql/4.0.0-2020-04-18.sql',
|
||||
'/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-11.sql',
|
||||
|
@ -5116,39 +5150,564 @@ class JoomlaInstallerScript
|
|||
'/administrator/language/en-GB/plg_fields_image.ini',
|
||||
'/administrator/language/en-GB/plg_fields_image.sys.ini',
|
||||
'/administrator/templates/atum/scss/vendor/bootstrap/_nav.scss',
|
||||
'/cli/finder_indexer.php',
|
||||
'/components/com_users/layouts/joomla/form/renderfield.php',
|
||||
'/libraries/vendor/spomky-labs/base64url/phpstan.neon',
|
||||
'/media/plg_system_webauthn/images/webauthn-black.png',
|
||||
'/media/plg_system_webauthn/images/webauthn-color.png',
|
||||
'/media/plg_system_webauthn/images/webauthn-white.png',
|
||||
'/media/system/css/system.css',
|
||||
'/media/system/css/system.min.css',
|
||||
'/media/system/css/system.min.css.gz',
|
||||
'/media/system/images/notice-alert.png',
|
||||
'/media/system/images/notice-download.png',
|
||||
'/media/system/images/notice-info.png',
|
||||
'/media/system/images/notice-note.png',
|
||||
'/plugins/content/imagelazyload/imagelazyload.php',
|
||||
'/plugins/content/imagelazyload/imagelazyload.xml',
|
||||
'/templates/cassiopeia/html/layouts/chromes/cardGrey.php',
|
||||
'/templates/cassiopeia/html/layouts/chromes/default.php',
|
||||
'/templates/cassiopeia/scss/vendor/bootstrap/_card.scss',
|
||||
// Joomla 4.0 Beta 7
|
||||
'/media/vendor/skipto/js/dropMenu.js',
|
||||
// 4.0 from Beta 5 to Beta 6
|
||||
'/administrator/modules/mod_multilangstatus/src/Helper/MultilangstatusAdminHelper.php',
|
||||
'/administrator/templates/atum/favicon.ico',
|
||||
'/libraries/vendor/nyholm/psr7/phpstan.baseline.dist',
|
||||
'/libraries/vendor/spomky-labs/base64url/.php_cs.dist',
|
||||
'/libraries/vendor/spomky-labs/base64url/infection.json.dist',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.es6.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.es6.min.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.es6.min.js.gz',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.min.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-language.min.js.gz',
|
||||
'/media/plg_system_webauthn/images/webauthn-black.svg',
|
||||
'/media/plg_system_webauthn/images/webauthn-white.svg',
|
||||
'/media/system/js/core.es6/ajax.es6',
|
||||
'/media/system/js/core.es6/customevent.es6',
|
||||
'/media/system/js/core.es6/event.es6',
|
||||
'/media/system/js/core.es6/form.es6',
|
||||
'/media/system/js/core.es6/message.es6',
|
||||
'/media/system/js/core.es6/options.es6',
|
||||
'/media/system/js/core.es6/text.es6',
|
||||
'/media/system/js/core.es6/token.es6',
|
||||
'/media/system/js/core.es6/webcomponent.es6',
|
||||
'/templates/cassiopeia/favicon.ico',
|
||||
'/templates/cassiopeia/scss/_mixin.scss',
|
||||
'/templates/cassiopeia/scss/_variables.scss',
|
||||
'/templates/cassiopeia/scss/blocks/_demo-styling.scss',
|
||||
// 4.0 from Beta 6 to Beta 7
|
||||
'/media/legacy/js/bootstrap-init.js',
|
||||
'/media/legacy/js/bootstrap-init.min.js',
|
||||
'/media/legacy/js/bootstrap-init.min.js.gz',
|
||||
'/media/legacy/js/frontediting.js',
|
||||
'/media/legacy/js/frontediting.min.js',
|
||||
'/media/legacy/js/frontediting.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/bootstrap.bundle.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.bundle.min.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.bundle.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/bootstrap.bundle.min.js.map',
|
||||
'/media/vendor/bootstrap/js/bootstrap.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.min.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.min.js.gz',
|
||||
'/media/vendor/bootstrap/scss/_code.scss',
|
||||
'/media/vendor/bootstrap/scss/_custom-forms.scss',
|
||||
'/media/vendor/bootstrap/scss/_input-group.scss',
|
||||
'/media/vendor/bootstrap/scss/_jumbotron.scss',
|
||||
'/media/vendor/bootstrap/scss/_media.scss',
|
||||
'/media/vendor/bootstrap/scss/_print.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_background-variant.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_badge.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_float.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_grid-framework.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_hover.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_nav-divider.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_screen-reader.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_size.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_table-row.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_text-emphasis.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_text-hide.scss',
|
||||
'/media/vendor/bootstrap/scss/mixins/_visibility.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_align.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_background.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_borders.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_clearfix.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_display.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_embed.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_flex.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_float.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_interactions.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_overflow.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_position.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_screenreaders.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_shadows.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_sizing.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_spacing.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_stretched-link.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_text.scss',
|
||||
'/media/vendor/bootstrap/scss/utilities/_visibility.scss',
|
||||
'/media/vendor/skipto/css/SkipTo.css',
|
||||
// Joomla 4.0 Beta 8
|
||||
'/media/vendor/skipto/js/dropMenu.js',
|
||||
// 4.0 from Beta 7 to Beta 8
|
||||
'/administrator/components/com_admin/forms/profile.xml',
|
||||
'/administrator/components/com_admin/postinstall/htaccess.php',
|
||||
'/administrator/components/com_admin/postinstall/updatedefaultsettings.php',
|
||||
'/administrator/components/com_admin/src/Controller/ProfileController.php',
|
||||
'/administrator/components/com_admin/src/Model/ProfileModel.php',
|
||||
'/administrator/components/com_admin/src/View/Profile/HtmlView.php',
|
||||
'/administrator/components/com_csp/access.xml',
|
||||
'/administrator/components/com_csp/config.xml',
|
||||
'/administrator/components/com_csp/csp.xml',
|
||||
'/administrator/components/com_csp/forms/filter_reports.xml',
|
||||
'/administrator/components/com_csp/services/provider.php',
|
||||
'/administrator/components/com_csp/src/Controller/DisplayController.php',
|
||||
'/administrator/components/com_csp/src/Controller/ReportsController.php',
|
||||
'/administrator/components/com_csp/src/Helper/ReporterHelper.php',
|
||||
'/administrator/components/com_csp/src/Model/ReportModel.php',
|
||||
'/administrator/components/com_csp/src/Model/ReportsModel.php',
|
||||
'/administrator/components/com_csp/src/Table/ReportTable.php',
|
||||
'/administrator/components/com_csp/src/View/Reports/HtmlView.php',
|
||||
'/administrator/components/com_csp/tmpl/reports/default.php',
|
||||
'/administrator/components/com_csp/tmpl/reports/default.xml',
|
||||
'/administrator/components/com_admin/tmpl/profile/edit.php',
|
||||
'/administrator/components/com_config/tmpl/application/default_ftp.php',
|
||||
'/administrator/components/com_config/tmpl/application/default_ftplogin.php',
|
||||
'/administrator/components/com_fields/src/Field/SubfieldstypeField.php',
|
||||
'/administrator/components/com_installer/tmpl/installer/default_ftp.php',
|
||||
'/administrator/components/com_joomlaupdate/src/Helper/Select.php',
|
||||
'/administrator/language/en-GB/com_csp.ini',
|
||||
'/administrator/language/en-GB/com_csp.sys.ini',
|
||||
'/administrator/language/en-GB/plg_fields_subfields.ini',
|
||||
'/administrator/language/en-GB/plg_fields_subfields.sys.ini',
|
||||
'/administrator/templates/atum/Service/HTML/Atum.php',
|
||||
'/components/com_csp/src/Controller/ReportController.php',
|
||||
'/components/com_menus/src/Controller/DisplayController.php',
|
||||
'/libraries/vendor/beberlei/assert/phpstan-code.neon',
|
||||
'/libraries/vendor/beberlei/assert/phpstan-tests.neon',
|
||||
'/libraries/vendor/nyholm/psr7/src/LowercaseTrait.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/LICENSE.md',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/BaseColor.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Factory.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Hex.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Hsl.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Hsla.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Hsv.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Rgb.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color/Rgba.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Exceptions/AmbiguousColorString.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Exceptions/InvalidColorException.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Helpers/DefinedColor.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Traits/AlphaTrait.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Traits/HsTrait.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Traits/HslTrait.php',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Traits/RgbTrait.php',
|
||||
'/libraries/vendor/willdurand/negotiation/src/Negotiation/Match.php',
|
||||
'/media/com_actionlogs/js/admin-actionlogs-default.es6.js',
|
||||
'/media/com_actionlogs/js/admin-actionlogs-default.es6.min.js',
|
||||
'/media/com_actionlogs/js/admin-actionlogs-default.es6.min.js.gz',
|
||||
'/media/com_associations/js/admin-associations-default.es6.js',
|
||||
'/media/com_associations/js/admin-associations-default.es6.min.js',
|
||||
'/media/com_associations/js/admin-associations-default.es6.min.js.gz',
|
||||
'/media/com_associations/js/admin-associations-modal.es6.js',
|
||||
'/media/com_associations/js/admin-associations-modal.es6.min.js',
|
||||
'/media/com_associations/js/admin-associations-modal.es6.min.js.gz',
|
||||
'/media/com_associations/js/associations-edit.es6.js',
|
||||
'/media/com_associations/js/associations-edit.es6.min.js',
|
||||
'/media/com_associations/js/associations-edit.es6.min.js.gz',
|
||||
'/media/com_banners/js/admin-banner-edit.es6.js',
|
||||
'/media/com_banners/js/admin-banner-edit.es6.min.js',
|
||||
'/media/com_banners/js/admin-banner-edit.es6.min.js.gz',
|
||||
'/media/com_cache/js/admin-cache-default.es6.js',
|
||||
'/media/com_cache/js/admin-cache-default.es6.min.js',
|
||||
'/media/com_cache/js/admin-cache-default.es6.min.js.gz',
|
||||
'/media/com_categories/js/shared-categories-accordion.es6.js',
|
||||
'/media/com_categories/js/shared-categories-accordion.es6.min.js',
|
||||
'/media/com_categories/js/shared-categories-accordion.es6.min.js.gz',
|
||||
'/media/com_config/js/config-default.es6.js',
|
||||
'/media/com_config/js/config-default.es6.min.js',
|
||||
'/media/com_config/js/config-default.es6.min.js.gz',
|
||||
'/media/com_config/js/modules-default.es6.js',
|
||||
'/media/com_config/js/modules-default.es6.min.js',
|
||||
'/media/com_config/js/modules-default.es6.min.js.gz',
|
||||
'/media/com_config/js/templates-default.es6.js',
|
||||
'/media/com_config/js/templates-default.es6.min.js',
|
||||
'/media/com_config/js/templates-default.es6.min.js.gz',
|
||||
'/media/com_contact/js/admin-contacts-modal.es6.js',
|
||||
'/media/com_contact/js/admin-contacts-modal.es6.min.js',
|
||||
'/media/com_contact/js/admin-contacts-modal.es6.min.js.gz',
|
||||
'/media/com_contact/js/contacts-list.es6.js',
|
||||
'/media/com_contact/js/contacts-list.es6.min.js',
|
||||
'/media/com_contact/js/contacts-list.es6.min.js.gz',
|
||||
'/media/com_content/js/admin-article-pagebreak.es6.js',
|
||||
'/media/com_content/js/admin-article-pagebreak.es6.min.js',
|
||||
'/media/com_content/js/admin-article-pagebreak.es6.min.js.gz',
|
||||
'/media/com_content/js/admin-article-readmore.es6.js',
|
||||
'/media/com_content/js/admin-article-readmore.es6.min.js',
|
||||
'/media/com_content/js/admin-article-readmore.es6.min.js.gz',
|
||||
'/media/com_content/js/admin-articles-default-batch-footer.es6.js',
|
||||
'/media/com_content/js/admin-articles-default-batch-footer.es6.min.js',
|
||||
'/media/com_content/js/admin-articles-default-batch-footer.es6.min.js.gz',
|
||||
'/media/com_content/js/admin-articles-default-stage-footer.es6.js',
|
||||
'/media/com_content/js/admin-articles-default-stage-footer.es6.min.js',
|
||||
'/media/com_content/js/admin-articles-default-stage-footer.es6.min.js.gz',
|
||||
'/media/com_content/js/admin-articles-modal.es6.js',
|
||||
'/media/com_content/js/admin-articles-modal.es6.min.js',
|
||||
'/media/com_content/js/admin-articles-modal.es6.min.js.gz',
|
||||
'/media/com_content/js/articles-list.es6.js',
|
||||
'/media/com_content/js/articles-list.es6.min.js',
|
||||
'/media/com_content/js/articles-list.es6.min.js.gz',
|
||||
'/media/com_content/js/form-edit.es6.js',
|
||||
'/media/com_content/js/form-edit.es6.min.js',
|
||||
'/media/com_content/js/form-edit.es6.min.js.gz',
|
||||
'/media/com_contenthistory/js/admin-compare-compare.es6.js',
|
||||
'/media/com_contenthistory/js/admin-compare-compare.es6.min.js',
|
||||
'/media/com_contenthistory/js/admin-compare-compare.es6.min.js.gz',
|
||||
'/media/com_contenthistory/js/admin-history-modal.es6.js',
|
||||
'/media/com_contenthistory/js/admin-history-modal.es6.min.js',
|
||||
'/media/com_contenthistory/js/admin-history-modal.es6.min.js.gz',
|
||||
'/media/com_contenthistory/js/admin-history-versions.es6.js',
|
||||
'/media/com_contenthistory/js/admin-history-versions.es6.min.js',
|
||||
'/media/com_contenthistory/js/admin-history-versions.es6.min.js.gz',
|
||||
'/media/com_cpanel/js/admin-add_module.es6.js',
|
||||
'/media/com_cpanel/js/admin-add_module.es6.min.js',
|
||||
'/media/com_cpanel/js/admin-add_module.es6.min.js.gz',
|
||||
'/media/com_cpanel/js/admin-cpanel-default.es6.js',
|
||||
'/media/com_cpanel/js/admin-cpanel-default.es6.min.js',
|
||||
'/media/com_cpanel/js/admin-cpanel-default.es6.min.js.gz',
|
||||
'/media/com_cpanel/js/admin-system-loader.es6.js',
|
||||
'/media/com_cpanel/js/admin-system-loader.es6.min.js',
|
||||
'/media/com_cpanel/js/admin-system-loader.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-field-changecontext.es6.js',
|
||||
'/media/com_fields/js/admin-field-changecontext.es6.min.js',
|
||||
'/media/com_fields/js/admin-field-changecontext.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-field-edit-modal.es6.js',
|
||||
'/media/com_fields/js/admin-field-edit-modal.es6.min.js',
|
||||
'/media/com_fields/js/admin-field-edit-modal.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-field-edit.es6.js',
|
||||
'/media/com_fields/js/admin-field-edit.es6.min.js',
|
||||
'/media/com_fields/js/admin-field-edit.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-field-typehaschanged.es6.js',
|
||||
'/media/com_fields/js/admin-field-typehaschanged.es6.min.js',
|
||||
'/media/com_fields/js/admin-field-typehaschanged.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-fields-default-batch.es6.js',
|
||||
'/media/com_fields/js/admin-fields-default-batch.es6.min.js',
|
||||
'/media/com_fields/js/admin-fields-default-batch.es6.min.js.gz',
|
||||
'/media/com_fields/js/admin-fields-modal.es6.js',
|
||||
'/media/com_fields/js/admin-fields-modal.es6.min.js',
|
||||
'/media/com_fields/js/admin-fields-modal.es6.min.js.gz',
|
||||
'/media/com_finder/js/filters.es6.js',
|
||||
'/media/com_finder/js/filters.es6.min.js',
|
||||
'/media/com_finder/js/filters.es6.min.js.gz',
|
||||
'/media/com_finder/js/finder-edit.es6.js',
|
||||
'/media/com_finder/js/finder-edit.es6.min.js',
|
||||
'/media/com_finder/js/finder-edit.es6.min.js.gz',
|
||||
'/media/com_finder/js/finder.es6.js',
|
||||
'/media/com_finder/js/finder.es6.min.js',
|
||||
'/media/com_finder/js/finder.es6.min.js.gz',
|
||||
'/media/com_finder/js/index.es6.js',
|
||||
'/media/com_finder/js/index.es6.min.js',
|
||||
'/media/com_finder/js/index.es6.min.js.gz',
|
||||
'/media/com_finder/js/indexer.es6.js',
|
||||
'/media/com_finder/js/indexer.es6.min.js',
|
||||
'/media/com_finder/js/indexer.es6.min.js.gz',
|
||||
'/media/com_finder/js/maps.es6.js',
|
||||
'/media/com_finder/js/maps.es6.min.js',
|
||||
'/media/com_finder/js/maps.es6.min.js.gz',
|
||||
'/media/com_installer/js/changelog.es6.js',
|
||||
'/media/com_installer/js/changelog.es6.min.js',
|
||||
'/media/com_installer/js/changelog.es6.min.js.gz',
|
||||
'/media/com_installer/js/installer.es6.js',
|
||||
'/media/com_installer/js/installer.es6.min.js',
|
||||
'/media/com_installer/js/installer.es6.min.js.gz',
|
||||
'/media/com_joomlaupdate/js/admin-update-default.es6.js',
|
||||
'/media/com_joomlaupdate/js/admin-update-default.es6.min.js',
|
||||
'/media/com_joomlaupdate/js/admin-update-default.es6.min.js.gz',
|
||||
'/media/com_languages/js/admin-language-edit-change-flag.es6.js',
|
||||
'/media/com_languages/js/admin-language-edit-change-flag.es6.min.js',
|
||||
'/media/com_languages/js/admin-language-edit-change-flag.es6.min.js.gz',
|
||||
'/media/com_languages/js/admin-override-edit-refresh-searchstring.es6.js',
|
||||
'/media/com_languages/js/admin-override-edit-refresh-searchstring.es6.min.js',
|
||||
'/media/com_languages/js/admin-override-edit-refresh-searchstring.es6.min.js.gz',
|
||||
'/media/com_languages/js/overrider.es6.js',
|
||||
'/media/com_languages/js/overrider.es6.min.js',
|
||||
'/media/com_languages/js/overrider.es6.min.js.gz',
|
||||
'/media/com_mails/js/admin-email-template-edit.es6.js',
|
||||
'/media/com_mails/js/admin-email-template-edit.es6.min.js',
|
||||
'/media/com_mails/js/admin-email-template-edit.es6.min.js.gz',
|
||||
'/media/com_media/css/mediamanager.min.css',
|
||||
'/media/com_media/css/mediamanager.min.css.gz',
|
||||
'/media/com_media/css/mediamanager.min.css.map',
|
||||
'/media/com_media/js/edit-images.es6.js',
|
||||
'/media/com_media/js/edit-images.es6.min.js',
|
||||
'/media/com_media/js/mediamanager.min.js',
|
||||
'/media/com_media/js/mediamanager.min.js.gz',
|
||||
'/media/com_media/js/mediamanager.min.js.map',
|
||||
'/media/com_menus/js/admin-item-edit.es6.js',
|
||||
'/media/com_menus/js/admin-item-edit.es6.min.js',
|
||||
'/media/com_menus/js/admin-item-edit.es6.min.js.gz',
|
||||
'/media/com_menus/js/admin-item-edit_container.es6.js',
|
||||
'/media/com_menus/js/admin-item-edit_container.es6.min.js',
|
||||
'/media/com_menus/js/admin-item-edit_container.es6.min.js.gz',
|
||||
'/media/com_menus/js/admin-item-edit_modules.es6.js',
|
||||
'/media/com_menus/js/admin-item-edit_modules.es6.min.js',
|
||||
'/media/com_menus/js/admin-item-edit_modules.es6.min.js.gz',
|
||||
'/media/com_menus/js/admin-item-modal.es6.js',
|
||||
'/media/com_menus/js/admin-item-modal.es6.min.js',
|
||||
'/media/com_menus/js/admin-item-modal.es6.min.js.gz',
|
||||
'/media/com_menus/js/admin-items-modal.es6.js',
|
||||
'/media/com_menus/js/admin-items-modal.es6.min.js',
|
||||
'/media/com_menus/js/admin-items-modal.es6.min.js.gz',
|
||||
'/media/com_menus/js/admin-menus-default.es6.js',
|
||||
'/media/com_menus/js/admin-menus-default.es6.min.js',
|
||||
'/media/com_menus/js/admin-menus-default.es6.min.js.gz',
|
||||
'/media/com_menus/js/default-batch-body.es6.js',
|
||||
'/media/com_menus/js/default-batch-body.es6.min.js',
|
||||
'/media/com_menus/js/default-batch-body.es6.min.js.gz',
|
||||
'/media/com_modules/js/admin-module-edit.es6.js',
|
||||
'/media/com_modules/js/admin-module-edit.es6.min.js',
|
||||
'/media/com_modules/js/admin-module-edit.es6.min.js.gz',
|
||||
'/media/com_modules/js/admin-module-edit_assignment.es6.js',
|
||||
'/media/com_modules/js/admin-module-edit_assignment.es6.min.js',
|
||||
'/media/com_modules/js/admin-module-edit_assignment.es6.min.js.gz',
|
||||
'/media/com_modules/js/admin-module-search.es6.js',
|
||||
'/media/com_modules/js/admin-module-search.es6.min.js',
|
||||
'/media/com_modules/js/admin-module-search.es6.min.js.gz',
|
||||
'/media/com_modules/js/admin-modules-modal.es6.js',
|
||||
'/media/com_modules/js/admin-modules-modal.es6.min.js',
|
||||
'/media/com_modules/js/admin-modules-modal.es6.min.js.gz',
|
||||
'/media/com_modules/js/admin-select-modal.es6.js',
|
||||
'/media/com_modules/js/admin-select-modal.es6.min.js',
|
||||
'/media/com_modules/js/admin-select-modal.es6.min.js.gz',
|
||||
'/media/com_tags/js/tag-default.es6.js',
|
||||
'/media/com_tags/js/tag-default.es6.min.js',
|
||||
'/media/com_tags/js/tag-default.es6.min.js.gz',
|
||||
'/media/com_tags/js/tag-list.es6.js',
|
||||
'/media/com_tags/js/tag-list.es6.min.js',
|
||||
'/media/com_tags/js/tag-list.es6.min.js.gz',
|
||||
'/media/com_tags/js/tags-default.es6.js',
|
||||
'/media/com_tags/js/tags-default.es6.min.js',
|
||||
'/media/com_tags/js/tags-default.es6.min.js.gz',
|
||||
'/media/com_templates/js/admin-template-compare.es6.js',
|
||||
'/media/com_templates/js/admin-template-compare.es6.min.js',
|
||||
'/media/com_templates/js/admin-template-compare.es6.min.js.gz',
|
||||
'/media/com_templates/js/admin-template-toggle-assignment.es6.js',
|
||||
'/media/com_templates/js/admin-template-toggle-assignment.es6.min.js',
|
||||
'/media/com_templates/js/admin-template-toggle-assignment.es6.min.js.gz',
|
||||
'/media/com_templates/js/admin-template-toggle-switch.es6.js',
|
||||
'/media/com_templates/js/admin-template-toggle-switch.es6.min.js',
|
||||
'/media/com_templates/js/admin-template-toggle-switch.es6.min.js.gz',
|
||||
'/media/com_templates/js/admin-templates-default.es6.js',
|
||||
'/media/com_templates/js/admin-templates-default.es6.min.js',
|
||||
'/media/com_templates/js/admin-templates-default.es6.min.js.gz',
|
||||
'/media/com_users/js/admin-users-groups.es6.js',
|
||||
'/media/com_users/js/admin-users-groups.es6.min.js',
|
||||
'/media/com_users/js/admin-users-groups.es6.min.js.gz',
|
||||
'/media/com_users/js/admin-users-mail.es6.js',
|
||||
'/media/com_users/js/admin-users-mail.es6.min.js',
|
||||
'/media/com_users/js/admin-users-mail.es6.min.js.gz',
|
||||
'/media/com_users/js/two-factor-switcher.es6.js',
|
||||
'/media/com_users/js/two-factor-switcher.es6.min.js',
|
||||
'/media/com_users/js/two-factor-switcher.es6.min.js.gz',
|
||||
'/media/com_workflow/js/admin-items-workflow-buttons.es6.js',
|
||||
'/media/com_workflow/js/admin-items-workflow-buttons.es6.min.js',
|
||||
'/media/com_workflow/js/admin-items-workflow-buttons.es6.min.js.gz',
|
||||
'/media/com_wrapper/js/iframe-height.es6.js',
|
||||
'/media/com_wrapper/js/iframe-height.es6.min.js',
|
||||
'/media/com_wrapper/js/iframe-height.es6.min.js.gz',
|
||||
'/media/layouts/js/joomla/form/field/category-change.es6.js',
|
||||
'/media/layouts/js/joomla/form/field/category-change.es6.min.js',
|
||||
'/media/layouts/js/joomla/form/field/category-change.es6.min.js.gz',
|
||||
'/media/layouts/js/joomla/html/batch/batch-copymove.es6.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-copymove.es6.min.js',
|
||||
'/media/layouts/js/joomla/html/batch/batch-copymove.es6.min.js.gz',
|
||||
'/media/legacy/js/highlighter.js',
|
||||
'/media/legacy/js/highlighter.min.js',
|
||||
'/media/legacy/js/highlighter.min.js.gz',
|
||||
'/media/mod_login/js/admin-login.es6.js',
|
||||
'/media/mod_login/js/admin-login.es6.min.js',
|
||||
'/media/mod_login/js/admin-login.es6.min.js.gz',
|
||||
'/media/mod_menu/js/admin-menu.es6.js',
|
||||
'/media/mod_menu/js/admin-menu.es6.min.js',
|
||||
'/media/mod_menu/js/admin-menu.es6.min.js.gz',
|
||||
'/media/mod_menu/js/menu.es6.js',
|
||||
'/media/mod_menu/js/menu.es6.min.js',
|
||||
'/media/mod_menu/js/menu.es6.min.js.gz',
|
||||
'/media/mod_multilangstatus/js/admin-multilangstatus.es6.js',
|
||||
'/media/mod_multilangstatus/js/admin-multilangstatus.es6.min.js',
|
||||
'/media/mod_multilangstatus/js/admin-multilangstatus.es6.min.js.gz',
|
||||
'/media/mod_quickicon/js/quickicon.es6.js',
|
||||
'/media/mod_quickicon/js/quickicon.es6.min.js',
|
||||
'/media/mod_quickicon/js/quickicon.es6.min.js.gz',
|
||||
'/media/mod_sampledata/js/sampledata-process.es6.js',
|
||||
'/media/mod_sampledata/js/sampledata-process.es6.min.js',
|
||||
'/media/mod_sampledata/js/sampledata-process.es6.min.js.gz',
|
||||
'/media/plg_captcha_recaptcha/js/recaptcha.es6.js',
|
||||
'/media/plg_captcha_recaptcha/js/recaptcha.es6.min.js',
|
||||
'/media/plg_captcha_recaptcha/js/recaptcha.es6.min.js.gz',
|
||||
'/media/plg_captcha_recaptcha_invisible/js/recaptcha.es6.js',
|
||||
'/media/plg_captcha_recaptcha_invisible/js/recaptcha.es6.min.js',
|
||||
'/media/plg_captcha_recaptcha_invisible/js/recaptcha.es6.min.js.gz',
|
||||
'/media/plg_editors_tinymce/js/plugins/dragdrop/plugin.es6.js',
|
||||
'/media/plg_editors_tinymce/js/plugins/dragdrop/plugin.es6.min.js',
|
||||
'/media/plg_editors_tinymce/js/plugins/dragdrop/plugin.es6.min.js.gz',
|
||||
'/media/plg_editors_tinymce/js/tinymce-builder.es6.js',
|
||||
'/media/plg_editors_tinymce/js/tinymce-builder.es6.min.js',
|
||||
'/media/plg_editors_tinymce/js/tinymce-builder.es6.min.js.gz',
|
||||
'/media/plg_editors_tinymce/js/tinymce.es6.js',
|
||||
'/media/plg_editors_tinymce/js/tinymce.es6.min.js',
|
||||
'/media/plg_editors_tinymce/js/tinymce.es6.min.js.gz',
|
||||
'/media/plg_installer_folderinstaller/js/folderinstaller.es6.js',
|
||||
'/media/plg_installer_folderinstaller/js/folderinstaller.es6.min.js',
|
||||
'/media/plg_installer_folderinstaller/js/folderinstaller.es6.min.js.gz',
|
||||
'/media/plg_installer_packageinstaller/js/packageinstaller.es6.js',
|
||||
'/media/plg_installer_packageinstaller/js/packageinstaller.es6.min.js',
|
||||
'/media/plg_installer_packageinstaller/js/packageinstaller.es6.min.js.gz',
|
||||
'/media/plg_installer_urlinstaller/js/urlinstaller.es6.js',
|
||||
'/media/plg_installer_urlinstaller/js/urlinstaller.es6.min.js',
|
||||
'/media/plg_installer_urlinstaller/js/urlinstaller.es6.min.js.gz',
|
||||
'/media/plg_installer_webinstaller/js/client.es6.js',
|
||||
'/media/plg_installer_webinstaller/js/client.es6.min.js',
|
||||
'/media/plg_installer_webinstaller/js/client.es6.min.js.gz',
|
||||
'/media/plg_media-action_crop/js/crop.es6.js',
|
||||
'/media/plg_media-action_crop/js/crop.es6.min.js',
|
||||
'/media/plg_media-action_crop/js/crop.es6.min.js.gz',
|
||||
'/media/plg_media-action_resize/js/resize.es6.js',
|
||||
'/media/plg_media-action_resize/js/resize.es6.min.js',
|
||||
'/media/plg_media-action_resize/js/resize.es6.min.js.gz',
|
||||
'/media/plg_media-action_rotate/js/rotate.es6.js',
|
||||
'/media/plg_media-action_rotate/js/rotate.es6.min.js',
|
||||
'/media/plg_media-action_rotate/js/rotate.es6.min.js.gz',
|
||||
'/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.js',
|
||||
'/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.min.js',
|
||||
'/media/plg_quickicon_extensionupdate/js/extensionupdatecheck.es6.min.js.gz',
|
||||
'/media/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.js',
|
||||
'/media/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.min.js',
|
||||
'/media/plg_quickicon_joomlaupdate/js/jupdatecheck.es6.min.js.gz',
|
||||
'/media/plg_quickicon_overridecheck/js/overridecheck.es6.js',
|
||||
'/media/plg_quickicon_overridecheck/js/overridecheck.es6.min.js',
|
||||
'/media/plg_quickicon_overridecheck/js/overridecheck.es6.min.js.gz',
|
||||
'/media/plg_quickicon_privacycheck/js/privacycheck.es6.js',
|
||||
'/media/plg_quickicon_privacycheck/js/privacycheck.es6.min.js',
|
||||
'/media/plg_quickicon_privacycheck/js/privacycheck.es6.min.js.gz',
|
||||
'/media/plg_system_debug/js/debug.es6.js',
|
||||
'/media/plg_system_debug/js/debug.es6.min.js',
|
||||
'/media/plg_system_debug/js/debug.es6.min.js.gz',
|
||||
'/media/plg_system_highlight/highlight.min.css',
|
||||
'/media/plg_system_highlight/highlight.min.css.gz',
|
||||
'/media/plg_system_stats/js/stats-message.es6.js',
|
||||
'/media/plg_system_stats/js/stats-message.es6.min.js',
|
||||
'/media/plg_system_stats/js/stats-message.es6.min.js.gz',
|
||||
'/media/plg_system_stats/js/stats.es6.js',
|
||||
'/media/plg_system_stats/js/stats.es6.min.js',
|
||||
'/media/plg_system_stats/js/stats.es6.min.js.gz',
|
||||
'/media/plg_system_webauthn/js/login.es6.js',
|
||||
'/media/plg_system_webauthn/js/login.es6.min.js',
|
||||
'/media/plg_system_webauthn/js/login.es6.min.js.gz',
|
||||
'/media/plg_system_webauthn/js/management.es6.js',
|
||||
'/media/plg_system_webauthn/js/management.es6.min.js',
|
||||
'/media/plg_system_webauthn/js/management.es6.min.js.gz',
|
||||
'/media/plg_user_token/js/token.es6.js',
|
||||
'/media/plg_user_token/js/token.es6.min.js',
|
||||
'/media/plg_user_token/js/token.es6.min.js.gz',
|
||||
'/media/system/js/core.es6.js',
|
||||
'/media/system/js/core.es6.min.js',
|
||||
'/media/system/js/core.es6.min.js.gz',
|
||||
'/media/system/js/draggable.es6.js',
|
||||
'/media/system/js/draggable.es6.min.js',
|
||||
'/media/system/js/draggable.es6.min.js.gz',
|
||||
'/media/system/js/fields/joomla-field-color-slider.es6.js',
|
||||
'/media/system/js/fields/joomla-field-color-slider.es6.min.js',
|
||||
'/media/system/js/fields/joomla-field-color-slider.es6.min.js.gz',
|
||||
'/media/system/js/fields/passwordstrength.es6.js',
|
||||
'/media/system/js/fields/passwordstrength.es6.min.js',
|
||||
'/media/system/js/fields/passwordstrength.es6.min.js.gz',
|
||||
'/media/system/js/fields/passwordview.es6.js',
|
||||
'/media/system/js/fields/passwordview.es6.min.js',
|
||||
'/media/system/js/fields/passwordview.es6.min.js.gz',
|
||||
'/media/system/js/fields/select-colour.es6.js',
|
||||
'/media/system/js/fields/select-colour.es6.min.js',
|
||||
'/media/system/js/fields/select-colour.es6.min.js.gz',
|
||||
'/media/system/js/fields/validate.es6.js',
|
||||
'/media/system/js/fields/validate.es6.min.js',
|
||||
'/media/system/js/fields/validate.es6.min.js.gz',
|
||||
'/media/system/js/keepalive.es6.js',
|
||||
'/media/system/js/keepalive.es6.min.js',
|
||||
'/media/system/js/keepalive.es6.min.js.gz',
|
||||
'/media/system/js/multiselect.es6.js',
|
||||
'/media/system/js/multiselect.es6.min.js',
|
||||
'/media/system/js/multiselect.es6.min.js.gz',
|
||||
'/media/system/js/searchtools.es6.js',
|
||||
'/media/system/js/searchtools.es6.min.js',
|
||||
'/media/system/js/searchtools.es6.min.js.gz',
|
||||
'/media/system/js/showon.es6.js',
|
||||
'/media/system/js/showon.es6.min.js',
|
||||
'/media/system/js/showon.es6.min.js.gz',
|
||||
'/media/templates/atum/js/template.es6.js',
|
||||
'/media/templates/atum/js/template.es6.min.js',
|
||||
'/media/templates/atum/js/template.es6.min.js.gz',
|
||||
'/media/templates/atum/js/template.js',
|
||||
'/media/templates/atum/js/template.min.js',
|
||||
'/media/templates/atum/js/template.min.js.gz',
|
||||
'/media/templates/cassiopeia/js/mod_menu/menu-metismenu.es6.js',
|
||||
'/media/templates/cassiopeia/js/mod_menu/menu-metismenu.es6.min.js',
|
||||
'/media/templates/cassiopeia/js/mod_menu/menu-metismenu.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/alert.es6.js',
|
||||
'/media/vendor/bootstrap/js/alert.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/alert.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/bootstrap.es5.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.es5.min.js',
|
||||
'/media/vendor/bootstrap/js/bootstrap.es5.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/button.es6.js',
|
||||
'/media/vendor/bootstrap/js/button.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/button.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/carousel.es6.js',
|
||||
'/media/vendor/bootstrap/js/carousel.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/carousel.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/collapse.es6.js',
|
||||
'/media/vendor/bootstrap/js/collapse.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/collapse.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/dom-8eef6b5f.js',
|
||||
'/media/vendor/bootstrap/js/dropdown.es6.js',
|
||||
'/media/vendor/bootstrap/js/dropdown.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/dropdown.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/modal.es6.js',
|
||||
'/media/vendor/bootstrap/js/modal.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/modal.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/popover.es6.js',
|
||||
'/media/vendor/bootstrap/js/popover.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/popover.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/popper-5304749a.js',
|
||||
'/media/vendor/bootstrap/js/scrollspy.es6.js',
|
||||
'/media/vendor/bootstrap/js/scrollspy.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/scrollspy.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/tab.es6.js',
|
||||
'/media/vendor/bootstrap/js/tab.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/tab.es6.min.js.gz',
|
||||
'/media/vendor/bootstrap/js/toast.es6.js',
|
||||
'/media/vendor/bootstrap/js/toast.es6.min.js',
|
||||
'/media/vendor/bootstrap/js/toast.es6.min.js.gz',
|
||||
'/media/vendor/codemirror/lib/codemirror-ce.js',
|
||||
'/media/vendor/codemirror/lib/codemirror-ce.min.js',
|
||||
'/media/vendor/codemirror/lib/codemirror-ce.min.js.gz',
|
||||
'/media/vendor/punycode/js/punycode.js',
|
||||
'/media/vendor/punycode/js/punycode.min.js',
|
||||
'/media/vendor/punycode/js/punycode.min.js.gz',
|
||||
'/media/vendor/tinymce/changelog.txt',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-ce.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-ce.min.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-ce.min.js.gz',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce-pf.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce-pf.min.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce-pf.min.js.gz',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce.min.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd-ce.min.js.gz',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd.min.js',
|
||||
'/media/vendor/webcomponentsjs/js/webcomponents-sd.min.js.gz',
|
||||
'/plugins/fields/subfields/params/subfields.xml',
|
||||
'/plugins/fields/subfields/subfields.php',
|
||||
'/plugins/fields/subfields/subfields.xml',
|
||||
'/plugins/fields/subfields/tmpl/subfields.php',
|
||||
'/templates/cassiopeia/images/system/rating_star.png',
|
||||
'/templates/cassiopeia/images/system/rating_star_blank.png',
|
||||
'/templates/cassiopeia/scss/tools/mixins/_margin.scss',
|
||||
'/templates/cassiopeia/scss/tools/mixins/_visually-hidden.scss',
|
||||
'/templates/system/js/error-locales.js',
|
||||
);
|
||||
|
||||
$folders = array(
|
||||
// Joomla 4.0 Beta 1
|
||||
// From 3.10 to 4.0
|
||||
'/templates/system/images',
|
||||
'/templates/system/html',
|
||||
'/templates/protostar/less',
|
||||
|
@ -5220,6 +5779,7 @@ class JoomlaInstallerScript
|
|||
'/media/system/images/modal',
|
||||
'/media/plg_twofactorauth_totp/js',
|
||||
'/media/plg_twofactorauth_totp',
|
||||
'/media/plg_system_highlight',
|
||||
'/media/overrider/js',
|
||||
'/media/overrider/css',
|
||||
'/media/overrider',
|
||||
|
@ -5637,7 +6197,11 @@ class JoomlaInstallerScript
|
|||
'/libraries/cms/html',
|
||||
'/libraries/cms/class',
|
||||
'/libraries/cms',
|
||||
'/layouts/libraries/cms/html/bootstrap',
|
||||
'/layouts/libraries/cms/html',
|
||||
'/layouts/libraries/cms',
|
||||
'/layouts/joomla/tinymce/buttons',
|
||||
'/layouts/joomla/modal',
|
||||
'/layouts/joomla/html/formbehavior',
|
||||
'/components/com_wrapper/views/wrapper/tmpl',
|
||||
'/components/com_wrapper/views/wrapper',
|
||||
|
@ -6327,17 +6891,57 @@ class JoomlaInstallerScript
|
|||
'/administrator/components/com_actionlogs/layouts',
|
||||
'/administrator/components/com_actionlogs/helpers',
|
||||
'/administrator/components/com_actionlogs/controllers',
|
||||
// Joomla 4.0 Beta 2
|
||||
'/administrator/components/com_finder/src/Indexer/Driver',
|
||||
'/api/components/com_installer/src/View/Languages',
|
||||
// 4.0 from Beta 1 to Beta 2
|
||||
'/libraries/vendor/joomla/controller/src',
|
||||
'/libraries/vendor/joomla/controller',
|
||||
// Joomla 4.0 Beta 5
|
||||
'/api/components/com_installer/src/View/Languages',
|
||||
'/administrator/components/com_finder/src/Indexer/Driver',
|
||||
// 4.0 from Beta 2 to Beta 5
|
||||
'/plugins/content/imagelazyload',
|
||||
// Joomla 4.0 Beta 7
|
||||
// 4.0 from Beta 5 to Beta 6
|
||||
'/media/system/js/core.es6',
|
||||
'/administrator/modules/mod_multilangstatus/src/Helper',
|
||||
'/administrator/modules/mod_multilangstatus/src',
|
||||
// 4.0 from Beta 6 to Beta 7
|
||||
'/media/vendor/skipto/css',
|
||||
// Joomla 4.0 Beta 8
|
||||
'/administrator/components/com_admin/src/View/Profile',
|
||||
// 4.0 from Beta 7 to Beta 8
|
||||
'/templates/system/js',
|
||||
'/templates/cassiopeia/scss/tools/mixins',
|
||||
'/plugins/fields/subfields/tmpl',
|
||||
'/plugins/fields/subfields/params',
|
||||
'/plugins/fields/subfields',
|
||||
'/media/vendor/punycode/js',
|
||||
'/media/templates/atum/js',
|
||||
'/media/templates/atum',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Traits',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Helpers',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Exceptions',
|
||||
'/libraries/vendor/ozdemirburak/iris/src/Color',
|
||||
'/libraries/vendor/ozdemirburak/iris/src',
|
||||
'/libraries/vendor/ozdemirburak/iris',
|
||||
'/libraries/vendor/ozdemirburak',
|
||||
'/components/com_menus/src/Controller',
|
||||
'/components/com_csp/src/Controller',
|
||||
'/components/com_csp/src',
|
||||
'/components/com_csp',
|
||||
'/administrator/templates/atum/Service/HTML',
|
||||
'/administrator/templates/atum/Service',
|
||||
'/administrator/components/com_joomlaupdate/src/Helper',
|
||||
'/administrator/components/com_csp/tmpl/reports',
|
||||
'/administrator/components/com_csp/tmpl',
|
||||
'/administrator/components/com_csp/src/View/Reports',
|
||||
'/administrator/components/com_csp/src/View',
|
||||
'/administrator/components/com_csp/src/Table',
|
||||
'/administrator/components/com_csp/src/Model',
|
||||
'/administrator/components/com_csp/src/Helper',
|
||||
'/administrator/components/com_csp/src/Controller',
|
||||
'/administrator/components/com_csp/src',
|
||||
'/administrator/components/com_csp/services',
|
||||
'/administrator/components/com_csp/forms',
|
||||
'/administrator/components/com_csp',
|
||||
'/administrator/components/com_admin/tmpl/profile',
|
||||
'/administrator/components/com_admin/src/View/Profile',
|
||||
'/administrator/components/com_admin/forms',
|
||||
);
|
||||
|
||||
$status['files_checked'] = $files;
|
||||
|
@ -6371,7 +6975,6 @@ class JoomlaInstallerScript
|
|||
|
||||
if ($dryRun === false)
|
||||
{
|
||||
// TODO There is an issue while deleting folders using the ftp mode
|
||||
if (Folder::delete(JPATH_ROOT . $folder))
|
||||
{
|
||||
$status['folders_deleted'][] = $folder;
|
||||
|
@ -6412,7 +7015,7 @@ class JoomlaInstallerScript
|
|||
{
|
||||
// List all components added since 4.0
|
||||
$newComponents = array(
|
||||
'com_csp',
|
||||
// Components to be added here
|
||||
);
|
||||
|
||||
foreach ($newComponents as $component)
|
||||
|
@ -6742,8 +7345,6 @@ class JoomlaInstallerScript
|
|||
}
|
||||
}
|
||||
|
||||
$this->convertBlogLayouts();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -7106,154 +7707,6 @@ class JoomlaInstallerScript
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts layout parameters for blog / featured views into the according CSS classes.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
private function convertBlogLayouts()
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select(
|
||||
[
|
||||
$db->quoteName('m.id'),
|
||||
$db->quoteName('m.link'),
|
||||
$db->quoteName('m.params'),
|
||||
]
|
||||
)
|
||||
->from($db->quoteName('#__menu', 'm'))
|
||||
->leftJoin($db->quoteName('#__extensions', 'e'), $db->quoteName('e.extension_id') . ' = ' . $db->quoteName('m.component_id'))
|
||||
->where($db->quoteName('e.element') . ' = ' . $db->quote('com_content'));
|
||||
|
||||
$menuItems = $db->setQuery($query)->loadAssocList('id');
|
||||
$contentParams = ComponentHelper::getParams('com_content');
|
||||
|
||||
foreach ($menuItems as $id => $menuItem)
|
||||
{
|
||||
$view = Uri::getInstance($menuItem['link'])->getVar('view');
|
||||
|
||||
if (!in_array($view, ['category', 'categories', 'featured']))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$params = json_decode($menuItem['params'], true);
|
||||
|
||||
// Don't update parameters if num_columns is unset.
|
||||
if (!isset($params['num_columns']))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$useLocalCols = $params['num_columns'] !== '';
|
||||
|
||||
if ($useLocalCols)
|
||||
{
|
||||
$nColumns = (int) $params['num_columns'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$nColumns = (int) $contentParams->get('num_columns', '1');
|
||||
}
|
||||
|
||||
unset($params['num_columns']);
|
||||
|
||||
$order = 0;
|
||||
$useLocalOrder = false;
|
||||
|
||||
if (isset($params['multi_column_order']))
|
||||
{
|
||||
if ($params['multi_column_order'] !== '')
|
||||
{
|
||||
$useLocalOrder = true;
|
||||
$order = (int) $params['multi_column_order'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$order = (int) $contentParams->get('multi_column_order', '0');
|
||||
}
|
||||
|
||||
unset($params['multi_column_order']);
|
||||
}
|
||||
|
||||
// Only add CSS class if columns > 1 and a local value was set for columns or order.
|
||||
if ($nColumns > 1 && ($useLocalOrder || $useLocalCols))
|
||||
{
|
||||
// Convert to the according CSS class depending on order = "down" or "across".
|
||||
$layout = ($order === 0) ? 'masonry-' : 'columns-';
|
||||
|
||||
if (!isset($params['blog_class']))
|
||||
{
|
||||
$params['blog_class'] = '';
|
||||
}
|
||||
|
||||
if (strpos($params['blog_class'], $layout) === false)
|
||||
{
|
||||
$params['blog_class'] .= ' ' . $layout . $nColumns;
|
||||
}
|
||||
}
|
||||
|
||||
$newParams = json_encode($params);
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->update($db->quoteName('#__menu'))
|
||||
->set($db->quoteName('params') . ' = :params')
|
||||
->where($db->quoteName('id') . ' = :id')
|
||||
->bind(':params', $newParams, ParameterType::STRING)
|
||||
->bind(':id', $id, ParameterType::INTEGER);
|
||||
|
||||
$db->setQuery($query)->execute();
|
||||
}
|
||||
|
||||
// Update global parameters for com_content.
|
||||
$nColumns = $contentParams->get('num_columns');
|
||||
|
||||
if ($nColumns !== null)
|
||||
{
|
||||
$nColumns = (int) $nColumns;
|
||||
$order = (int) $contentParams->get('multi_column_order', '0');
|
||||
$params = $contentParams->toArray();
|
||||
|
||||
if (!isset($params['blog_class']))
|
||||
{
|
||||
$params['blog_class'] = '';
|
||||
}
|
||||
|
||||
// Convert to the according CSS class depending on order = "down" or "across".
|
||||
$layout = ($order === 0) ? 'masonry-' : 'columns-';
|
||||
|
||||
if (strpos($params['blog_class'], $layout) === false && $nColumns > 1)
|
||||
{
|
||||
$params['blog_class'] .= ' ' . $layout . $nColumns;
|
||||
}
|
||||
|
||||
unset($params['num_columns']);
|
||||
|
||||
$app = Factory::getApplication();
|
||||
/** @var ComponentModel $configModel */
|
||||
$configModel = $app->bootComponent('com_config')
|
||||
->getMVCFactory()
|
||||
->createModel('Component', 'Administrator', ['ignore_request' => true]);
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName('extension_id'))
|
||||
->from($db->quoteName('#__extensions'))
|
||||
->where($db->quoteName('element') . ' = ' . $db->quote('com_content'));
|
||||
|
||||
$componentId = $db->setQuery($query)->loadResult();
|
||||
|
||||
$data = array(
|
||||
'id' => $componentId,
|
||||
'option' => 'com_content',
|
||||
'params' => $params,
|
||||
);
|
||||
$configModel->save($data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renames or removes incorrectly cased files.
|
||||
*
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`)
|
||||
VALUES
|
||||
(700, 'COM_CPANEL_MSG_HTACCESSSVG_TITLE', 'COM_CPANEL_MSG_HTACCESSSVG_BODY', '', 'com_cpanel', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccesssvg.php', 'admin_postinstall_htaccesssvg_condition', '3.9.21', 1);
|
|
@ -1,3 +0,0 @@
|
|||
INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `version_introduced`, `enabled`)
|
||||
VALUES
|
||||
(700, 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_DESCRIPTION', '', 'com_admin', 1, 'message', '3.9.22', 1);
|
|
@ -3,20 +3,20 @@
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__workflows` (
|
||||
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int(10) DEFAULT 0,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int DEFAULT 0,
|
||||
`published` tinyint NOT NULL DEFAULT 0,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`extension` varchar(50) NOT NULL,
|
||||
`default` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`ordering` int(11) NOT NULL DEFAULT 0,
|
||||
`default` tinyint NOT NULL DEFAULT 0,
|
||||
`ordering` int NOT NULL DEFAULT 0,
|
||||
`created` datetime NOT NULL,
|
||||
`created_by` int(10) NOT NULL DEFAULT 0,
|
||||
`created_by` int NOT NULL DEFAULT 0,
|
||||
`modified` datetime NOT NULL,
|
||||
`modified_by` int(10) NOT NULL DEFAULT 0,
|
||||
`modified_by` int NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`checked_out` int(10) NOT NULL DEFAULT 0,
|
||||
`checked_out` int NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_asset_id` (`asset_id`),
|
||||
KEY `idx_title` (`title`(191)),
|
||||
|
@ -41,8 +41,8 @@ INSERT INTO `#__workflows` (`id`, `asset_id`, `published`, `title`, `description
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__workflow_associations` (
|
||||
`item_id` int(10) NOT NULL DEFAULT 0 COMMENT 'Extension table id value',
|
||||
`stage_id` int(10) NOT NULL COMMENT 'Foreign Key to #__workflow_stages.id',
|
||||
`item_id` int NOT NULL DEFAULT 0 COMMENT 'Extension table id value',
|
||||
`stage_id` int NOT NULL COMMENT 'Foreign Key to #__workflow_stages.id',
|
||||
`extension` varchar(50) NOT NULL,
|
||||
PRIMARY KEY (`item_id`, `extension`),
|
||||
KEY `idx_item_stage_extension` (`item_id`, `stage_id`, `extension`),
|
||||
|
@ -56,16 +56,16 @@ CREATE TABLE IF NOT EXISTS `#__workflow_associations` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__workflow_stages` (
|
||||
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int(10) DEFAULT 0,
|
||||
`ordering` int(11) NOT NULL DEFAULT 0,
|
||||
`workflow_id` int(10) NOT NULL,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int DEFAULT 0,
|
||||
`ordering` int NOT NULL DEFAULT 0,
|
||||
`workflow_id` int NOT NULL,
|
||||
`published` tinyint NOT NULL DEFAULT 0,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`default` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`default` tinyint NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`checked_out` int(10) NOT NULL DEFAULT 0,
|
||||
`checked_out` int NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_workflow_id` (`workflow_id`),
|
||||
KEY `idx_checked_out` (`checked_out`),
|
||||
|
@ -86,18 +86,18 @@ INSERT INTO `#__workflow_stages` (`id`, `asset_id`, `ordering`, `workflow_id`, `
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__workflow_transitions` (
|
||||
`id` int(10) NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int(10) DEFAULT 0,
|
||||
`ordering` int(11) NOT NULL DEFAULT 0,
|
||||
`workflow_id` int(10) NOT NULL,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`asset_id` int DEFAULT 0,
|
||||
`ordering` int NOT NULL DEFAULT 0,
|
||||
`workflow_id` int NOT NULL,
|
||||
`published` tinyint NOT NULL DEFAULT 0,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`from_stage_id` int(10) NOT NULL,
|
||||
`to_stage_id` int(10) NOT NULL,
|
||||
`from_stage_id` int NOT NULL,
|
||||
`to_stage_id` int NOT NULL,
|
||||
`options` text NOT NULL,
|
||||
`checked_out_time` datetime,
|
||||
`checked_out` int(10) NOT NULL DEFAULT 0,
|
||||
`checked_out` int NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_title` (`title`(191)),
|
||||
KEY `idx_asset_id` (`asset_id`),
|
||||
|
|
|
@ -1,18 +1 @@
|
|||
--
|
||||
-- Table structure for table `#__csp`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__csp` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`document_uri` varchar(500) NOT NULL DEFAULT '',
|
||||
`blocked_uri` varchar(500) NOT NULL DEFAULT '',
|
||||
`directive` varchar(500) NOT NULL DEFAULT '',
|
||||
`client` varchar(500) NOT NULL DEFAULT '',
|
||||
`created` datetime NOT NULL,
|
||||
`modified` datetime NOT NULL,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
|
||||
(0, 'com_csp', 'component', 'com_csp', '', 1, 1, 1, 0, '', '{}', '', 0, '0000-00-00 00:00:00', 0, 0);
|
||||
-- This has been removed as com_csp has been removed from the final build
|
||||
|
|
|
@ -1 +1 @@
|
|||
ALTER TABLE `#__user_notes` CHANGE `modified_user_id` `modified_user_id` int(10) unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__user_notes` CHANGE `modified_user_id` `modified_user_id` int unsigned NOT NULL DEFAULT 0;
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
CREATE TABLE IF NOT EXISTS `#__template_overrides` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`template` varchar(50) NOT NULL DEFAULT '',
|
||||
`hash_id` varchar(255) NOT NULL DEFAULT '',
|
||||
`extension_id` int(11) DEFAULT 0,
|
||||
`state` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`extension_id` int DEFAULT 0,
|
||||
`state` tinyint NOT NULL DEFAULT 0,
|
||||
`action` varchar(50) NOT NULL DEFAULT '',
|
||||
`client_id` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`client_id` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`created_date` datetime NOT NULL,
|
||||
`modified_date` datetime,
|
||||
PRIMARY KEY (`id`),
|
||||
|
|
|
@ -2,7 +2,7 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`,
|
|||
(0, 'plg_extension_finder', 'plugin', 'finder', 'extension', 0, 1, 1, 0, '', '', '', 0, '0000-00-00 00:00:00', 0, 0);
|
||||
|
||||
TRUNCATE TABLE `#__finder_filters`;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `created_by` int(10) unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `created_by` int unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `created_by_alias` varchar(255) NOT NULL DEFAULT '';
|
||||
ALTER TABLE `#__finder_filters` MODIFY `created` datetime NOT NULL;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `modified` datetime NOT NULL;
|
||||
|
@ -13,8 +13,8 @@ ALTER TABLE `#__finder_filters` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_un
|
|||
TRUNCATE TABLE `#__finder_links`;
|
||||
ALTER TABLE `#__finder_links` CHANGE `route` `route` varchar(400);
|
||||
ALTER TABLE `#__finder_links` CHANGE `language` `language` CHAR(7) NOT NULL DEFAULT '' AFTER `access`;
|
||||
ALTER TABLE `#__finder_links` MODIFY `state` int(5) NOT NULL DEFAULT 1;
|
||||
ALTER TABLE `#__finder_links` MODIFY `access` int(5) NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__finder_links` MODIFY `state` int NOT NULL DEFAULT 1;
|
||||
ALTER TABLE `#__finder_links` MODIFY `access` int NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__finder_links` MODIFY `indexdate` datetime NOT NULL;
|
||||
ALTER TABLE `#__finder_links` MODIFY `publish_start_date` datetime NULL DEFAULT NULL;
|
||||
ALTER TABLE `#__finder_links` MODIFY `publish_end_date` datetime NULL DEFAULT NULL;
|
||||
|
@ -25,8 +25,8 @@ ALTER TABLE `#__finder_links` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_u
|
|||
ALTER TABLE `#__finder_links` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE `#__finder_links_terms` (
|
||||
`link_id` INT(10) UNSIGNED NOT NULL,
|
||||
`term_id` INT(10) UNSIGNED NOT NULL,
|
||||
`link_id` INT UNSIGNED NOT NULL,
|
||||
`term_id` INT UNSIGNED NOT NULL,
|
||||
`weight` FLOAT UNSIGNED NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`link_id`, `term_id`),
|
||||
INDEX `idx_term_weight` (`term_id`, `weight`),
|
||||
|
@ -54,8 +54,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` (
|
|||
`searchterm` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`md5sum` VARCHAR(32) NOT NULL DEFAULT '',
|
||||
`query` BLOB NOT NULL,
|
||||
`hits` INT(11) NOT NULL DEFAULT 1,
|
||||
`results` INT(11) NOT NULL DEFAULT 0,
|
||||
`hits` INT NOT NULL DEFAULT 1,
|
||||
`results` INT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`md5sum`),
|
||||
INDEX `searchterm` (`searchterm`(191))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
|
@ -64,16 +64,16 @@ ALTER TABLE `#__finder_logging` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_un
|
|||
|
||||
DROP TABLE `#__finder_taxonomy`;
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_taxonomy` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`parent_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`lft` INT(11) NOT NULL DEFAULT '0',
|
||||
`rgt` INT(11) NOT NULL DEFAULT '0',
|
||||
`level` INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`parent_id` INT UNSIGNED NOT NULL DEFAULT '0',
|
||||
`lft` INT NOT NULL DEFAULT '0',
|
||||
`rgt` INT NOT NULL DEFAULT '0',
|
||||
`level` INT UNSIGNED NOT NULL DEFAULT '0',
|
||||
`path` VARCHAR(400) NOT NULL DEFAULT '',
|
||||
`title` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`alias` VARCHAR(400) NOT NULL DEFAULT '',
|
||||
`state` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
|
||||
`access` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
|
||||
`state` TINYINT UNSIGNED NOT NULL DEFAULT '1',
|
||||
`access` TINYINT UNSIGNED NOT NULL DEFAULT '1',
|
||||
`language` CHAR(7) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_state` (`state`),
|
||||
|
@ -107,7 +107,7 @@ DROP TABLE IF EXISTS `#__finder_terms_common`;
|
|||
CREATE TABLE `#__finder_terms_common` (
|
||||
`term` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
`custom` int(11) NOT NULL DEFAULT '0',
|
||||
`custom` int NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `idx_term_language` (`term`,`language`),
|
||||
KEY `idx_lang` (`language`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
|
|
|
@ -1 +1 @@
|
|||
DELETE FROM `#__menu` WHERE `link` = 'index.php?option=com_csp' AND `menutype` = 'main';
|
||||
-- This has been removed as com_csp has been removed from the final build
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
ALTER TABLE `#__update_sites` ADD COLUMN `checked_out` int(10) unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__update_sites` ADD COLUMN `checked_out` int unsigned NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__update_sites` ADD COLUMN `checked_out_time` datetime NULL DEFAULT NULL;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
-- Add locked field to extensions table.
|
||||
ALTER TABLE `#__extensions` MODIFY `protected` tinyint(3) NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if the extension is protected. Protected extensions cannot be disabled.';
|
||||
ALTER TABLE `#__extensions` ADD COLUMN `locked` tinyint(3) NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if the extension is locked. Locked extensions cannot be uninstalled.';
|
||||
ALTER TABLE `#__extensions` MODIFY `protected` tinyint NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if the extension is protected. Protected extensions cannot be disabled.';
|
||||
ALTER TABLE `#__extensions` ADD COLUMN `locked` tinyint NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if the extension is locked. Locked extensions cannot be uninstalled.';
|
||||
|
||||
-- Set all core extensions as locked extensions and unprotected them.
|
||||
UPDATE `#__extensions`
|
||||
|
@ -39,7 +39,6 @@ WHERE (`type` = 'component' AND `element` IN (
|
|||
'com_privacy',
|
||||
'com_actionlogs',
|
||||
'com_workflow',
|
||||
'com_csp',
|
||||
'com_mails'
|
||||
))
|
||||
OR (`type` = 'module' AND `client_id` = 0 AND `element` IN (
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
ALTER TABLE `#__extensions` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__menu` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__modules` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__tags` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__update_sites` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__user_notes` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__workflows` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__workflow_stages` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__workflow_transitions` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__banners` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__banner_clients` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__contact_details` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__content` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__newsfeeds` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__categories` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__fields` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__fields_groups` MODIFY `checked_out` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__ucm_content` MODIFY `core_checked_out_user_id` INT(10) UNSIGNED;
|
||||
ALTER TABLE `#__extensions` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__menu` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__modules` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__tags` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__update_sites` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__user_notes` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__workflows` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__workflow_stages` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__workflow_transitions` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__banners` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__banner_clients` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__contact_details` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__content` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__finder_filters` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__newsfeeds` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__categories` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__fields` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__fields_groups` MODIFY `checked_out` INT UNSIGNED;
|
||||
ALTER TABLE `#__ucm_content` MODIFY `core_checked_out_user_id` INT UNSIGNED;
|
||||
|
||||
UPDATE `#__extensions` SET `checked_out` = null WHERE `checked_out` = 0;
|
||||
UPDATE `#__menu` SET `checked_out` = null WHERE `checked_out` = 0;
|
||||
|
|
|
@ -1 +1 @@
|
|||
ALTER TABLE `#__fields` ADD COLUMN `only_use_in_subform` tinyint(1) NOT NULL DEFAULT 0;
|
||||
ALTER TABLE `#__fields` ADD COLUMN `only_use_in_subform` tinyint NOT NULL DEFAULT 0;
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
UPDATE `#__template_styles`
|
||||
SET `params` = '{"hue":"hsl(214, 63%, 20%)","bg-light":"#f0f4fb","text-dark":"#495057","text-light":"#ffffff","link-color":"#2a69b8","special-color":"#001b4c","monochrome":"0","loginLogo":"","loginLogoAlt":"","logoBrandLarge":"","logoBrandLargeAlt":"","logoBrandSmall":"","logoBrandSmallAlt":""}'
|
||||
WHERE `template` = 'atum'
|
||||
AND `client_id` = 1;
|
|
@ -0,0 +1,2 @@
|
|||
DELETE FROM `#__extensions` WHERE `name` = 'com_csp' and `type` = 'component' and `element` = 'com_csp';
|
||||
DROP TABLE `#__csp`;
|
|
@ -0,0 +1,4 @@
|
|||
UPDATE `#__mail_templates`
|
||||
SET `subject` = 'COM_PRIVACY_EMAIL_DATA_EXPORT_COMPLETED_SUBJECT',
|
||||
`body` = 'COM_PRIVACY_EMAIL_DATA_EXPORT_COMPLETED_BODY'
|
||||
WHERE `template_id` = 'com_privacy.userdataexport';
|
|
@ -1,3 +0,0 @@
|
|||
INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled")
|
||||
VALUES
|
||||
(700, 'COM_CPANEL_MSG_HTACCESSSVG_TITLE', 'COM_CPANEL_MSG_HTACCESSSVG_BODY', '', 'com_cpanel', 1, 'message', '', '', 'admin://components/com_admin/postinstall/htaccesssvg.php', 'admin_postinstall_htaccesssvg_condition', '3.9.21', 1);
|
|
@ -1,3 +0,0 @@
|
|||
INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "version_introduced", "enabled")
|
||||
VALUES
|
||||
(700, 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_TITLE', 'COM_ADMIN_POSTINSTALL_MSG_HTACCESS_AUTOINDEX_DESCRIPTION', '', 'com_admin', 1, 'message', '3.9.22', 1);
|
|
@ -1,18 +1 @@
|
|||
--
|
||||
-- Table structure for table `#__csp`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "#__csp" (
|
||||
"id" serial NOT NULL,
|
||||
"document_uri" varchar(500) NOT NULL DEFAULT '',
|
||||
"blocked_uri" varchar(500) NOT NULL DEFAULT '',
|
||||
"directive" varchar(500) NOT NULL DEFAULT '',
|
||||
"client" varchar(500) NOT NULL DEFAULT '',
|
||||
"created" timestamp without time zone NOT NULL,
|
||||
"modified" timestamp without time zone NOT NULL,
|
||||
"published" smallint DEFAULT 0 NOT NULL,
|
||||
PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
|
||||
(0, 'com_csp', 'component', 'com_csp', '', 1, 1, 1, 0, '', '{}', '', 0, '1970-01-01 00:00:00', 0, 0);
|
||||
-- This has been removed as com_csp has been removed from the final build
|
||||
|
|
|
@ -1 +1 @@
|
|||
DELETE FROM "#__menu" WHERE "link" = 'index.php?option=com_csp' AND "menutype" = 'main';
|
||||
-- This has been removed as com_csp has been removed from the final build
|
||||
|
|
|
@ -41,7 +41,6 @@ WHERE ("type" = 'component' AND "element" IN (
|
|||
'com_privacy',
|
||||
'com_actionlogs',
|
||||
'com_workflow',
|
||||
'com_csp',
|
||||
'com_mails'
|
||||
))
|
||||
OR ("type" = 'module' AND "client_id" = 0 AND "element" IN (
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
UPDATE "#__template_styles"
|
||||
SET "params" = '{"hue":"hsl(214, 63%, 20%)","bg-light":"#f0f4fb","text-dark":"#495057","text-light":"#ffffff","link-color":"#2a69b8","special-color":"#001b4c","monochrome":"0","loginLogo":"","loginLogoAlt":"","logoBrandLarge":"","logoBrandLargeAlt":"","logoBrandSmall":"","logoBrandSmallAlt":""}'
|
||||
WHERE "template" = 'atum'
|
||||
AND "client_id" = 1;
|
|
@ -0,0 +1,2 @@
|
|||
DELETE FROM `#__extensions` WHERE `name` = 'com_csp' and `type` = 'component' and `element` = 'com_csp';
|
||||
DROP TABLE `#__csp`;
|
|
@ -0,0 +1,4 @@
|
|||
UPDATE "#__mail_templates"
|
||||
SET "subject" = 'COM_PRIVACY_EMAIL_DATA_EXPORT_COMPLETED_SUBJECT',
|
||||
"body" = 'COM_PRIVACY_EMAIL_DATA_EXPORT_COMPLETED_BODY'
|
||||
WHERE "template_id" = 'com_privacy.userdataexport';
|
|
@ -32,7 +32,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
* @var array
|
||||
* @since 1.6
|
||||
*/
|
||||
protected $php_settings = array();
|
||||
protected $php_settings = [];
|
||||
|
||||
/**
|
||||
* Config values
|
||||
|
@ -40,7 +40,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
* @var array
|
||||
* @since 1.6
|
||||
*/
|
||||
protected $config = array();
|
||||
protected $config = [];
|
||||
|
||||
/**
|
||||
* Some system values
|
||||
|
@ -48,7 +48,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
* @var array
|
||||
* @since 1.6
|
||||
*/
|
||||
protected $info = array();
|
||||
protected $info = [];
|
||||
|
||||
/**
|
||||
* PHP info
|
||||
|
@ -74,8 +74,8 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
protected $privateSettings = array(
|
||||
'phpInfoArray' => array(
|
||||
protected $privateSettings = [
|
||||
'phpInfoArray' => [
|
||||
'CONTEXT_DOCUMENT_ROOT',
|
||||
'Cookie',
|
||||
'DOCUMENT_ROOT',
|
||||
|
@ -111,8 +111,8 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
'upload_tmp_dir',
|
||||
'User/Group',
|
||||
'open_basedir',
|
||||
),
|
||||
'other' => array(
|
||||
],
|
||||
'other' => [
|
||||
'db',
|
||||
'dbprefix',
|
||||
'fromname',
|
||||
|
@ -137,8 +137,8 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
'smtphost',
|
||||
'tmp_path',
|
||||
'open_basedir',
|
||||
)
|
||||
);
|
||||
]
|
||||
];
|
||||
|
||||
/**
|
||||
* System values that can be "safely" shared
|
||||
|
@ -155,7 +155,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
* @var array
|
||||
* @since 1.6
|
||||
*/
|
||||
protected $directories = array();
|
||||
protected $directories = [];
|
||||
|
||||
/**
|
||||
* The current editor.
|
||||
|
@ -175,7 +175,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
protected function cleanPrivateData($dataArray, $dataType = 'other')
|
||||
protected function cleanPrivateData(array $dataArray, string $dataType = 'other'): array
|
||||
{
|
||||
$dataType = isset($this->privateSettings[$dataType]) ? $dataType : 'other';
|
||||
|
||||
|
@ -188,12 +188,12 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
|
||||
foreach ($dataArray as $section => $values)
|
||||
{
|
||||
if (is_array($values))
|
||||
if (\is_array($values))
|
||||
{
|
||||
$dataArray[$section] = $this->cleanPrivateData($values, $dataType);
|
||||
}
|
||||
|
||||
if (in_array($section, $privateSettings, true))
|
||||
if (\in_array($section, $privateSettings, true))
|
||||
{
|
||||
$dataArray[$section] = $this->cleanSectionPrivateData($values);
|
||||
}
|
||||
|
@ -207,13 +207,13 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @param mixed $sectionValues Section data
|
||||
*
|
||||
* @return mixed
|
||||
* @return string|array
|
||||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
protected function cleanSectionPrivateData($sectionValues)
|
||||
{
|
||||
if (!is_array($sectionValues))
|
||||
if (!\is_array($sectionValues))
|
||||
{
|
||||
if (strstr($sectionValues, JPATH_ROOT))
|
||||
{
|
||||
|
@ -238,14 +238,14 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getPhpSettings()
|
||||
public function &getPhpSettings(): array
|
||||
{
|
||||
if (!empty($this->php_settings))
|
||||
{
|
||||
return $this->php_settings;
|
||||
}
|
||||
|
||||
$this->php_settings = array(
|
||||
$this->php_settings = [
|
||||
'memory_limit' => ini_get('memory_limit'),
|
||||
'upload_max_filesize' => ini_get('upload_max_filesize'),
|
||||
'post_max_size' => ini_get('post_max_size'),
|
||||
|
@ -262,8 +262,9 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
'zip' => function_exists('zip_open') && function_exists('zip_read'),
|
||||
'mbstring' => extension_loaded('mbstring'),
|
||||
'iconv' => function_exists('iconv'),
|
||||
'intl' => function_exists('transliterator_transliterate'),
|
||||
'max_input_vars' => ini_get('max_input_vars'),
|
||||
);
|
||||
];
|
||||
|
||||
return $this->php_settings;
|
||||
}
|
||||
|
@ -275,7 +276,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getConfig()
|
||||
public function &getConfig(): array
|
||||
{
|
||||
if (!empty($this->config))
|
||||
{
|
||||
|
@ -284,11 +285,11 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
|
||||
$registry = new Registry(new \JConfig);
|
||||
$this->config = $registry->toArray();
|
||||
$hidden = array(
|
||||
$hidden = [
|
||||
'host', 'user', 'password', 'ftp_user', 'ftp_pass',
|
||||
'smtpuser', 'smtppass', 'redis_server_auth', 'session_redis_server_auth',
|
||||
'proxy_user', 'proxy_pass', 'secret'
|
||||
);
|
||||
];
|
||||
|
||||
foreach ($hidden as $key)
|
||||
{
|
||||
|
@ -305,7 +306,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getInfo()
|
||||
public function &getInfo(): array
|
||||
{
|
||||
if (!empty($this->info))
|
||||
{
|
||||
|
@ -314,7 +315,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
|
||||
$db = $this->getDbo();
|
||||
|
||||
$this->info = array(
|
||||
$this->info = [
|
||||
'php' => php_uname(),
|
||||
'dbserver' => $db->getServerType(),
|
||||
'dbversion' => $db->getVersion(),
|
||||
|
@ -327,7 +328,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
'sapi_name' => PHP_SAPI,
|
||||
'version' => (new Version)->getLongVersion(),
|
||||
'useragent' => $_SERVER['HTTP_USER_AGENT'] ?? '',
|
||||
);
|
||||
];
|
||||
|
||||
return $this->info;
|
||||
}
|
||||
|
@ -339,9 +340,9 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.4.1
|
||||
*/
|
||||
public function phpinfoEnabled()
|
||||
public function phpinfoEnabled(): bool
|
||||
{
|
||||
return !in_array('phpinfo', explode(',', ini_get('disable_functions')));
|
||||
return !\in_array('phpinfo', explode(',', ini_get('disable_functions')));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -354,7 +355,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
public function getSafeData($dataType, $public = true)
|
||||
public function getSafeData(string $dataType, bool $public = true): array
|
||||
{
|
||||
if (isset($this->safeData[$dataType]))
|
||||
{
|
||||
|
@ -365,7 +366,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
|
||||
if (!method_exists($this, $methodName))
|
||||
{
|
||||
return array();
|
||||
return [];
|
||||
}
|
||||
|
||||
$data = $this->$methodName($public);
|
||||
|
@ -382,7 +383,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getPHPInfo()
|
||||
public function &getPHPInfo(): string
|
||||
{
|
||||
if (!$this->phpinfoEnabled())
|
||||
{
|
||||
|
@ -406,7 +407,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
$output = preg_replace('#(\w),(\w)#', '\1, \2', $output);
|
||||
$output = preg_replace('#<hr />#', '', $output);
|
||||
$output = str_replace('<div class="text-center">', '', $output);
|
||||
$output = preg_replace('#<tr class="h">(.*)<\/tr>#', '<thead><tr class="h">$1</tr></thead><tbody>', $output);
|
||||
$output = preg_replace('#<tr class="h">(.*)</tr>#', '<thead><tr class="h">$1</tr></thead><tbody>', $output);
|
||||
$output = str_replace('</table>', '</tbody></table>', $output);
|
||||
$output = str_replace('</div>', '', $output);
|
||||
$this->php_info = $output;
|
||||
|
@ -421,7 +422,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
public function getPhpInfoArray()
|
||||
public function getPhpInfoArray(): array
|
||||
{
|
||||
// Already cached
|
||||
if (null !== $this->phpInfoArray)
|
||||
|
@ -443,10 +444,10 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
public function getExtensions()
|
||||
public function getExtensions(): array
|
||||
{
|
||||
$installed = array();
|
||||
$db = Factory::getDbo();
|
||||
$installed = [];
|
||||
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||
$query = $db->getQuery(true)
|
||||
->select('*')
|
||||
->from($db->quoteName('#__extensions'));
|
||||
|
@ -485,7 +486,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
continue;
|
||||
}
|
||||
|
||||
$installed[$extension->name] = array(
|
||||
$installed[$extension->name] = [
|
||||
'name' => $extension->name,
|
||||
'type' => $extension->type,
|
||||
'state' => $extension->enabled ? Text::_('JENABLED') : Text::_('JDISABLED'),
|
||||
|
@ -493,16 +494,16 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
'version' => 'unknown',
|
||||
'creationDate' => 'unknown',
|
||||
'authorUrl' => 'unknown',
|
||||
);
|
||||
];
|
||||
|
||||
$manifest = new Registry($extension->manifest_cache);
|
||||
|
||||
$extraData = array(
|
||||
$extraData = [
|
||||
'author' => $manifest->get('author', ''),
|
||||
'version' => $manifest->get('version', ''),
|
||||
'creationDate' => $manifest->get('creationDate', ''),
|
||||
'authorUrl' => $manifest->get('authorUrl', '')
|
||||
);
|
||||
];
|
||||
|
||||
$installed[$extension->name] = array_merge($installed[$extension->name], $extraData);
|
||||
}
|
||||
|
@ -513,20 +514,21 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
/**
|
||||
* Method to get the directory states
|
||||
*
|
||||
* @param bool $public If true no information is going to be removed
|
||||
* @param bool $public If true no information is going to be removed
|
||||
*
|
||||
* @return array States of directories
|
||||
*
|
||||
* @throws \Exception
|
||||
* @since 1.6
|
||||
*/
|
||||
public function getDirectory($public = false)
|
||||
public function getDirectory(bool $public = false): array
|
||||
{
|
||||
if (!empty($this->directories))
|
||||
{
|
||||
return $this->directories;
|
||||
}
|
||||
|
||||
$this->directories = array();
|
||||
$this->directories = [];
|
||||
|
||||
$registry = Factory::getApplication()->getConfig();
|
||||
$cparams = ComponentHelper::getParams('com_media');
|
||||
|
@ -679,9 +681,9 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 1.6
|
||||
*/
|
||||
private function addDirectory($name, $path, $message = '')
|
||||
private function addDirectory(string $name, string $path, string $message = ''): void
|
||||
{
|
||||
$this->directories[$name] = array('writable' => is_writable($path), 'message' => $message,);
|
||||
$this->directories[$name] = ['writable' => is_writable($path), 'message' => $message,];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -692,7 +694,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
* @note Has to be removed (it is present in the config...)
|
||||
* @since 1.6
|
||||
*/
|
||||
public function &getEditor()
|
||||
public function &getEditor(): string
|
||||
{
|
||||
if (!is_null($this->editor))
|
||||
{
|
||||
|
@ -714,14 +716,14 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
*
|
||||
* @since 3.5
|
||||
*/
|
||||
protected function parsePhpInfo($html)
|
||||
protected function parsePhpInfo(string $html): array
|
||||
{
|
||||
$html = strip_tags($html, '<h2><th><td>');
|
||||
$html = preg_replace('/<th[^>]*>([^<]+)<\/th>/', '<info>\1</info>', $html);
|
||||
$html = preg_replace('/<td[^>]*>([^<]+)<\/td>/', '<info>\1</info>', $html);
|
||||
$t = preg_split('/(<h2[^>]*>[^<]+<\/h2>)/', $html, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
$r = array();
|
||||
$count = count($t);
|
||||
$r = [];
|
||||
$count = \count($t);
|
||||
$p1 = '<info>([^<]+)<\/info>';
|
||||
$p2 = '/' . $p1 . '\s*' . $p1 . '\s*' . $p1 . '/';
|
||||
$p3 = '/' . $p1 . '\s*' . $p1 . '/';
|
||||
|
@ -738,7 +740,7 @@ class SysinfoModel extends BaseDatabaseModel
|
|||
// 3cols
|
||||
if (preg_match($p2, $val, $matchs))
|
||||
{
|
||||
$r[$name][trim($matchs[1])] = array(trim($matchs[2]), trim($matchs[3]),);
|
||||
$r[$name][trim($matchs[1])] = [trim($matchs[2]), trim($matchs[3]),];
|
||||
}
|
||||
// 2cols
|
||||
elseif (preg_match($p3, $val, $matchs))
|
||||
|
|
|
@ -50,7 +50,7 @@ class JsonView extends AbstractView
|
|||
|
||||
$data = $this->getLayoutData();
|
||||
|
||||
echo json_encode($data);
|
||||
echo json_encode($data, JSON_PRETTY_PRINT);
|
||||
|
||||
Factory::getApplication()->close();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ use Joomla\CMS\Router\Route;
|
|||
/** @var \Joomla\Component\Admin\Administrator\View\Help\HtmlView $this */
|
||||
|
||||
?>
|
||||
<form action="<?php echo Route::_('index.php?option=com_admin&view=help'); ?>" method="post" name="adminForm" id="adminForm">
|
||||
<form action="<?php echo Route::_('index.php?option=com_admin&view=help'); ?>" method="post" name="adminForm" id="adminForm" class="main-card">
|
||||
<div class="row mt-sm-3">
|
||||
<div id="sidebar" class="col-md-3">
|
||||
<button class="btn btn-sm btn-secondary my-2 options-menu d-md-none" type="button" data-bs-toggle="collapse" data-bs-target=".sidebar-nav" aria-controls="help-index" aria-expanded="false">
|
||||
|
|
|
@ -15,9 +15,7 @@ use Joomla\CMS\Language\Text;
|
|||
/** @var \Joomla\Component\Admin\Administrator\View\Sysinfo\HtmlView $this */
|
||||
|
||||
?>
|
||||
<div class="row">
|
||||
<?php // Begin Content ?>
|
||||
<div class="col-md-12">
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', ['active' => 'site']); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'site', Text::_('COM_ADMIN_SYSTEM_INFORMATION')); ?>
|
||||
|
@ -41,7 +39,5 @@ use Joomla\CMS\Language\Text;
|
|||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
|
||||
</div>
|
||||
<?php // End Content ?>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -153,12 +153,20 @@ use Joomla\CMS\Language\Text;
|
|||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<?php echo Text::_('COM_ADMIN_ICONV_AVAILABLE'); ?>
|
||||
iconv <?php echo Text::_('COM_ADMIN_EXTENSION_AVAILABLE'); ?>
|
||||
</th>
|
||||
<td>
|
||||
<?php echo HTMLHelper::_('phpsetting.set', $this->phpSettings['iconv']); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
intl <?php echo Text::_('COM_ADMIN_EXTENSION_AVAILABLE'); ?>
|
||||
</th>
|
||||
<td>
|
||||
<?php echo HTMLHelper::_('phpsetting.set', $this->phpSettings['intl']); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<?php echo Text::_('COM_ADMIN_MAX_INPUT_VARS'); ?>
|
||||
|
|
|
@ -3,40 +3,40 @@
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__banners` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`cid` int(11) NOT NULL DEFAULT 0,
|
||||
`type` int(11) NOT NULL DEFAULT 0,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`cid` int NOT NULL DEFAULT 0,
|
||||
`type` int NOT NULL DEFAULT 0,
|
||||
`name` varchar(255) NOT NULL DEFAULT '',
|
||||
`alias` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`imptotal` int(11) NOT NULL DEFAULT 0,
|
||||
`impmade` int(11) NOT NULL DEFAULT 0,
|
||||
`clicks` int(11) NOT NULL DEFAULT 0,
|
||||
`imptotal` int NOT NULL DEFAULT 0,
|
||||
`impmade` int NOT NULL DEFAULT 0,
|
||||
`clicks` int NOT NULL DEFAULT 0,
|
||||
`clickurl` varchar(200) NOT NULL DEFAULT '',
|
||||
`state` tinyint(3) NOT NULL DEFAULT 0,
|
||||
`catid` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`state` tinyint NOT NULL DEFAULT 0,
|
||||
`catid` int unsigned NOT NULL DEFAULT 0,
|
||||
`description` text NOT NULL,
|
||||
`custombannercode` varchar(2048) NOT NULL,
|
||||
`sticky` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`ordering` int(11) NOT NULL DEFAULT 0,
|
||||
`sticky` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`ordering` int NOT NULL DEFAULT 0,
|
||||
`metakey` text NOT NULL,
|
||||
`params` text NOT NULL,
|
||||
`own_prefix` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`own_prefix` tinyint NOT NULL DEFAULT 0,
|
||||
`metakey_prefix` varchar(400) NOT NULL DEFAULT '',
|
||||
`purchase_type` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`track_clicks` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`track_impressions` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`checked_out` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`purchase_type` tinyint NOT NULL DEFAULT -1,
|
||||
`track_clicks` tinyint NOT NULL DEFAULT -1,
|
||||
`track_impressions` tinyint NOT NULL DEFAULT -1,
|
||||
`checked_out` int unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`publish_up` datetime,
|
||||
`publish_down` datetime,
|
||||
`reset` datetime,
|
||||
`created` datetime NOT NULL,
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
`created_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`created_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`created_by_alias` varchar(255) NOT NULL DEFAULT '',
|
||||
`modified` datetime NOT NULL,
|
||||
`modified_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`version` int(10) unsigned NOT NULL DEFAULT 1,
|
||||
`modified_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`version` int unsigned NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_state` (`state`),
|
||||
KEY `idx_own_prefix` (`own_prefix`),
|
||||
|
@ -50,20 +50,20 @@ CREATE TABLE IF NOT EXISTS `#__banners` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__banner_clients` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL DEFAULT '',
|
||||
`contact` varchar(255) NOT NULL DEFAULT '',
|
||||
`email` varchar(255) NOT NULL DEFAULT '',
|
||||
`extrainfo` text NOT NULL,
|
||||
`state` tinyint(3) NOT NULL DEFAULT 0,
|
||||
`checked_out` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`state` tinyint NOT NULL DEFAULT 0,
|
||||
`checked_out` int unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`metakey` text NOT NULL,
|
||||
`own_prefix` tinyint(4) NOT NULL DEFAULT 0,
|
||||
`own_prefix` tinyint NOT NULL DEFAULT 0,
|
||||
`metakey_prefix` varchar(400) NOT NULL DEFAULT '',
|
||||
`purchase_type` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`track_clicks` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`track_impressions` tinyint(4) NOT NULL DEFAULT -1,
|
||||
`purchase_type` tinyint NOT NULL DEFAULT -1,
|
||||
`track_clicks` tinyint NOT NULL DEFAULT -1,
|
||||
`track_impressions` tinyint NOT NULL DEFAULT -1,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_own_prefix` (`own_prefix`),
|
||||
KEY `idx_metakey_prefix` (`metakey_prefix`(100))
|
||||
|
@ -75,9 +75,9 @@ CREATE TABLE IF NOT EXISTS `#__banner_clients` (
|
|||
|
||||
CREATE TABLE IF NOT EXISTS `#__banner_tracks` (
|
||||
`track_date` datetime NOT NULL,
|
||||
`track_type` int(10) unsigned NOT NULL,
|
||||
`banner_id` int(10) unsigned NOT NULL,
|
||||
`count` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`track_type` int unsigned NOT NULL,
|
||||
`banner_id` int unsigned NOT NULL,
|
||||
`count` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`track_date`,`track_type`,`banner_id`),
|
||||
KEY `idx_track_date` (`track_date`),
|
||||
KEY `idx_track_type` (`track_type`),
|
||||
|
|
|
@ -540,6 +540,9 @@ class TracksModel extends ListModel
|
|||
}
|
||||
|
||||
$this->content = file_get_contents($ziproot);
|
||||
|
||||
// Remove tmp zip file, it's no longer needed.
|
||||
File::delete($ziproot);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,34 +28,26 @@ $wa->useScript('keepalive')
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'details')); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'details', Text::_('COM_BANNERS_BANNER_DETAILS')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo $this->form->renderField('type'); ?>
|
||||
<div id="image">
|
||||
<?php echo $this->form->renderFieldset('image'); ?>
|
||||
</div>
|
||||
<div id="custom">
|
||||
<?php echo $this->form->renderField('custombannercode'); ?>
|
||||
</div>
|
||||
<?php
|
||||
echo $this->form->renderField('clickurl');
|
||||
echo $this->form->renderField('description');
|
||||
?>
|
||||
</div>
|
||||
<?php echo $this->form->renderField('type'); ?>
|
||||
<div id="image">
|
||||
<?php echo $this->form->renderFieldset('image'); ?>
|
||||
</div>
|
||||
<div id="custom">
|
||||
<?php echo $this->form->renderField('custombannercode'); ?>
|
||||
</div>
|
||||
<?php
|
||||
echo $this->form->renderField('clickurl');
|
||||
echo $this->form->renderField('description');
|
||||
?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
|
|
@ -18,7 +18,7 @@ $published = $this->state->get('filter.published');
|
|||
?>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
|
|
@ -27,31 +27,23 @@ $wa->useScript('keepalive')
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', ['active' => 'general']); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', empty($this->item->id) ? Text::_('COM_BANNERS_NEW_CLIENT') : Text::_('COM_BANNERS_EDIT_CLIENT')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php
|
||||
echo $this->form->renderField('contact');
|
||||
echo $this->form->renderField('email');
|
||||
echo $this->form->renderField('purchase_type');
|
||||
echo $this->form->renderField('track_impressions');
|
||||
echo $this->form->renderField('track_clicks');
|
||||
echo $this->form->renderFieldset('extra');
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
echo $this->form->renderField('contact');
|
||||
echo $this->form->renderField('email');
|
||||
echo $this->form->renderField('purchase_type');
|
||||
echo $this->form->renderField('track_impressions');
|
||||
echo $this->form->renderField('track_clicks');
|
||||
echo $this->form->renderFieldset('extra');
|
||||
?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
|
|
@ -17,6 +17,7 @@ use Joomla\CMS\Factory;
|
|||
use Joomla\CMS\Language\Associations;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
use Joomla\CMS\MVC\Model\ListModel;
|
||||
use Joomla\Database\DatabaseQuery;
|
||||
use Joomla\Database\ParameterType;
|
||||
use Joomla\Utilities\ArrayHelper;
|
||||
|
||||
|
@ -490,30 +491,22 @@ class CategoriesModel extends ListModel
|
|||
}
|
||||
|
||||
/**
|
||||
* Is this an empty state, I.e: no items of this type regardless of the searched for states.
|
||||
* Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension.
|
||||
*
|
||||
* @return boolean
|
||||
* @return DatabaseQuery
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
public function getisEmptyState()
|
||||
protected function getEmptyStateQuery()
|
||||
{
|
||||
$query = parent::getEmptyStateQuery();
|
||||
|
||||
// Get the extension from the filter
|
||||
$extension = $this->getState('filter.extension');
|
||||
|
||||
$sql = $this->query
|
||||
->clear('select')
|
||||
->clear('values')
|
||||
->clear('bounded')
|
||||
->clear('limit')
|
||||
->clear('order')
|
||||
->clear('where')
|
||||
->select('count(*)');
|
||||
|
||||
$sql->where($this->_db->quoteName('extension') . ' = :extension')
|
||||
$query->where($this->_db->quoteName('extension') . ' = :extension')
|
||||
->bind(':extension', $extension);
|
||||
|
||||
$this->_db->setQuery($sql);
|
||||
|
||||
return !($this->_db->loadResult() > 0);
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ $extension = $this->escape($this->state->get('filter.extension'));
|
|||
|
||||
?>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
@ -44,6 +44,7 @@ $extension = $this->escape($this->state->get('filter.extension'));
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if ($extension === 'com_content') : ?>
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="control-group">
|
||||
|
@ -56,5 +57,6 @@ $extension = $this->escape($this->state->get('filter.extension'));
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -42,24 +42,16 @@ $tmpl = $isModal || $input->get('tmpl', '', 'cmd') === 'component' ? '&tmpl=c
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('JCATEGORY')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo $this->form->getLabel('description'); ?>
|
||||
<?php echo $this->form->getInput('description'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $this->form->getLabel('description'); ?>
|
||||
<?php echo $this->form->getInput('description'); ?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card card-block">
|
||||
<div class="card-body">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -203,7 +203,6 @@
|
|||
filter="raw"
|
||||
autocomplete="off"
|
||||
size="30"
|
||||
hiddenDescription="true"
|
||||
lock="true"
|
||||
/>
|
||||
|
||||
|
@ -373,77 +372,23 @@
|
|||
/>
|
||||
</fieldset>
|
||||
|
||||
<fieldset name="ftp" label="CONFIG_FTP_SETTINGS_LABEL">
|
||||
<fieldset
|
||||
name="proxy"
|
||||
label="CONFIG_PROXY_SETTINGS_LABEL">
|
||||
|
||||
<field
|
||||
name="ftp_enable"
|
||||
name="behind_loadbalancer"
|
||||
type="radio"
|
||||
label="COM_CONFIG_FIELD_FTP_ENABLE_LABEL"
|
||||
label="COM_CONFIG_FIELD_LOADBALANCER_ENABLE_LABEL"
|
||||
description="COM_CONFIG_FIELD_LOADBALANCER_ENABLE_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
filter="boolean"
|
||||
>
|
||||
<option value="0">JNO</option>
|
||||
<option value="1">JYES</option>
|
||||
<option value="0">JNO</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="ftp_host"
|
||||
type="text"
|
||||
label="COM_CONFIG_FIELD_FTP_HOST_LABEL"
|
||||
filter="string"
|
||||
showon="ftp_enable:1"
|
||||
size="14"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="ftp_port"
|
||||
type="number"
|
||||
label="COM_CONFIG_FIELD_FTP_PORT_LABEL"
|
||||
showon="ftp_enable:1"
|
||||
min="1"
|
||||
max="65535"
|
||||
hint="21"
|
||||
validate="number"
|
||||
filter="integer"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="ftp_user"
|
||||
type="text"
|
||||
label="COM_CONFIG_FIELD_FTP_USERNAME_LABEL"
|
||||
filter="string"
|
||||
showon="ftp_enable:1"
|
||||
autocomplete="off"
|
||||
size="25"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="ftp_pass"
|
||||
type="password"
|
||||
label="COM_CONFIG_FIELD_FTP_PASSWORD_LABEL"
|
||||
filter="raw"
|
||||
showon="ftp_enable:1"
|
||||
autocomplete="off"
|
||||
size="25"
|
||||
lock="true"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="ftp_root"
|
||||
type="text"
|
||||
label="COM_CONFIG_FIELD_FTP_ROOT_LABEL"
|
||||
showon="ftp_enable:1"
|
||||
filter="string"
|
||||
size="50"
|
||||
/>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset
|
||||
name="proxy"
|
||||
label="CONFIG_PROXY_SETTINGS_LABEL">
|
||||
|
||||
<field
|
||||
name="proxy_enable"
|
||||
type="radio"
|
||||
|
@ -863,6 +808,7 @@
|
|||
name="force_ssl"
|
||||
type="list"
|
||||
label="COM_CONFIG_FIELD_FORCE_SSL_LABEL"
|
||||
description="COM_CONFIG_FIELD_FORCE_SSL_DESC"
|
||||
default="-1"
|
||||
filter="integer"
|
||||
validate="options"
|
||||
|
|
|
@ -12,7 +12,6 @@ namespace Joomla\Component\Config\Administrator\Controller;
|
|||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Application\CMSApplication;
|
||||
use Joomla\CMS\Client\ClientHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
|
@ -82,9 +81,6 @@ class ApplicationController extends BaseController
|
|||
|
||||
$this->app->setUserState('com_config.config.global.data', null);
|
||||
|
||||
// Set FTP credentials, if given.
|
||||
ClientHelper::setCredentialsFromRequest('ftp');
|
||||
|
||||
/** @var \Joomla\Component\Config\Administrator\Model\ApplicationModel $model */
|
||||
$model = $this->getModel('Application', 'Administrator');
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ namespace Joomla\Component\Config\Administrator\Controller;
|
|||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Application\CMSApplication;
|
||||
use Joomla\CMS\Client\ClientHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\FormController;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
|
@ -62,9 +61,6 @@ class ComponentController extends FormController
|
|||
// Check for request forgeries.
|
||||
$this->checkToken();
|
||||
|
||||
// Set FTP credentials, if given.
|
||||
ClientHelper::setCredentialsFromRequest('ftp');
|
||||
|
||||
$data = $this->input->get('jform', [], 'ARRAY');
|
||||
$id = $this->input->get('id', null, 'INT');
|
||||
$option = $this->input->get('component');
|
||||
|
|
|
@ -15,7 +15,6 @@ use Joomla\CMS\Access\Access;
|
|||
use Joomla\CMS\Access\Rules;
|
||||
use Joomla\CMS\Cache\Exception\CacheConnectingException;
|
||||
use Joomla\CMS\Cache\Exception\UnsupportedCacheException;
|
||||
use Joomla\CMS\Client\ClientHelper;
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filesystem\File;
|
||||
|
@ -50,7 +49,7 @@ class ApplicationModel extends FormModel
|
|||
* @var array
|
||||
* @since 3.9.23
|
||||
*/
|
||||
private $protectedConfigurationFields = array('password', 'secret', 'ftp_pass', 'smtppass', 'redis_server_auth', 'session_redis_server_auth');
|
||||
private $protectedConfigurationFields = array('password', 'secret', 'smtppass', 'redis_server_auth', 'session_redis_server_auth');
|
||||
|
||||
/**
|
||||
* Method to get a form object.
|
||||
|
@ -115,6 +114,12 @@ class ApplicationModel extends FormModel
|
|||
// Merge in the session data.
|
||||
if (!empty($temp))
|
||||
{
|
||||
// $temp can sometimes be an object, and we need it to be an array
|
||||
if (is_object($temp))
|
||||
{
|
||||
$temp = ArrayHelper::fromObject($temp);
|
||||
}
|
||||
|
||||
$data = array_merge($temp, $data);
|
||||
}
|
||||
|
||||
|
@ -861,14 +866,6 @@ class ApplicationModel extends FormModel
|
|||
$app->set('cors_allow_headers', $data['cors_allow_headers']);
|
||||
$app->set('cors_allow_methods', $data['cors_allow_methods']);
|
||||
|
||||
// Overwrite the old FTP credentials with the new ones.
|
||||
$app->set('ftp_enable', $data['ftp_enable']);
|
||||
$app->set('ftp_host', $data['ftp_host']);
|
||||
$app->set('ftp_port', $data['ftp_port']);
|
||||
$app->set('ftp_user', $data['ftp_user']);
|
||||
$app->set('ftp_pass', $data['ftp_pass']);
|
||||
$app->set('ftp_root', $data['ftp_root']);
|
||||
|
||||
// Clear cache of com_config component.
|
||||
$this->cleanCache('_system', 0);
|
||||
$this->cleanCache('_system', 1);
|
||||
|
@ -944,13 +941,10 @@ class ApplicationModel extends FormModel
|
|||
// Set the configuration file path.
|
||||
$file = JPATH_CONFIGURATION . '/configuration.php';
|
||||
|
||||
// Get the new FTP credentials.
|
||||
$ftp = ClientHelper::getCredentials('ftp', true);
|
||||
|
||||
$app = Factory::getApplication();
|
||||
|
||||
// Attempt to make the file writeable if using FTP.
|
||||
if (!$ftp['enabled'] && Path::isOwner($file) && !Path::setPermissions($file, '0644'))
|
||||
// Attempt to make the file writeable.
|
||||
if (Path::isOwner($file) && !Path::setPermissions($file, '0644'))
|
||||
{
|
||||
$app->enqueueMessage(Text::_('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTWRITABLE'), 'notice');
|
||||
}
|
||||
|
@ -969,8 +963,8 @@ class ApplicationModel extends FormModel
|
|||
\opcache_invalidate($file);
|
||||
}
|
||||
|
||||
// Attempt to make the file unwriteable if NOT using FTP.
|
||||
if (!$ftp['enabled'] && Path::isOwner($file) && !Path::setPermissions($file, '0444'))
|
||||
// Attempt to make the file unwriteable.
|
||||
if (Path::isOwner($file) && !Path::setPermissions($file, '0444'))
|
||||
{
|
||||
$app->enqueueMessage(Text::_('COM_CONFIG_ERROR_CONFIGURATION_PHP_NOTUNWRITABLE'), 'notice');
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ namespace Joomla\Component\Config\Administrator\View\Application;
|
|||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Client\ClientHelper;
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
@ -91,12 +90,8 @@ class HtmlView extends BaseHtmlView
|
|||
// Get the params for com_media.
|
||||
$mediaParams = ComponentHelper::getParams('com_media');
|
||||
|
||||
// Load settings for the FTP layer.
|
||||
$ftp = ClientHelper::setCredentialsFromRequest('ftp');
|
||||
|
||||
$this->form = &$form;
|
||||
$this->data = &$data;
|
||||
$this->ftp = &$ftp;
|
||||
$this->usersParams = &$usersParams;
|
||||
$this->mediaParams = &$mediaParams;
|
||||
$this->components = ConfigHelper::getComponentsWithConfig();
|
||||
|
|
|
@ -24,21 +24,18 @@ Text::script('NOTICE');
|
|||
Text::script('MESSAGE');
|
||||
?>
|
||||
|
||||
<form action="<?php echo Route::_('index.php?option=com_config'); ?>" id="application-form" method="post" name="adminForm" class="form-validate">
|
||||
<div class="row">
|
||||
<!-- Begin Sidebar -->
|
||||
<form action="<?php echo Route::_('index.php?option=com_config'); ?>" id="application-form" method="post" name="adminForm" class="main-card form-validate">
|
||||
<div class="row main-card-columns">
|
||||
<div id="sidebar" class="col-md-3">
|
||||
<button class="btn btn-sm btn-secondary my-2 options-menu d-md-none" type="button" data-bs-toggle="collapse" data-bs-target=".sidebar-nav" aria-controls="sidebar-nav" aria-expanded="false" aria-label="<?php echo Text::_('JTOGGLE_SIDEBAR_MENU'); ?>">
|
||||
<span class="icon-align-justify" aria-hidden="true"></span>
|
||||
<?php echo Text::_('JTOGGLE_SIDEBAR_MENU'); ?>
|
||||
</button>
|
||||
<div id="sidebar-nav" class="sidebar-nav bg-light p-2 my-2">
|
||||
<div id="sidebar-nav" class="sidebar-nav">
|
||||
<?php echo $this->loadTemplate('navigation'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<!-- End Sidebar -->
|
||||
<!-- Begin Content -->
|
||||
<div class="col-md-9 mt-2">
|
||||
<div class="col-md-9">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'configTabs', array('active' => 'page-site')); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'configTabs', 'page-site', Text::_('JSITE')); ?>
|
||||
<?php echo $this->loadTemplate('site'); ?>
|
||||
|
@ -57,7 +54,6 @@ Text::script('MESSAGE');
|
|||
<?php echo $this->loadTemplate('server'); ?>
|
||||
<?php echo $this->loadTemplate('locale'); ?>
|
||||
<?php echo $this->loadTemplate('webservices'); ?>
|
||||
<?php echo $this->loadTemplate('ftp'); ?>
|
||||
<?php echo $this->loadTemplate('proxy'); ?>
|
||||
<?php echo $this->loadTemplate('database'); ?>
|
||||
<?php echo $this->loadTemplate('mail'); ?>
|
||||
|
@ -72,12 +68,6 @@ Text::script('MESSAGE');
|
|||
<?php echo $this->loadTemplate('filters'); ?>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php if ($this->ftp) : ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'configTabs', 'page-ftp', Text::_('COM_CONFIG_FTP_SETTINGS')); ?>
|
||||
<?php echo $this->loadTemplate('ftplogin'); ?>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'configTabs', 'page-permissions', Text::_('COM_CONFIG_PERMISSIONS')); ?>
|
||||
<?php echo $this->loadTemplate('permissions'); ?>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
@ -86,6 +76,5 @@ Text::script('MESSAGE');
|
|||
<input type="hidden" name="task" value="">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
</div>
|
||||
<!-- End Content -->
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_config
|
||||
*
|
||||
* @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
$this->name = Text::_('COM_CONFIG_FTP_SETTINGS');
|
||||
$this->fieldsname = 'ftp';
|
||||
$this->formclass = 'options-form';
|
||||
|
||||
echo LayoutHelper::render('joomla.content.options_default', $this);
|
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_config
|
||||
*
|
||||
* @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
?>
|
||||
<fieldset class="options-form">
|
||||
<legend><?php echo Text::_('COM_CONFIG_FTP_DETAILS'); ?></legend>
|
||||
<p><?php echo Text::_('COM_CONFIG_FTP_DETAILS_TIP'); ?></p>
|
||||
<?php if ($this->ftp instanceof Exception) : ?>
|
||||
<?php /** @var Exception $this */ ?>
|
||||
<p><?php echo Text::_($this->ftp->message); ?></p>
|
||||
<?php endif; ?>
|
||||
<div>
|
||||
<div class="control-group">
|
||||
<div class="control-label">
|
||||
<label for="username"><?php echo Text::_('JGLOBAL_USERNAME'); ?></label>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<input type="text" id="username" name="username" class="form-control" size="70" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<div class="control-label">
|
||||
<label for="password"><?php echo Text::_('JGLOBAL_PASSWORD'); ?></label>
|
||||
</div>
|
||||
<div class="controls">
|
||||
<input type="password" id="password" name="password" class="form-control" size="70" value="">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
|
@ -38,22 +38,21 @@ if ($this->fieldsets)
|
|||
$xml = $this->form->getXml();
|
||||
?>
|
||||
|
||||
<form action="<?php echo Route::_('index.php?option=com_config'); ?>" id="component-form" method="post" class="form-validate" name="adminForm" autocomplete="off">
|
||||
<div class="row">
|
||||
|
||||
<form action="<?php echo Route::_('index.php?option=com_config'); ?>" id="component-form" method="post" class="form-validate main-card" name="adminForm" autocomplete="off">
|
||||
<div class="row main-card-columns">
|
||||
<?php // Begin Sidebar ?>
|
||||
<div class="col-md-3" id="sidebar">
|
||||
<button class="btn btn-sm btn-secondary my-2 options-menu d-md-none" type="button" data-bs-toggle="collapse" data-bs-target=".sidebar-nav" aria-controls="sidebar-nav" aria-expanded="false">
|
||||
<span class="icon-align-justify" aria-hidden="true"></span>
|
||||
<?php echo Text::_('JTOGGLE_SIDEBAR_MENU'); ?>
|
||||
</button>
|
||||
<div id="sidebar-nav" class="sidebar-nav bg-light p-2 my-2">
|
||||
<div id="sidebar-nav" class="sidebar-nav">
|
||||
<?php echo $this->loadTemplate('navigation'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php // End Sidebar ?>
|
||||
|
||||
<div class="col-md-9 mt-2" id="config">
|
||||
<div class="col-md-9" id="config">
|
||||
<?php if ($this->fieldsets) : ?>
|
||||
<?php $opentab = 0; ?>
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__contact_details` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`alias` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`con_position` varchar(255),
|
||||
|
@ -17,15 +17,15 @@ CREATE TABLE IF NOT EXISTS `#__contact_details` (
|
|||
`misc` mediumtext,
|
||||
`image` varchar(255),
|
||||
`email_to` varchar(255),
|
||||
`default_con` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`checked_out` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`default_con` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`published` tinyint NOT NULL DEFAULT 0,
|
||||
`checked_out` int unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`ordering` int(11) NOT NULL DEFAULT 0,
|
||||
`ordering` int NOT NULL DEFAULT 0,
|
||||
`params` text NOT NULL,
|
||||
`user_id` int(11) NOT NULL DEFAULT 0,
|
||||
`catid` int(11) NOT NULL DEFAULT 0,
|
||||
`access` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`user_id` int NOT NULL DEFAULT 0,
|
||||
`catid` int NOT NULL DEFAULT 0,
|
||||
`access` int unsigned NOT NULL DEFAULT 0,
|
||||
`mobile` varchar(255) NOT NULL DEFAULT '',
|
||||
`webpage` varchar(255) NOT NULL DEFAULT '',
|
||||
`sortname1` varchar(255) NOT NULL DEFAULT '',
|
||||
|
@ -33,18 +33,18 @@ CREATE TABLE IF NOT EXISTS `#__contact_details` (
|
|||
`sortname3` varchar(255) NOT NULL DEFAULT '',
|
||||
`language` varchar(7) NOT NULL,
|
||||
`created` datetime NOT NULL,
|
||||
`created_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`created_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`created_by_alias` varchar(255) NOT NULL DEFAULT '',
|
||||
`modified` datetime NOT NULL,
|
||||
`modified_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`modified_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`metakey` text NOT NULL,
|
||||
`metadesc` text NOT NULL,
|
||||
`metadata` text NOT NULL,
|
||||
`featured` tinyint(3) unsigned NOT NULL DEFAULT 0 COMMENT 'Set if contact is featured.',
|
||||
`featured` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'Set if contact is featured.',
|
||||
`publish_up` datetime,
|
||||
`publish_down` datetime,
|
||||
`version` int(10) unsigned NOT NULL DEFAULT 1,
|
||||
`hits` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`version` int unsigned NOT NULL DEFAULT 1,
|
||||
`hits` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_access` (`access`),
|
||||
KEY `idx_checkout` (`checked_out`),
|
||||
|
|
|
@ -132,20 +132,21 @@ class AdministratorService
|
|||
);
|
||||
$state = ArrayHelper::getValue($states, (int) $value, $states[1]);
|
||||
$icon = $state[0] === 'featured' ? 'star featured' : 'circle';
|
||||
$onclick = 'onclick="return Joomla.listItemTask(\'cb' . $i . '\',\'' . $state[1] . '\')"';
|
||||
$tooltipText = Text::_($state[3]);
|
||||
|
||||
if ($canChange)
|
||||
if (!$canChange)
|
||||
{
|
||||
$html = '<a href="#" onclick="return Joomla.listItemTask(\'cb' . $i . '\',\'' . $state[1] . '\')" class="tbody-icon'
|
||||
. ($value == 1 ? ' active' : '') . '" aria-labelledby="cb' . $i . '-desc">'
|
||||
. '<span class="icon-' . $icon . '" aria-hidden="true"></span></a>'
|
||||
. '<div role="tooltip" id="cb' . $i . '-desc">' . Text::_($state[3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$html = '<a class="tbody-icon disabled' . ($value == 1 ? ' active' : '')
|
||||
. '" title="' . Text::_($state[2]) . '"><span class="icon-' . $icon . '" aria-hidden="true"></span></a>';
|
||||
$onclick = 'disabled';
|
||||
$tooltipText = Text::_($state[2]);
|
||||
}
|
||||
|
||||
$html = '<button type="submit" class="tbody-icon' . ($value == 1 ? ' active' : '') . '"'
|
||||
. ' aria-labelledby="cb' . $i . '-desc" ' . $onclick . '>'
|
||||
. '<span class="icon-' . $icon . '" aria-hidden="true"></span>'
|
||||
. '</button>'
|
||||
. '<div role="tooltip" id="cb' . $i . '-desc">' . $tooltipText . '</div>';
|
||||
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,45 +40,37 @@ $tmpl = $isModal || $input->get('tmpl', '', 'cmd') === 'component' ? '&tmpl=c
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'details')); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'details', empty($this->item->id) ? Text::_('COM_CONTACT_NEW_CONTACT') : Text::_('COM_CONTACT_EDIT_CONTACT')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<?php echo $this->form->renderField('user_id'); ?>
|
||||
<?php echo $this->form->renderField('image'); ?>
|
||||
<?php echo $this->form->renderField('con_position'); ?>
|
||||
<?php echo $this->form->renderField('email_to'); ?>
|
||||
<?php echo $this->form->renderField('address'); ?>
|
||||
<?php echo $this->form->renderField('suburb'); ?>
|
||||
<?php echo $this->form->renderField('state'); ?>
|
||||
<?php echo $this->form->renderField('postcode'); ?>
|
||||
<?php echo $this->form->renderField('country'); ?>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<?php echo $this->form->renderField('telephone'); ?>
|
||||
<?php echo $this->form->renderField('mobile'); ?>
|
||||
<?php echo $this->form->renderField('fax'); ?>
|
||||
<?php echo $this->form->renderField('webpage'); ?>
|
||||
<?php echo $this->form->renderField('sortname1'); ?>
|
||||
<?php echo $this->form->renderField('sortname2'); ?>
|
||||
<?php echo $this->form->renderField('sortname3'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<?php echo $this->form->renderField('user_id'); ?>
|
||||
<?php echo $this->form->renderField('image'); ?>
|
||||
<?php echo $this->form->renderField('con_position'); ?>
|
||||
<?php echo $this->form->renderField('email_to'); ?>
|
||||
<?php echo $this->form->renderField('address'); ?>
|
||||
<?php echo $this->form->renderField('suburb'); ?>
|
||||
<?php echo $this->form->renderField('state'); ?>
|
||||
<?php echo $this->form->renderField('postcode'); ?>
|
||||
<?php echo $this->form->renderField('country'); ?>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<?php echo $this->form->renderField('telephone'); ?>
|
||||
<?php echo $this->form->renderField('mobile'); ?>
|
||||
<?php echo $this->form->renderField('fax'); ?>
|
||||
<?php echo $this->form->renderField('webpage'); ?>
|
||||
<?php echo $this->form->renderField('sortname1'); ?>
|
||||
<?php echo $this->form->renderField('sortname2'); ?>
|
||||
<?php echo $this->form->renderField('sortname3'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
|
|
@ -14,7 +14,7 @@ $published = $this->state->get('filter.published');
|
|||
$noUser = true;
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
|
|
@ -258,6 +258,7 @@
|
|||
name="readmore_limit"
|
||||
type="number"
|
||||
label="JGLOBAL_SHOW_READMORE_LIMIT_LABEL"
|
||||
filter="integer"
|
||||
default="100"
|
||||
showon="show_readmore:1[AND]show_readmore_title:1"
|
||||
/>
|
||||
|
@ -722,6 +723,7 @@
|
|||
name="num_leading_articles"
|
||||
type="number"
|
||||
label="JGLOBAL_NUM_LEADING_ARTICLES_LABEL"
|
||||
filter="integer"
|
||||
default="1"
|
||||
parentclass="stack span-1"
|
||||
/>
|
||||
|
@ -738,22 +740,19 @@
|
|||
name="num_intro_articles"
|
||||
type="number"
|
||||
label="JGLOBAL_NUM_INTRO_ARTICLES_LABEL"
|
||||
filter="integer"
|
||||
default="4"
|
||||
parentclass="stack span-1"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="num_columns"
|
||||
type="list"
|
||||
type="number"
|
||||
label="JGLOBAL_NUM_COLUMNS_LABEL"
|
||||
filter="integer"
|
||||
default="1"
|
||||
parentclass="stack span-1-inline"
|
||||
>
|
||||
<option value="1">J1</option>
|
||||
<option value="2">J2</option>
|
||||
<option value="3">J3</option>
|
||||
<option value="4">J4</option>
|
||||
</field>
|
||||
/>
|
||||
|
||||
<field
|
||||
name="multi_column_order"
|
||||
|
@ -761,6 +760,7 @@
|
|||
label="JGLOBAL_MULTI_COLUMN_ORDER_LABEL"
|
||||
default="0"
|
||||
parentclass="stack span-1-inline"
|
||||
validate="options"
|
||||
>
|
||||
<option value="0">JGLOBAL_BLOG_DOWN_OPTION</option>
|
||||
<option value="1">JGLOBAL_BLOG_ACROSS_OPTION</option>
|
||||
|
@ -778,6 +778,7 @@
|
|||
name="num_links"
|
||||
type="number"
|
||||
label="JGLOBAL_NUM_LINKS_LABEL"
|
||||
filter="integer"
|
||||
default="4"
|
||||
parentclass="stack span-1"
|
||||
/>
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
class="form-select-color-state"
|
||||
size="1"
|
||||
default="1"
|
||||
validate="options"
|
||||
>
|
||||
<option value="1">JPUBLISHED</option>
|
||||
<option value="0">JUNPUBLISHED</option>
|
||||
|
|
|
@ -55,25 +55,21 @@ $tmpl = $isModal || $input->get('tmpl', '', 'cmd') === 'component' ? '&tmpl=c
|
|||
<form action="<?php echo Route::_('index.php?option=com_content&layout=' . $layout . $tmpl . '&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="item-form" aria-label="<?php echo Text::_('COM_CONTENT_FORM_TITLE_' . ( (int) $this->item->id === 0 ? 'NEW' : 'EDIT'), true); ?>" class="form-validate">
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('COM_CONTENT_ARTICLE_CONTENT')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div>
|
||||
<div class="card-body">
|
||||
<fieldset class="adminform">
|
||||
<?php echo $this->form->getLabel('articletext'); ?>
|
||||
<?php echo $this->form->getInput('articletext'); ?>
|
||||
</fieldset>
|
||||
</div>
|
||||
<fieldset class="adminform">
|
||||
<?php echo $this->form->getLabel('articletext'); ?>
|
||||
<?php echo $this->form->getInput('articletext'); ?>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="px-3">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -26,9 +26,6 @@ use Joomla\Utilities\ArrayHelper;
|
|||
|
||||
HTMLHelper::_('behavior.multiselect');
|
||||
|
||||
// Just for the tests :(
|
||||
HTMLHelper::_('jquery.framework');
|
||||
|
||||
$app = Factory::getApplication();
|
||||
$user = Factory::getUser();
|
||||
$userId = $user->get('id');
|
||||
|
@ -217,26 +214,26 @@ $assoc = Associations::isEnabled();
|
|||
<?php endif; ?>
|
||||
</td>
|
||||
<?php if ($workflow_enabled) : ?>
|
||||
<td class="article-stage">
|
||||
<div class="d-flex align-items-center tbody-icon small">
|
||||
<?php
|
||||
$options = [
|
||||
'transitions' => $transitions,
|
||||
'title' => Text::_($item->stage_title),
|
||||
'tip_content' => Text::sprintf('JWORKFLOW', Text::_($item->workflow_title))
|
||||
];
|
||||
<td class="article-stage text-center">
|
||||
<?php
|
||||
$options = [
|
||||
'transitions' => $transitions,
|
||||
'title' => Text::_($item->stage_title),
|
||||
'tip_content' => Text::sprintf('JWORKFLOW', Text::_($item->workflow_title)),
|
||||
'id' => 'workflow-' . $item->id
|
||||
];
|
||||
|
||||
echo (new TransitionButton($options))
|
||||
->render(0, $i);
|
||||
?>
|
||||
</div>
|
||||
echo (new TransitionButton($options))
|
||||
->render(0, $i);
|
||||
?>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<td class="text-center d-none d-md-table-cell">
|
||||
<?php
|
||||
$options = [
|
||||
'task_prefix' => 'articles.',
|
||||
'disabled' => $workflow_featured || !$canChange
|
||||
'disabled' => $workflow_featured || !$canChange,
|
||||
'id' => 'featured-' . $item->id
|
||||
];
|
||||
|
||||
echo (new FeaturedButton)
|
||||
|
@ -247,7 +244,8 @@ $assoc = Associations::isEnabled();
|
|||
<?php
|
||||
$options = [
|
||||
'task_prefix' => 'articles.',
|
||||
'disabled' => $workflow_state || !$canChange
|
||||
'disabled' => $workflow_state || !$canChange,
|
||||
'id' => 'state-' . $item->id
|
||||
];
|
||||
|
||||
echo (new PublishedButton)->render((int) $item->state, $i, $options, $item->publish_up, $item->publish_down);
|
||||
|
|
|
@ -19,7 +19,7 @@ $published = (int) $this->state->get('filter.published');
|
|||
$user = Factory::getUser();
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* @package Joomla.Administrator
|
||||
* @subpackage com_content
|
||||
*
|
||||
* @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
|
|
|
@ -11,8 +11,15 @@ namespace Joomla\Component\Contenthistory\Administrator\View\History;
|
|||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filter\InputFilter;
|
||||
use Joomla\CMS\MVC\View\GenericDataException;
|
||||
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
||||
use Joomla\CMS\Pagination\Pagination;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Session\Session;
|
||||
use Joomla\CMS\Toolbar\Toolbar;
|
||||
use Joomla\CMS\Toolbar\ToolbarFactoryInterface;
|
||||
|
||||
/**
|
||||
* View class for a list of contenthistory.
|
||||
|
@ -31,7 +38,7 @@ class HtmlView extends BaseHtmlView
|
|||
/**
|
||||
* The model state
|
||||
*
|
||||
* @var \Joomla\CMS\Pagination\Pagination
|
||||
* @var Pagination
|
||||
*/
|
||||
protected $pagination;
|
||||
|
||||
|
@ -63,6 +70,72 @@ class HtmlView extends BaseHtmlView
|
|||
throw new GenericDataException(implode("\n", $errors), 500);
|
||||
}
|
||||
|
||||
$this->toolbar = $this->addToolbar();
|
||||
|
||||
return parent::display($tpl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the page toolbar.
|
||||
*
|
||||
* @return Toolbar
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
protected function addToolbar(): Toolbar
|
||||
{
|
||||
/** @var Toolbar $toolbar */
|
||||
$toolbar = Factory::getContainer()->get(ToolbarFactoryInterface::class)->createToolbar('toolbar');
|
||||
|
||||
// Cache a session token for reuse throughout.
|
||||
$token = Session::getFormToken();
|
||||
|
||||
// Clean up input to ensure a clean url.
|
||||
$aliasArray = explode('.', $this->state->item_id);
|
||||
$option = $aliasArray[1] == 'category'
|
||||
? 'com_categories&extension=' . implode('.', array_slice($aliasArray, 0, count($aliasArray) - 2))
|
||||
: $aliasArray[0];
|
||||
$filter = InputFilter::getInstance();
|
||||
$task = $filter->clean($aliasArray[1], 'cmd') . '.loadhistory';
|
||||
|
||||
// Build the final urls.
|
||||
$loadUrl = Route::_('index.php?option=' . $filter->clean($option, 'cmd') . '&task=' . $task . '&' . $token . '=1');
|
||||
$previewUrl = Route::_('index.php?option=com_contenthistory&view=preview&layout=preview&tmpl=component&' . $token . '=1');
|
||||
$compareUrl = Route::_('index.php?option=com_contenthistory&view=compare&layout=compare&tmpl=component&' . $token . '=1');
|
||||
|
||||
$toolbar->basicButton('load')
|
||||
->attributes(['data-url' => $loadUrl])
|
||||
->icon('icon-upload')
|
||||
->buttonClass('btn btn-success')
|
||||
->text('COM_CONTENTHISTORY_BUTTON_LOAD')
|
||||
->listCheck(true);
|
||||
|
||||
$toolbar->basicButton('preview')
|
||||
->attributes(['data-url' => $previewUrl])
|
||||
->icon('icon-search')
|
||||
->text('COM_CONTENTHISTORY_BUTTON_PREVIEW')
|
||||
->listCheck(true);
|
||||
|
||||
$toolbar->basicButton('compare')
|
||||
->attributes(['data-url' => $compareUrl])
|
||||
->icon('icon-search-plus')
|
||||
->text('COM_CONTENTHISTORY_BUTTON_COMPARE')
|
||||
->listCheck(true);
|
||||
|
||||
$toolbar->basicButton('keep')
|
||||
->task('history.keep')
|
||||
->buttonClass('btn btn-inverse')
|
||||
->icon('icon-lock')
|
||||
->text('COM_CONTENTHISTORY_BUTTON_KEEP')
|
||||
->listCheck(true);
|
||||
|
||||
$toolbar->basicButton('delete')
|
||||
->task('history.delete')
|
||||
->buttonClass('btn btn-danger')
|
||||
->icon('icon-times')
|
||||
->text('COM_CONTENTHISTORY_BUTTON_DELETE')
|
||||
->listCheck(true);
|
||||
|
||||
return $toolbar;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Filter\InputFilter;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Router\Route;
|
||||
|
@ -20,18 +18,6 @@ Session::checkToken('get') or die(Text::_('JINVALID_TOKEN'));
|
|||
|
||||
HTMLHelper::_('behavior.multiselect');
|
||||
|
||||
$input = Factory::getApplication()->input;
|
||||
$field = $input->getCmd('field');
|
||||
$function = 'jSelectContenthistory_' . $field;
|
||||
$listOrder = $this->escape($this->state->get('list.ordering'));
|
||||
$listDirn = $this->escape($this->state->get('list.direction'));
|
||||
$deleteMessage = "alert(Joomla.Text._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST'));";
|
||||
$aliasArray = explode('.', $this->state->item_id);
|
||||
$option = ($aliasArray[1] == 'category') ? 'com_categories&extension=' . implode('.', array_slice($aliasArray, 0, count($aliasArray) - 2)) : $aliasArray[0];
|
||||
$filter = InputFilter::getInstance();
|
||||
$task = $filter->clean($aliasArray[1]) . '.loadhistory';
|
||||
$loadUrl = Route::_('index.php?option=' . $filter->clean($option) . '&task=' . $task);
|
||||
$deleteUrl = Route::_('index.php?option=com_contenthistory&task=history.delete');
|
||||
$hash = $this->state->get('sha1_hash');
|
||||
$formUrl = 'index.php?option=com_contenthistory&view=history&layout=modal&tmpl=component&item_id=' . $this->state->get('item_id') . '&' . Session::getFormToken() . '=1';
|
||||
|
||||
|
@ -42,34 +28,15 @@ Text::script('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST');
|
|||
/** @var Joomla\CMS\WebAsset\WebAssetManager $wa */
|
||||
$wa = $this->document->getWebAssetManager();
|
||||
$wa->useScript('com_contenthistory.admin-history-modal');
|
||||
|
||||
?>
|
||||
<div class="container-popup">
|
||||
<div id="subhead" class="subhead mb-3">
|
||||
<nav aria-label="toolbar">
|
||||
<div class="float-end mb-3">
|
||||
<button id="toolbar-load" type="submit" class="btn btn-secondary" aria-label="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_LOAD_DESC'); ?>" title="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_LOAD_DESC'); ?>" data-url="<?php echo Route::_($loadUrl); ?>">
|
||||
<span class="icon-upload" aria-hidden="true"></span>
|
||||
<span class="d-none d-md-inline"><?php echo Text::_('COM_CONTENTHISTORY_BUTTON_LOAD'); ?></span>
|
||||
</button>
|
||||
<button id="toolbar-preview" type="button" class="btn btn-secondary" aria-label="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_PREVIEW_DESC'); ?>" title="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_PREVIEW_DESC'); ?>" data-url="<?php echo Route::_('index.php?option=com_contenthistory&view=preview&layout=preview&tmpl=component&' . Session::getFormToken() . '=1'); ?>">
|
||||
<span class="icon-search" aria-hidden="true"></span>
|
||||
<span class="d-none d-md-inline"><?php echo Text::_('COM_CONTENTHISTORY_BUTTON_PREVIEW'); ?></span>
|
||||
</button>
|
||||
<button id="toolbar-compare" type="button" class="btn btn-secondary" aria-label="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_COMPARE_DESC'); ?>" title="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_COMPARE_DESC'); ?>" data-url="<?php echo Route::_('index.php?option=com_contenthistory&view=compare&layout=compare&tmpl=component&' . Session::getFormToken() . '=1'); ?>">
|
||||
<span class="icon-search-plus" aria-hidden="true"></span>
|
||||
<span class="d-none d-md-inline"><?php echo Text::_('COM_CONTENTHISTORY_BUTTON_COMPARE'); ?></span>
|
||||
</button>
|
||||
<button onclick="if (document.adminForm.boxchecked.value==0){<?php echo $deleteMessage; ?>}else{ Joomla.submitbutton('history.keep')}" class="btn btn-secondary pointer" aria-label="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_KEEP_DESC'); ?>" title="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_KEEP_DESC'); ?>">
|
||||
<span class="icon-lock" aria-hidden="true"></span>
|
||||
<span class="d-none d-md-inline"><?php echo Text::_('COM_CONTENTHISTORY_BUTTON_KEEP'); ?></span>
|
||||
</button>
|
||||
<button onclick="if (document.adminForm.boxchecked.value==0){<?php echo $deleteMessage; ?>}else{ Joomla.submitbutton('history.delete')}" class="btn btn-secondary pointer" aria-label="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_DELETE_DESC'); ?>" title="<?php echo Text::_('COM_CONTENTHISTORY_BUTTON_DELETE_DESC'); ?>">
|
||||
<span class="icon-times" aria-hidden="true"></span>
|
||||
<span class="d-none d-md-inline"><?php echo Text::_('COM_CONTENTHISTORY_BUTTON_DELETE'); ?></span>
|
||||
</button>
|
||||
<div class="btn-toolbar d-flex" id="toolbar">
|
||||
<?php echo $this->toolbar->render(); ?>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
<form action="<?php echo Route::_($formUrl); ?>" method="post" name="adminForm" id="adminForm">
|
||||
<table class="table table-sm">
|
||||
<caption class="visually-hidden">
|
||||
|
|
|
@ -43,7 +43,7 @@ echo HTMLHelper::_(
|
|||
'modalWidth' => '80',
|
||||
'footer' => '<button type="button" class="button-cancel btn btn-danger" data-bs-dismiss="modal" data-bs-target="#closeBtn">'
|
||||
. Text::_('JLIB_HTML_BEHAVIOR_CLOSE') . '</button>'
|
||||
. '<button type="button" class="button-save btn btn-success hidden" data-bs-target="#saveBtn">'
|
||||
. '<button type="button" id="btnModalSaveAndClose" class="button-save btn btn-success hidden" data-bs-target="#saveBtn">'
|
||||
. Text::_('JSAVE') . '</button>',
|
||||
)
|
||||
);
|
||||
|
@ -63,12 +63,16 @@ echo HTMLHelper::_(
|
|||
}
|
||||
?>
|
||||
<?php if ($user->authorise('core.manage', 'com_modules')) : ?>
|
||||
<button type="button" data-bs-toggle="modal" data-bs-target="#moduleDashboardAddModal" class="cpanel-add-module text-center py-5 w-100 d-block">
|
||||
<div class="cpanel-add-module-icon text-center">
|
||||
<span class="icon-plus-square text-light mt-2"></span>
|
||||
<div class="module-wrapper">
|
||||
<div class="card">
|
||||
<button type="button" data-bs-toggle="modal" data-bs-target="#moduleDashboardAddModal" class="cpanel-add-module">
|
||||
<div class="cpanel-add-module-icon">
|
||||
<span class="icon-plus-square" aria-hidden="true"></span>
|
||||
</div>
|
||||
<span><?php echo Text::_('COM_CPANEL_ADD_DASHBOARD_MODULE'); ?></span>
|
||||
</button>
|
||||
</div>
|
||||
<span><?php echo Text::_('COM_CPANEL_ADD_DASHBOARD_MODULE'); ?></span>
|
||||
</button>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<access component="com_csp">
|
||||
<section name="component">
|
||||
<action name="core.admin" title="JACTION_ADMIN" />
|
||||
<action name="core.options" title="JACTION_OPTIONS" />
|
||||
<action name="core.manage" title="JACTION_MANAGE" />
|
||||
<action name="core.create" title="JACTION_CREATE" />
|
||||
<action name="core.delete" title="JACTION_DELETE" />
|
||||
<action name="core.edit" title="JACTION_EDIT" />
|
||||
<action name="core.edit.state" title="JACTION_EDITSTATE" />
|
||||
</section>
|
||||
</access>
|
|
@ -1,191 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<config>
|
||||
<fieldset name="csp" label="Content-Security-Policy (CSP)">
|
||||
<field
|
||||
name="contentsecuritypolicy"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="contentsecuritypolicy_client"
|
||||
type="list"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_CLIENT"
|
||||
default="site"
|
||||
validate="options"
|
||||
showon="contentsecuritypolicy:1"
|
||||
>
|
||||
<option value="site">JSITE</option>
|
||||
<option value="administrator">JADMINISTRATOR</option>
|
||||
<option value="both">COM_CSP_HEADER_CLIENT_BOTH</option>
|
||||
</field>
|
||||
<field
|
||||
name="contentsecuritypolicy_mode"
|
||||
type="list"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_MODE"
|
||||
default="detect"
|
||||
validate="options"
|
||||
showon="contentsecuritypolicy:1"
|
||||
>
|
||||
<option value="custom">COM_CSP_CONTENTSECURITYPOLICY_MODE_CUSTOM</option>
|
||||
<option value="detect">COM_CSP_CONTENTSECURITYPOLICY_MODE_DETECT</option>
|
||||
<option value="auto">COM_CSP_CONTENTSECURITYPOLICY_MODE_AUTO</option>
|
||||
</field>
|
||||
<field
|
||||
name="contentsecuritypolicy_report_only"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_REPORT_ONLY"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_REPORT_ONLY_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="1"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="nonce_enabled"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_NONCE_ENABLED"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_NONCE_ENABLED_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="script_hashes_enabled"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_SCRIPT_HASHES_ENABLED"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_SCRIPT_HASHES_ENABLED_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="strict_dynamic_enabled"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_STRICT_DYNAMIC_ENABLED"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_STRICT_DYNAMIC_ENABLED_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="style_hashes_enabled"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_STYLE_HASHES_ENABLED"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_STYLE_HASHES_ENABLED_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="0"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="frame_ancestors_self_enabled"
|
||||
type="radio"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_FRAME_ANCESTORS_SELF_ENABLED"
|
||||
description="COM_CSP_CONTENTSECURITYPOLICY_FRAME_ANCESTORS_SELF_ENABLED_DESC"
|
||||
layout="joomla.form.field.radio.switcher"
|
||||
default="1"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode!:detect"
|
||||
>
|
||||
<option value="0">JDISABLED</option>
|
||||
<option value="1">JENABLED</option>
|
||||
</field>
|
||||
<field
|
||||
name="contentsecuritypolicy_values"
|
||||
type="subform"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_VALUES"
|
||||
multiple="true"
|
||||
showon="contentsecuritypolicy:1[AND]contentsecuritypolicy_mode:custom"
|
||||
>
|
||||
<form>
|
||||
<field
|
||||
name="directive"
|
||||
type="list"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_VALUES_DIRECTIVE"
|
||||
class="col-md-4"
|
||||
validate="options"
|
||||
>
|
||||
<option value="child-src">child-src</option>
|
||||
<option value="connect-src">connect-src</option>
|
||||
<option value="default-src">default-src</option>
|
||||
<option value="font-src">font-src</option>
|
||||
<option value="frame-src">frame-src</option>
|
||||
<option value="img-src">img-src</option>
|
||||
<option value="manifest-src">manifest-src</option>
|
||||
<option value="media-src">media-src</option>
|
||||
<option value="prefetch-src">prefetch-src</option>
|
||||
<option value="object-src">object-src</option>
|
||||
<option value="script-src">script-src</option>
|
||||
<option value="script-src-elem">script-src-elem</option>
|
||||
<option value="script-src-attr">script-src-attr</option>
|
||||
<option value="style-src">script-src</option>
|
||||
<option value="style-src-elem">script-src-elem</option>
|
||||
<option value="style-src-attr">script-src-attr</option>
|
||||
<option value="worker-src">worker-src</option>
|
||||
<option value="base-uri">base-uri</option>
|
||||
<option value="plugin-types">plugin-types</option>
|
||||
<option value="sandbox">sandbox</option>
|
||||
<option value="form-action">form-action</option>
|
||||
<option value="frame-ancestors">frame-ancestors</option>
|
||||
<option value="navigate-to">navigate-to</option>
|
||||
<option value="report-uri">report-uri</option>
|
||||
<option value="report-to">report-to</option>
|
||||
<option value="block-all-mixed-content">block-all-mixed-content</option>
|
||||
<option value="upgrade-insecure-requests">upgrade-insecure-requests</option>
|
||||
<option value="require-sri-for">require-sri-for</option>
|
||||
</field>
|
||||
<field
|
||||
name="value"
|
||||
type="text"
|
||||
label="COM_CSP_CONTENTSECURITYPOLICY_VALUES_VALUE"
|
||||
class="col-md-10"
|
||||
showon="directive!:block-all-mixed-content[AND]directive!:upgrade-insecure-requests"
|
||||
/>
|
||||
<field
|
||||
name="client"
|
||||
type="radio"
|
||||
label="COM_CSP_HEADER_CLIENT"
|
||||
default="site"
|
||||
class="col-md-12"
|
||||
>
|
||||
<option value="site">JSITE</option>
|
||||
<option value="administrator">JADMINISTRATOR</option>
|
||||
<option value="both">COM_CSP_HEADER_CLIENT_BOTH</option>
|
||||
</field>
|
||||
</form>
|
||||
</field>
|
||||
</fieldset>
|
||||
<fieldset
|
||||
name="permissions"
|
||||
label="JCONFIG_PERMISSIONS_LABEL"
|
||||
description="JCONFIG_PERMISSIONS_DESC"
|
||||
>
|
||||
|
||||
<field
|
||||
name="rules"
|
||||
type="rules"
|
||||
label="JCONFIG_PERMISSIONS_LABEL"
|
||||
filter="rules"
|
||||
validate="rules"
|
||||
component="com_csp"
|
||||
section="component"
|
||||
/>
|
||||
</fieldset>
|
||||
</config>
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension type="component" method="upgrade">
|
||||
<name>com_csp</name>
|
||||
<author>Joomla! Project</author>
|
||||
<creationDate>May 2018</creationDate>
|
||||
<copyright>(C) 2018 Open Source Matters, Inc.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<authorEmail>admin@joomla.org</authorEmail>
|
||||
<authorUrl>www.joomla.org</authorUrl>
|
||||
<version>4.0.0</version>
|
||||
<description>COM_CSP_XML_DESCRIPTION</description>
|
||||
<namespace path="src">Joomla\Component\Csp</namespace>
|
||||
<files folder="site">
|
||||
<folder>src</folder>
|
||||
</files>
|
||||
<administration>
|
||||
<menu img="class:csp">com_csp</menu>
|
||||
<files folder="admin">
|
||||
<filename>access.xml</filename>
|
||||
<filename>config.xml</filename>
|
||||
<filename>csp.xml</filename>
|
||||
<folder>forms</folder>
|
||||
<folder>services</folder>
|
||||
<folder>src</folder>
|
||||
<folder>tmpl</folder>
|
||||
</files>
|
||||
<languages folder="admin">
|
||||
<language tag="en-GB">language/en-GB/com_csp.ini</language>
|
||||
<language tag="en-GB">language/en-GB/com_csp.sys.ini</language>
|
||||
</languages>
|
||||
</administration>
|
||||
</extension>
|
|
@ -1,86 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<form>
|
||||
<fields name="filter">
|
||||
<field
|
||||
name="search"
|
||||
type="text"
|
||||
inputmode="search"
|
||||
label="COM_CSP_FILTER_SEARCH_LABEL"
|
||||
description="COM_CSP_FILTER_SEARCH_DESC"
|
||||
hint="JSEARCH_FILTER"
|
||||
/>
|
||||
|
||||
<field
|
||||
name="published"
|
||||
type="status"
|
||||
label="JSTATUS"
|
||||
optionsFilter="*,0,1,-2"
|
||||
onchange="this.form.submit();"
|
||||
>
|
||||
<option value="">JOPTION_SELECT_PUBLISHED</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="directive"
|
||||
type="sql"
|
||||
label="COM_CSP_HEADING_DIRECTIVE"
|
||||
sql_select="directive"
|
||||
sql_from="#__csp"
|
||||
sql_group="directive"
|
||||
sql_order="directive ASC"
|
||||
key_field="directive"
|
||||
onchange="this.form.submit();"
|
||||
>
|
||||
<option value="">COM_CSP_FILTER_DIRECTIVE</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="client"
|
||||
type="list"
|
||||
label="JSITEADMIN"
|
||||
filtermode="selector"
|
||||
onchange="this.form.submit();"
|
||||
validate="options"
|
||||
>
|
||||
<option value="">JGLOBAL_FILTER_CLIENT</option>
|
||||
<option value="site">JSITE</option>
|
||||
<option value="administrator">JADMINISTRATOR</option>
|
||||
</field>
|
||||
</fields>
|
||||
|
||||
<fields name="list">
|
||||
<field
|
||||
name="fullordering"
|
||||
type="list"
|
||||
label="JGLOBAL_SORT_BY"
|
||||
default="a.id ASC"
|
||||
statuses="*,0,1,2,-2"
|
||||
onchange="this.form.submit();"
|
||||
validate="options"
|
||||
>
|
||||
<option value="">JGLOBAL_SORT_BY</option>
|
||||
<option value="a.published ASC">JSTATUS_ASC</option>
|
||||
<option value="a.published DESC">JSTATUS_DESC</option>
|
||||
<option value="a.document_uri ASC">COM_CSP_HEADING_DOCUMENT_URI_ASC</option>
|
||||
<option value="a.document_uri DESC">COM_CSP_HEADING_DOCUMENT_URI_DESC</option>
|
||||
<option value="a.blocked_uri ASC">COM_CSP_HEADING_BLOCKED_URI_ASC</option>
|
||||
<option value="a.blocked_uri DESC">COM_CSP_HEADING_BLOCKED_URI_DESC</option>
|
||||
<option value="a.directive ASC">COM_CSP_HEADING_DIRECTIVE_ASC</option>
|
||||
<option value="a.directive DESC">COM_CSP_HEADING_DIRECTIVE_DESC</option>
|
||||
<option value="a.client ASC">COM_CSP_HEADING_CLIENT_ASC</option>
|
||||
<option value="a.client DESC">COM_CSP_HEADING_CLIENT_DESC</option>
|
||||
<option value="a.created ASC">COM_CSP_HEADING_CREATED_ASC</option>
|
||||
<option value="a.created DESC">COM_CSP_HEADING_CREATED_DESC</option>
|
||||
<option value="a.id ASC">JGRID_HEADING_ID_ASC</option>
|
||||
<option value="a.id DESC">JGRID_HEADING_ID_DESC</option>
|
||||
</field>
|
||||
|
||||
<field
|
||||
name="limit"
|
||||
type="limitbox"
|
||||
label="JGLOBAL_LIST_LIMIT"
|
||||
default="25"
|
||||
onchange="this.form.submit();"
|
||||
/>
|
||||
</fields>
|
||||
</form>
|
|
@ -1,52 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface;
|
||||
use Joomla\CMS\Extension\ComponentInterface;
|
||||
use Joomla\CMS\Extension\MVCComponent;
|
||||
use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory;
|
||||
use Joomla\CMS\Extension\Service\Provider\MVCFactory;
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
use Joomla\DI\Container;
|
||||
use Joomla\DI\ServiceProviderInterface;
|
||||
|
||||
/**
|
||||
* The com_csp service provider.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
return new class implements ServiceProviderInterface
|
||||
{
|
||||
/**
|
||||
* Registers the service provider with a DI container.
|
||||
*
|
||||
* @param Container $container The DI container.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function register(Container $container)
|
||||
{
|
||||
$container->registerServiceProvider(new MVCFactory('\\Joomla\\Component\\Csp'));
|
||||
$container->registerServiceProvider(new ComponentDispatcherFactory('\\Joomla\\Component\\Csp'));
|
||||
$container->set(
|
||||
ComponentInterface::class,
|
||||
function (Container $container)
|
||||
{
|
||||
$component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class));
|
||||
$component->setMVCFactory($container->get(MVCFactoryInterface::class));
|
||||
|
||||
return $component;
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
|
@ -1,63 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Controller;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\Plugin\PluginHelper;
|
||||
use Joomla\Component\Csp\Administrator\Helper\ReporterHelper;
|
||||
|
||||
/**
|
||||
* Csp display controller.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class DisplayController extends BaseController
|
||||
{
|
||||
/**
|
||||
* The default view.
|
||||
*
|
||||
* @var string
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $default_view = 'reports';
|
||||
|
||||
/**
|
||||
* Method to display a view.
|
||||
*
|
||||
* @param boolean $cachable If true, the view output will be cached.
|
||||
* @param mixed $urlparams An array of safe URL parameters and their variable types, for valid values see {@link \JFilterInput::clean()}.
|
||||
*
|
||||
* @return static This object to support chaining.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function display($cachable = false, $urlparams = false)
|
||||
{
|
||||
// Show messages about the plugin when it is disabled
|
||||
if (!PluginHelper::isEnabled('system', 'httpheaders'))
|
||||
{
|
||||
$httpHeadersId = ReporterHelper::getHttpHeadersPluginId();
|
||||
$link = HTMLHelper::_(
|
||||
'link',
|
||||
'#plugin' . $httpHeadersId . 'Modal',
|
||||
Text::_('COM_CSP_SYSTEM_PLUGIN'),
|
||||
'class="alert-link" data-bs-toggle="modal" id="title-' . $httpHeadersId . '"'
|
||||
);
|
||||
|
||||
$this->app->enqueueMessage(Text::sprintf('COM_CSP_PLUGIN_MODAL_DISABLED', $link), 'error');
|
||||
}
|
||||
|
||||
return parent::display();
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Controller;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\MVC\Controller\AdminController;
|
||||
|
||||
/**
|
||||
* Reports list controller class.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class ReportsController extends AdminController
|
||||
{
|
||||
/**
|
||||
* Proxy for getModel
|
||||
*
|
||||
* @param string $name The model name. Optional.
|
||||
* @param string $prefix The class prefix. Optional.
|
||||
* @param array $config The array of possible config values. Optional.
|
||||
*
|
||||
* @return \Joomla\CMS\MVC\Model\BaseDatabaseModel The model.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function getModel($name = 'Report', $prefix = 'Administrator', $config = array('ignore_request' => true))
|
||||
{
|
||||
return parent::getModel($name, $prefix, $config);
|
||||
}
|
||||
}
|
|
@ -1,145 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Helper;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
|
||||
/**
|
||||
* Reporter component helper.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class ReporterHelper
|
||||
{
|
||||
/**
|
||||
* Gets the httpheaders system plugin extension id.
|
||||
*
|
||||
* @return mixed The httpheaders system plugin extension id or false in case of an error.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public static function getHttpHeadersPluginId()
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName('extension_id'))
|
||||
->from($db->quoteName('#__extensions'))
|
||||
->where($db->quoteName('folder') . ' = ' . $db->quote('system'))
|
||||
->where($db->quoteName('element') . ' = ' . $db->quote('httpheaders'));
|
||||
$db->setQuery($query);
|
||||
|
||||
try
|
||||
{
|
||||
$result = (int) $db->loadResult();
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the com_csp trash to show a warning in this case
|
||||
*
|
||||
* @return boolean The status of the trash; Do items exists in the trash
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public static function getCspTrashStatus()
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('COUNT(*)')
|
||||
->from($db->quoteName('#__csp'))
|
||||
->where($db->quoteName('published') . ' = ' . $db->quote('-2'));
|
||||
$db->setQuery($query);
|
||||
|
||||
try
|
||||
{
|
||||
$result = (int) $db->loadResult();
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return boolval($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether there are unsafe-inline rules published
|
||||
*
|
||||
* @return boolean Whether there are unsafe-inline rules published
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public static function getCspUnsafeInlineStatus()
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('COUNT(*)')
|
||||
->from($db->quoteName('#__csp'))
|
||||
->where($db->quoteName('blocked_uri') . ' = ' . $db->quote("'unsafe-inline'"))
|
||||
->where($db->quoteName('published') . ' = 1');
|
||||
$db->setQuery($query);
|
||||
|
||||
try
|
||||
{
|
||||
$result = (int) $db->loadResult();
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return boolval($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether there are unsafe-eval rules published
|
||||
*
|
||||
* @return boolean Whether there are unsafe-eval rules published
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public static function getCspUnsafeEvalStatus()
|
||||
{
|
||||
$db = Factory::getDbo();
|
||||
$query = $db->getQuery(true)
|
||||
->select('COUNT(*)')
|
||||
->from($db->quoteName('#__csp'))
|
||||
->where($db->quoteName('blocked_uri') . ' = ' . $db->quote("'unsafe-eval'"))
|
||||
->where($db->quoteName('published') . ' = 1');
|
||||
$db->setQuery($query);
|
||||
|
||||
try
|
||||
{
|
||||
$result = (int) $db->loadResult();
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage($e->getMessage(), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return boolval($result);
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Model;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\MVC\Model\AdminModel;
|
||||
|
||||
/**
|
||||
* Report Model
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class ReportModel extends AdminModel
|
||||
{
|
||||
/**
|
||||
* The prefix to use with controller messages.
|
||||
*
|
||||
* @var string
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $text_prefix = 'COM_CSP';
|
||||
|
||||
/**
|
||||
* Method to get the row form.
|
||||
*
|
||||
* @param array $data Data for the form.
|
||||
* @param boolean $loadData True if the form is to load its own data (default case), false if not.
|
||||
*
|
||||
* @return \JForm|boolean A JForm object on success, false on failure
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function getForm($data = array(), $loadData = true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -1,174 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Model;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
use Joomla\CMS\MVC\Model\ListModel;
|
||||
use Joomla\Database\ParameterType;
|
||||
|
||||
/**
|
||||
* CSP Component Reports Model
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class ReportsModel extends ListModel
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param array $config An array of configuration options (name, state, dbo, table_path, ignore_request).
|
||||
* @param MVCFactoryInterface $factory The factory.
|
||||
*
|
||||
* @since 4.0.0
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function __construct($config = array(), MVCFactoryInterface $factory = null)
|
||||
{
|
||||
if (empty($config['filter_fields']))
|
||||
{
|
||||
$config['filter_fields'] = array(
|
||||
'id', 'a.id',
|
||||
'document_uri', 'a.document_uri',
|
||||
'blocked_uri', 'a.blocked_uri',
|
||||
'directive', 'a.directive',
|
||||
'client', 'a.client',
|
||||
'published', 'a.published',
|
||||
'created', 'a.created',
|
||||
);
|
||||
}
|
||||
|
||||
parent::__construct($config, $factory);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to auto-populate the model state.
|
||||
*
|
||||
* Note. Calling getState in this method will result in recursion.
|
||||
*
|
||||
* @param string $ordering An optional ordering field.
|
||||
* @param string $direction An optional direction (asc|desc).
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected function populateState($ordering = 'a.id', $direction = 'asc')
|
||||
{
|
||||
// List state information.
|
||||
parent::populateState($ordering, $direction);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to get a store id based on model configuration state.
|
||||
*
|
||||
* This is necessary because the model is used by the component and
|
||||
* different modules that might need different sets of data or different
|
||||
* ordering requirements.
|
||||
*
|
||||
* @param string $id A prefix for the store id.
|
||||
*
|
||||
* @return string A store id.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected function getStoreId($id = '')
|
||||
{
|
||||
// Compile the store id.
|
||||
$id .= ':' . $this->getState('filter.search');
|
||||
$id .= ':' . $this->getState('filter.published');
|
||||
|
||||
return parent::getStoreId($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Method to create a query for a list of items.
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected function getListQuery()
|
||||
{
|
||||
$db = $this->getDbo();
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
// Select the required fields from the table.
|
||||
$query
|
||||
->select('*')
|
||||
->from($db->quoteName('#__csp', 'a'));
|
||||
|
||||
// Filter by client
|
||||
$client = (string) $this->getState('filter.client');
|
||||
|
||||
if (!empty($client))
|
||||
{
|
||||
$query->where($db->quoteName('a.client') . ' = :client')
|
||||
->bind(':client', $client);
|
||||
}
|
||||
|
||||
// Filter by published state
|
||||
$published = (string) $this->getState('filter.published');
|
||||
|
||||
if (is_numeric($published))
|
||||
{
|
||||
$published = (int) $published;
|
||||
$query->where($db->quoteName('a.published') . ' = :published')
|
||||
->bind(':published', $published, ParameterType::INTEGER);
|
||||
}
|
||||
elseif ($published === '')
|
||||
{
|
||||
$query->whereIn($db->quoteName('a.published'), [0, 1]);
|
||||
}
|
||||
|
||||
// Filter by directive
|
||||
$directive = (string) $this->getState('filter.directive');
|
||||
|
||||
if (!empty($directive))
|
||||
{
|
||||
$query->where($db->quoteName('a.directive') . ' = :directive')
|
||||
->bind(':directive', $directive);
|
||||
}
|
||||
|
||||
// Filter by search in title
|
||||
$search = $this->getState('filter.search');
|
||||
|
||||
if (!empty($search))
|
||||
{
|
||||
if (stripos($search, 'id:') === 0)
|
||||
{
|
||||
$ids = (int) substr($search, 3);
|
||||
$query->where($db->quoteName('a.id') . ' = :id');
|
||||
$query->bind(':id', $ids, ParameterType::INTEGER);
|
||||
}
|
||||
else
|
||||
{
|
||||
$search = '%' . trim($search) . '%';
|
||||
$query->where(
|
||||
'(' . $db->quoteName('a.document_uri') . ' LIKE :documenturi'
|
||||
. ' OR ' . $db->quoteName('a.blocked_uri') . ' LIKE :blockeduri'
|
||||
. ' OR ' . $db->quoteName('a.directive') . ' LIKE :directive)'
|
||||
)
|
||||
->bind(':documenturi', $search)
|
||||
->bind(':blockeduri', $search)
|
||||
->bind(':directive', $search);
|
||||
}
|
||||
}
|
||||
|
||||
// Add the list ordering clause
|
||||
$listOrdering = $this->getState('list.ordering', 'a.id');
|
||||
$listDirn = $db->escape($this->getState('list.direction', 'ASC'));
|
||||
|
||||
$query->order($db->escape($listOrdering) . ' ' . $listDirn);
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
|
@ -1,35 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\Table;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Table\Table;
|
||||
use Joomla\Database\DatabaseInterface;
|
||||
|
||||
/**
|
||||
* Report table
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class ReportTable extends Table
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DatabaseInterface $db Database driver object.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function __construct(DatabaseInterface $db)
|
||||
{
|
||||
parent::__construct('#__csp', 'id', $db);
|
||||
}
|
||||
}
|
|
@ -1,183 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
namespace Joomla\Component\Csp\Administrator\View\Reports;
|
||||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Helper\ContentHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\View\GenericDataException;
|
||||
use Joomla\CMS\MVC\View\HtmlView as BaseHtmlView;
|
||||
use Joomla\CMS\Plugin\PluginHelper;
|
||||
use Joomla\CMS\Toolbar\ToolbarHelper;
|
||||
use Joomla\Component\Csp\Administrator\Helper\ReporterHelper;
|
||||
|
||||
/**
|
||||
* Reports view class for the Csp package.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
class HtmlView extends BaseHtmlView
|
||||
{
|
||||
/**
|
||||
* An array of items
|
||||
*
|
||||
* @var array
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $items;
|
||||
|
||||
/**
|
||||
* The pagination object
|
||||
*
|
||||
* @var \Joomla\CMS\Pagination\Pagination
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $pagination;
|
||||
|
||||
/**
|
||||
* The model state
|
||||
*
|
||||
* @var \JObject
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $state;
|
||||
|
||||
/**
|
||||
* Form object for search filters
|
||||
*
|
||||
* @var \JForm
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public $filterForm;
|
||||
|
||||
/**
|
||||
* The active search filters
|
||||
*
|
||||
* @var array
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public $activeFilters;
|
||||
|
||||
/**
|
||||
* The id of the httpheaders plugin in mysql
|
||||
*
|
||||
* @var integer
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected $httpHeadersId = 0;
|
||||
|
||||
/**
|
||||
* Is this view an Empty State
|
||||
*
|
||||
* @var boolean
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
private $isEmptyState = false;
|
||||
|
||||
/**
|
||||
* Execute and display a template script.
|
||||
*
|
||||
* @param string $tpl The name of the template file to parse; automatically searches through the template paths.
|
||||
*
|
||||
* @return mixed A string if successful, otherwise an Error object.
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public function display($tpl = null)
|
||||
{
|
||||
$this->items = $this->get('Items');
|
||||
$this->pagination = $this->get('Pagination');
|
||||
$this->state = $this->get('State');
|
||||
$this->activeFilters = $this->get('ActiveFilters');
|
||||
$this->filterForm = $this->get('FilterForm');
|
||||
|
||||
if (!count($this->items) && $this->isEmptyState = $this->get('IsEmptyState'))
|
||||
{
|
||||
$this->setLayout('emptystate');
|
||||
}
|
||||
|
||||
// Check for errors.
|
||||
if (count($errors = $this->get('Errors')))
|
||||
{
|
||||
throw new GenericDataException(implode("\n", $errors), 500);
|
||||
}
|
||||
|
||||
if (!(PluginHelper::isEnabled('system', 'httpheaders')))
|
||||
{
|
||||
$this->httpHeadersId = ReporterHelper::getHttpHeadersPluginId();
|
||||
}
|
||||
|
||||
if (ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy_mode', 'detect') === 'detect'
|
||||
&& ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy', 0)
|
||||
&& ReporterHelper::getCspTrashStatus())
|
||||
{
|
||||
$this->trashWarningMessage = Text::_('COM_CSP_COLLECTING_TRASH_WARNING');
|
||||
}
|
||||
|
||||
if (ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy_mode', 'detect') === 'auto'
|
||||
&& ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy', 0)
|
||||
&& ReporterHelper::getCspUnsafeInlineStatus())
|
||||
{
|
||||
$this->unsafeInlineWarningMessage = Text::_('COM_CSP_AUTO_UNSAFE_INLINE_WARNING');
|
||||
}
|
||||
|
||||
if (ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy_mode', 'detect') === 'auto'
|
||||
&& ComponentHelper::getParams('com_csp')->get('contentsecuritypolicy', 0)
|
||||
&& ReporterHelper::getCspUnsafeEvalStatus())
|
||||
{
|
||||
$this->unsafeEvalWarningMessage = Text::_('COM_CSP_AUTO_UNSAFE_EVAL_WARNING');
|
||||
}
|
||||
|
||||
$this->addToolbar();
|
||||
|
||||
return parent::display($tpl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the page title and toolbar.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 4.0.0
|
||||
*/
|
||||
protected function addToolbar()
|
||||
{
|
||||
$canDo = ContentHelper::getActions('com_csp');
|
||||
|
||||
ToolbarHelper::title(Text::_('COM_CSP_REPORTS'), 'shield-alt');
|
||||
|
||||
if (!$this->isEmptyState)
|
||||
{
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
ToolbarHelper::publish('reports.publish', 'JTOOLBAR_ENABLE', true);
|
||||
ToolbarHelper::unpublish('reports.unpublish', 'JTOOLBAR_DISABLE', true);
|
||||
}
|
||||
|
||||
if ($this->state->get('filter.published') == -2 && $canDo->get('core.delete'))
|
||||
{
|
||||
ToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'reports.delete', 'JTOOLBAR_EMPTY_TRASH');
|
||||
}
|
||||
elseif ($canDo->get('core.edit.state'))
|
||||
{
|
||||
ToolbarHelper::trash('reports.trash');
|
||||
}
|
||||
}
|
||||
|
||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
||||
{
|
||||
ToolbarHelper::preferences('com_csp');
|
||||
}
|
||||
|
||||
ToolbarHelper::help('JHELP_COMPONENTS_CSP_REPORTS');
|
||||
}
|
||||
}
|
|
@ -1,149 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
*
|
||||
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
use Joomla\CMS\Router\Route;
|
||||
|
||||
HTMLHelper::_('behavior.multiselect');
|
||||
|
||||
$user = Factory::getUser();
|
||||
$userId = $user->get('id');
|
||||
$listOrder = $this->escape($this->state->get('list.ordering'));
|
||||
$listDirn = $this->escape($this->state->get('list.direction'));
|
||||
$saveOrder = $listOrder == 'a.id';
|
||||
|
||||
?>
|
||||
<form action="<?php echo Route::_('index.php?option=com_csp&view=reports'); ?>" method="post" name="adminForm" id="adminForm">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div id="j-main-container" class="j-main-container">
|
||||
<?php echo LayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?>
|
||||
<?php if ($this->httpHeadersId) : ?>
|
||||
<?php $link = Route::_('index.php?option=com_plugins&client_id=0&task=plugin.edit&extension_id=' . $this->httpHeadersId . '&tmpl=component&layout=modal'); ?>
|
||||
<?php echo HTMLHelper::_(
|
||||
'bootstrap.renderModal',
|
||||
'plugin' . $this->httpHeadersId . 'Modal',
|
||||
array(
|
||||
'url' => $link,
|
||||
'title' => Text::_('COM_CSP_EDIT_PLUGIN_SETTINGS'),
|
||||
'height' => '400px',
|
||||
'width' => '800px',
|
||||
'bodyHeight' => '70',
|
||||
'modalWidth' => '80',
|
||||
'closeButton' => false,
|
||||
'backdrop' => 'static',
|
||||
'keyboard' => false,
|
||||
'footer' => '<button type="button" class="btn" data-bs-dismiss="modal"'
|
||||
. ' onclick="Joomla.iframeButtonClick({iframeSelector: \'#plugin' . $this->httpHeadersId . 'Modal\', buttonSelector: \'#closeBtn\'})">'
|
||||
. Text::_('JLIB_HTML_BEHAVIOR_CLOSE') . '</button>'
|
||||
. '<button type="button" class="btn btn-primary" data-bs-dismiss="modal" onclick="Joomla.iframeButtonClick({iframeSelector: \'#plugin' . $this->httpHeadersId . 'Modal\', buttonSelector: \'#saveBtn\'})">'
|
||||
. Text::_("JSAVE") . '</button>'
|
||||
. '<button type="button" class="btn btn-success" onclick="Joomla.iframeButtonClick({iframeSelector: \'#plugin' . $this->httpHeadersId . 'Modal\', buttonSelector: \'#applyBtn\'})">'
|
||||
. Text::_("JAPPLY") . '</button>'
|
||||
)
|
||||
); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->trashWarningMessage)) : ?>
|
||||
<?php Factory::getApplication()->enqueueMessage($this->trashWarningMessage, 'warning'); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->unsafeInlineWarningMessage)) : ?>
|
||||
<?php Factory::getApplication()->enqueueMessage($this->unsafeInlineWarningMessage, 'warning'); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($this->unsafeEvalWarningMessage)) : ?>
|
||||
<?php Factory::getApplication()->enqueueMessage($this->unsafeEvalWarningMessage, 'warning'); ?>
|
||||
<?php endif; ?>
|
||||
<?php if (empty($this->items)) : ?>
|
||||
<div class="alert alert-info">
|
||||
<span class="icon-info-circle" aria-hidden="true"></span><span class="visually-hidden"><?php echo Text::_('INFO'); ?></span>
|
||||
<?php echo Text::_('JGLOBAL_NO_MATCHING_RESULTS'); ?>
|
||||
</div>
|
||||
<?php else : ?>
|
||||
<table class="table" id="articleList">
|
||||
<caption class="visually-hidden">
|
||||
<?php echo Text::_('COM_CSP_TABLE_CAPTION'); ?>,
|
||||
<span id="orderedBy"><?php echo Text::_('JGLOBAL_SORTED_BY'); ?> </span>,
|
||||
<span id="filteredBy"><?php echo Text::_('JGLOBAL_FILTERED_BY'); ?></span>
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<?php echo HTMLHelper::_('grid.checkall'); ?>
|
||||
</td>
|
||||
<th scope="col" class="text-center">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'JSTATUS', 'a.published', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'COM_CSP_HEADING_DOCUMENT_URI', 'a.document_uri', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="d-none d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'COM_CSP_HEADING_BLOCKED_URI', 'a.blocked_uri', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="d-none d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'COM_CSP_HEADING_DIRECTIVE', 'a.directive', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="d-none d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'JCLIENT', 'a.client', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="d-none d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'COM_CSP_HEADING_CREATED', 'a.created', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
<th scope="col" class="w-3 d-none d-md-table-cell">
|
||||
<?php echo HTMLHelper::_('searchtools.sort', 'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder); ?>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($this->items as $i => $item) : ?>
|
||||
<?php $canChange = $user->authorise('core.edit.state', 'com_csp'); ?>
|
||||
<tr class="row<?php echo $i % 2; ?>">
|
||||
<td class="text-center">
|
||||
<?php echo HTMLHelper::_('grid.id', $i, $item->id); ?>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<?php echo HTMLHelper::_('jgrid.published', $item->published, $i, 'reports.', $canChange, 'cb'); ?>
|
||||
</td>
|
||||
<th scope="row" class="small d-md-table-cell text-break">
|
||||
<?php echo $item->document_uri; ?>
|
||||
</th>
|
||||
<td class="small d-none d-md-table-cell">
|
||||
<?php echo $item->blocked_uri; ?>
|
||||
</td>
|
||||
<td class="d-none d-md-table-cell">
|
||||
<?php echo $item->directive; ?>
|
||||
</td>
|
||||
<td class="d-none d-md-table-cell">
|
||||
<?php echo Text::_('J' . strtoupper($item->client)); ?>
|
||||
</td>
|
||||
<td class="d-none d-md-table-cell">
|
||||
<?php echo $item->created > 0 ? HTMLHelper::_('date', $item->created, Text::_('DATE_FORMAT_LC4')) : '-'; ?>
|
||||
</td>
|
||||
<td class="d-none d-md-table-cell">
|
||||
<?php echo $item->id; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<?php // load the pagination. ?>
|
||||
<?php echo $this->pagination->getListFooter(); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<input type="hidden" name="task" value="">
|
||||
<input type="hidden" name="boxchecked" value="0">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<metadata>
|
||||
<layout title="COM_CSP_REPORTS_VIEW_DEFAULT_TITLE">
|
||||
<message>
|
||||
<![CDATA[COM_CSP_REPORTS_VIEW_DEFAULT_DESC]]>
|
||||
</message>
|
||||
</layout>
|
||||
</metadata>
|
|
@ -71,6 +71,7 @@
|
|||
label="COM_FIELDS_FIELDS_FILTER_ONLY_USE_IN_SUBFORM_LABEL"
|
||||
onchange="this.form.submit();"
|
||||
default=""
|
||||
validate="options"
|
||||
>
|
||||
<option value="">COM_FIELDS_ONLY_USE_IN_SUBFORM</option>
|
||||
<option value="0">JNO</option>
|
||||
|
|
|
@ -119,7 +119,7 @@ class FieldController extends FormController
|
|||
}
|
||||
|
||||
// Grant if current user is owner of the record
|
||||
return $user->id == $record->created_by;
|
||||
return $user->id == $record->created_user_id;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
@ -31,12 +31,11 @@ $wa->useScript('keepalive')
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('COM_FIELDS_VIEW_FIELD_FIELDSET_GENERAL', true)); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('COM_FIELDS_VIEW_FIELD_FIELDSET_GENERAL', true)); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<?php echo $this->form->renderField('type'); ?>
|
||||
<?php echo $this->form->renderField('name'); ?>
|
||||
<?php echo $this->form->renderField('label'); ?>
|
||||
|
@ -50,61 +49,56 @@ $wa->useScript('keepalive')
|
|||
<?php echo $field->renderField(); ?>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php $this->set('fields',
|
||||
<div class="col-lg-3">
|
||||
<?php $this->set('fields',
|
||||
array(
|
||||
array(
|
||||
array(
|
||||
'published',
|
||||
'state',
|
||||
'enabled',
|
||||
),
|
||||
'group_id',
|
||||
'assigned_cat_ids',
|
||||
'access',
|
||||
'language',
|
||||
'note',
|
||||
)
|
||||
); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
<?php $this->set('fields', null); ?>
|
||||
</div>
|
||||
'published',
|
||||
'state',
|
||||
'enabled',
|
||||
),
|
||||
'group_id',
|
||||
'assigned_cat_ids',
|
||||
'access',
|
||||
'language',
|
||||
'note',
|
||||
)
|
||||
); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
<?php $this->set('fields', null); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php $this->set('ignore_fieldsets', array('fieldparams')); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.params', $this); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'publishing', Text::_('JGLOBAL_FIELDSET_PUBLISHING', true)); ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-publishingdata" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_FIELDSET_PUBLISHING'); ?></legend>
|
||||
<div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.publishingdata', $this); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php if ($this->canDo->get('core.admin')) : ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'rules', Text::_('JGLOBAL_ACTION_PERMISSIONS_LABEL', true)); ?>
|
||||
<fieldset id="fieldset-rules" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_ACTION_PERMISSIONS_LABEL'); ?></legend>
|
||||
<div>
|
||||
<?php echo $this->form->getInput('rules'); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
|
||||
<?php echo $this->form->getInput('context'); ?>
|
||||
<input type="hidden" name="task" value="">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
<?php $this->set('ignore_fieldsets', array('fieldparams')); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.params', $this); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'publishing', Text::_('JGLOBAL_FIELDSET_PUBLISHING', true)); ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-publishingdata" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_FIELDSET_PUBLISHING'); ?></legend>
|
||||
<div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.publishingdata', $this); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php if ($this->canDo->get('core.admin')) : ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'rules', Text::_('JGLOBAL_ACTION_PERMISSIONS_LABEL', true)); ?>
|
||||
<fieldset id="fieldset-rules" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_ACTION_PERMISSIONS_LABEL'); ?></legend>
|
||||
<div>
|
||||
<?php echo $this->form->getInput('rules'); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
<?php endif; ?>
|
||||
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
|
||||
<?php echo $this->form->getInput('context'); ?>
|
||||
<input type="hidden" name="task" value="">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -35,7 +35,7 @@ $this->useCoreUI = true;
|
|||
<form action="<?php echo Route::_('index.php?option=com_fields&context=' . Factory::getApplication()->input->getCmd('context', 'com_content') . '&layout=modal&tmpl=component&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="item-form" class="form-validate">
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<div>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('COM_FIELDS', true)); ?>
|
||||
|
|
|
@ -20,9 +20,6 @@ use Joomla\Component\Fields\Administrator\Helper\FieldsHelper;
|
|||
|
||||
HTMLHelper::_('behavior.multiselect');
|
||||
|
||||
// Just for the tests :(
|
||||
HTMLHelper::_('jquery.framework');
|
||||
|
||||
$app = Factory::getApplication();
|
||||
$user = Factory::getUser();
|
||||
$userId = $user->get('id');
|
||||
|
|
|
@ -20,7 +20,7 @@ $wa->useScript('joomla.batch-copymove');
|
|||
$context = $this->escape($this->state->get('filter.context'));
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
|
|
@ -26,37 +26,29 @@ $this->useCoreUI = true;
|
|||
|
||||
<form action="<?php echo Route::_('index.php?option=com_fields&context=' . $this->state->get('filter.context') . '&layout=edit&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="item-form" aria-label="<?php echo Text::_('COM_FIELDS_GROUP_FORM_' . ( (int) $this->item->id === 0 ? 'NEW' : 'EDIT'), true); ?>" class="form-validate">
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
<div class="form-horizontal">
|
||||
<div class="main-card form-horizontal">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'general')); ?>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'general', Text::_('COM_FIELDS_VIEW_FIELD_FIELDSET_GENERAL', true)); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo $this->form->renderField('label'); ?>
|
||||
<?php echo $this->form->renderField('description'); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $this->form->renderField('label'); ?>
|
||||
<?php echo $this->form->renderField('description'); ?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php $this->set('fields',
|
||||
<?php $this->set('fields',
|
||||
array(
|
||||
array(
|
||||
array(
|
||||
'published',
|
||||
'state',
|
||||
'enabled',
|
||||
),
|
||||
'access',
|
||||
'language',
|
||||
'note',
|
||||
)
|
||||
); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
<?php $this->set('fields', null); ?>
|
||||
</div>
|
||||
</div>
|
||||
'published',
|
||||
'state',
|
||||
'enabled',
|
||||
),
|
||||
'access',
|
||||
'language',
|
||||
'note',
|
||||
)
|
||||
); ?>
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
<?php $this->set('fields', null); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
|
|
@ -12,7 +12,7 @@ use Joomla\CMS\Layout\LayoutHelper;
|
|||
|
||||
?>
|
||||
|
||||
<div class="container">
|
||||
<div class="p-3">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6">
|
||||
<div class="controls">
|
||||
|
|
|
@ -3,18 +3,18 @@
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_filters` (
|
||||
`filter_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`filter_id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`alias` varchar(255) NOT NULL,
|
||||
`state` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`state` tinyint NOT NULL DEFAULT 1,
|
||||
`created` datetime NOT NULL,
|
||||
`created_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`created_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`created_by_alias` varchar(255) NOT NULL DEFAULT '',
|
||||
`modified` datetime NOT NULL,
|
||||
`modified_by` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`modified_by` int unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out` int unsigned NOT NULL DEFAULT 0,
|
||||
`checked_out_time` datetime,
|
||||
`map_count` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`map_count` int unsigned NOT NULL DEFAULT 0,
|
||||
`data` text,
|
||||
`params` mediumtext,
|
||||
PRIMARY KEY (`filter_id`)
|
||||
|
@ -25,16 +25,16 @@ CREATE TABLE IF NOT EXISTS `#__finder_filters` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_links` (
|
||||
`link_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`link_id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`url` varchar(255) NOT NULL,
|
||||
`route` varchar(255) NOT NULL,
|
||||
`title` varchar(400) DEFAULT NULL,
|
||||
`description` text,
|
||||
`indexdate` datetime NOT NULL,
|
||||
`md5sum` varchar(32) DEFAULT NULL,
|
||||
`published` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`state` int(5) NOT NULL DEFAULT 1,
|
||||
`access` int(5) NOT NULL DEFAULT 0,
|
||||
`published` tinyint NOT NULL DEFAULT 1,
|
||||
`state` int NOT NULL DEFAULT 1,
|
||||
`access` int NOT NULL DEFAULT 0,
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
`publish_start_date` datetime,
|
||||
`publish_end_date` datetime,
|
||||
|
@ -42,7 +42,7 @@ CREATE TABLE IF NOT EXISTS `#__finder_links` (
|
|||
`end_date` datetime,
|
||||
`list_price` double unsigned NOT NULL DEFAULT 0,
|
||||
`sale_price` double unsigned NOT NULL DEFAULT 0,
|
||||
`type_id` int(11) NOT NULL,
|
||||
`type_id` int NOT NULL,
|
||||
`object` mediumblob,
|
||||
PRIMARY KEY (`link_id`),
|
||||
KEY `idx_type` (`type_id`),
|
||||
|
@ -59,8 +59,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_links` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_links_terms` (
|
||||
`link_id` int(10) unsigned NOT NULL,
|
||||
`term_id` int(10) unsigned NOT NULL,
|
||||
`link_id` int unsigned NOT NULL,
|
||||
`term_id` int unsigned NOT NULL,
|
||||
`weight` float unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`link_id`,`term_id`),
|
||||
KEY `idx_term_weight` (`term_id`,`weight`),
|
||||
|
@ -75,8 +75,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` (
|
|||
`searchterm` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`md5sum` VARCHAR(32) NOT NULL DEFAULT '',
|
||||
`query` BLOB NOT NULL,
|
||||
`hits` INT(11) NOT NULL DEFAULT 1,
|
||||
`results` INT(11) NOT NULL DEFAULT 0,
|
||||
`hits` int NOT NULL DEFAULT 1,
|
||||
`results` int NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`md5sum`),
|
||||
INDEX `searchterm` (`searchterm`(191))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
|
@ -86,16 +86,16 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_taxonomy` (
|
||||
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`parent_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`lft` INT(11) NOT NULL DEFAULT '0',
|
||||
`rgt` INT(11) NOT NULL DEFAULT '0',
|
||||
`level` INT(10) UNSIGNED NOT NULL DEFAULT '0',
|
||||
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
`parent_id` int UNSIGNED NOT NULL DEFAULT '0',
|
||||
`lft` int NOT NULL DEFAULT '0',
|
||||
`rgt` int NOT NULL DEFAULT '0',
|
||||
`level` int UNSIGNED NOT NULL DEFAULT '0',
|
||||
`path` VARCHAR(400) NOT NULL DEFAULT '',
|
||||
`title` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`alias` VARCHAR(400) NOT NULL DEFAULT '',
|
||||
`state` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
|
||||
`access` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
|
||||
`state` tinyint UNSIGNED NOT NULL DEFAULT '1',
|
||||
`access` tinyint UNSIGNED NOT NULL DEFAULT '1',
|
||||
`language` CHAR(7) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_state` (`state`),
|
||||
|
@ -119,8 +119,8 @@ INSERT INTO `#__finder_taxonomy` (`id`, `parent_id`, `lft`, `rgt`, `level`, `pat
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_taxonomy_map` (
|
||||
`link_id` int(10) unsigned NOT NULL,
|
||||
`node_id` int(10) unsigned NOT NULL,
|
||||
`link_id` int unsigned NOT NULL,
|
||||
`node_id` int unsigned NOT NULL,
|
||||
PRIMARY KEY (`link_id`,`node_id`),
|
||||
KEY `link_id` (`link_id`),
|
||||
KEY `node_id` (`node_id`)
|
||||
|
@ -131,14 +131,14 @@ CREATE TABLE IF NOT EXISTS `#__finder_taxonomy_map` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_terms` (
|
||||
`term_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`term_id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`term` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`stem` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`common` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`common` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`weight` float unsigned NOT NULL DEFAULT 0,
|
||||
`soundex` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`links` int(10) NOT NULL DEFAULT 0,
|
||||
`links` int NOT NULL DEFAULT 0,
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`term_id`),
|
||||
UNIQUE KEY `idx_term_language` (`term`,`language`),
|
||||
|
@ -156,7 +156,7 @@ CREATE TABLE IF NOT EXISTS `#__finder_terms` (
|
|||
CREATE TABLE IF NOT EXISTS `#__finder_terms_common` (
|
||||
`term` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
`custom` int(11) NOT NULL DEFAULT '0',
|
||||
`custom` int NOT NULL DEFAULT '0',
|
||||
UNIQUE KEY `idx_term_language` (`term`,`language`),
|
||||
KEY `idx_lang` (`language`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
|
||||
|
@ -348,10 +348,10 @@ INSERT INTO `#__finder_terms_common` (`term`, `language`, `custom`) VALUES
|
|||
CREATE TABLE IF NOT EXISTS `#__finder_tokens` (
|
||||
`term` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`stem` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`common` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`common` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`weight` float unsigned NOT NULL DEFAULT 1,
|
||||
`context` tinyint(1) unsigned NOT NULL DEFAULT 2,
|
||||
`context` tinyint unsigned NOT NULL DEFAULT 2,
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
KEY `idx_word` (`term`),
|
||||
KEY `idx_stem` (`stem`),
|
||||
|
@ -364,13 +364,13 @@ CREATE TABLE IF NOT EXISTS `#__finder_tokens` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_tokens_aggregate` (
|
||||
`term_id` int(10) unsigned NOT NULL,
|
||||
`term_id` int unsigned NOT NULL,
|
||||
`term` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
|
||||
`stem` varchar(75) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL DEFAULT '',
|
||||
`common` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint(1) unsigned NOT NULL DEFAULT 0,
|
||||
`common` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`phrase` tinyint unsigned NOT NULL DEFAULT 0,
|
||||
`term_weight` float unsigned NOT NULL DEFAULT 0,
|
||||
`context` tinyint(1) unsigned NOT NULL DEFAULT 2,
|
||||
`context` tinyint unsigned NOT NULL DEFAULT 2,
|
||||
`context_weight` float unsigned NOT NULL DEFAULT 0,
|
||||
`total_weight` float unsigned NOT NULL DEFAULT 0,
|
||||
`language` char(7) NOT NULL DEFAULT '',
|
||||
|
@ -383,7 +383,7 @@ CREATE TABLE IF NOT EXISTS `#__finder_tokens_aggregate` (
|
|||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `#__finder_types` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(100) NOT NULL,
|
||||
`mime` varchar(100) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`),
|
||||
|
|
|
@ -17,6 +17,7 @@ use Joomla\CMS\Language\Text;
|
|||
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
|
||||
use Joomla\CMS\MVC\Model\ListModel;
|
||||
use Joomla\CMS\Plugin\PluginHelper;
|
||||
use Joomla\Database\DatabaseQuery;
|
||||
|
||||
/**
|
||||
* Maps model for the Finder package.
|
||||
|
@ -392,4 +393,23 @@ class MapsModel extends ListModel
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Manipulate the query to be used to evaluate if this is an Empty State to provide specific conditions for this extension.
|
||||
*
|
||||
* @return DatabaseQuery
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
protected function getEmptyStateQuery()
|
||||
{
|
||||
$query = parent::getEmptyStateQuery();
|
||||
|
||||
$title = 'ROOT';
|
||||
|
||||
$query->where($this->_db->quoteName('title') . ' <> :title')
|
||||
->bind(':title', $title);
|
||||
|
||||
return $query;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -477,7 +477,7 @@ class Filter
|
|||
|
||||
// Start date filter.
|
||||
$attribs['class'] = 'input-medium';
|
||||
$html .= '<li class="filter-date' . $classSuffix . '">';
|
||||
$html .= '<li class="filter-date float-start' . $classSuffix . '">';
|
||||
$html .= '<label for="filter_date1" class="hasTooltip" title ="' . Text::_('COM_FINDER_FILTER_DATE1_DESC') . '">';
|
||||
$html .= Text::_('COM_FINDER_FILTER_DATE1');
|
||||
$html .= '</label>';
|
||||
|
@ -490,7 +490,7 @@ class Filter
|
|||
$html .= '</li>';
|
||||
|
||||
// End date filter.
|
||||
$html .= '<li class="filter-date' . $classSuffix . '">';
|
||||
$html .= '<li class="filter-date float-end' . $classSuffix . '">';
|
||||
$html .= '<label for="filter_date2" class="hasTooltip" title ="' . Text::_('COM_FINDER_FILTER_DATE2_DESC') . '">';
|
||||
$html .= Text::_('COM_FINDER_FILTER_DATE2');
|
||||
$html .= '</label>';
|
||||
|
|
|
@ -91,6 +91,13 @@ class HtmlView extends BaseHtmlView
|
|||
*/
|
||||
public $activeFilters;
|
||||
|
||||
/**
|
||||
* @var mixed
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
private $isEmptyState = false;
|
||||
|
||||
/**
|
||||
* Method to display the view.
|
||||
*
|
||||
|
@ -113,6 +120,11 @@ class HtmlView extends BaseHtmlView
|
|||
$this->filterForm = $this->get('FilterForm');
|
||||
$this->activeFilters = $this->get('ActiveFilters');
|
||||
|
||||
if ($this->get('TotalIndexed') === 0 && $this->isEmptyState = $this->get('IsEmptyState'))
|
||||
{
|
||||
$this->setLayout('emptystate');
|
||||
}
|
||||
|
||||
// We do not need to filter by language when multilingual is disabled
|
||||
if (!Multilanguage::isEnabled())
|
||||
{
|
||||
|
@ -138,10 +150,6 @@ class HtmlView extends BaseHtmlView
|
|||
Factory::getApplication()->enqueueMessage(Text::_('COM_FINDER_INDEX_PLUGIN_CONTENT_NOT_ENABLED'), 'warning');
|
||||
}
|
||||
}
|
||||
elseif ($this->get('TotalIndexed') === 0)
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage(Text::_('COM_FINDER_INDEX_NO_DATA') . ' ' . Text::_('COM_FINDER_INDEX_TIP'), 'notice');
|
||||
}
|
||||
|
||||
// Configure the toolbar.
|
||||
$this->addToolbar();
|
||||
|
@ -170,32 +178,35 @@ class HtmlView extends BaseHtmlView
|
|||
'window.parent.location.reload()', Text::_('COM_FINDER_HEADING_INDEXER')
|
||||
);
|
||||
|
||||
if ($canDo->get('core.edit.state'))
|
||||
if (!$this->isEmptyState)
|
||||
{
|
||||
$dropdown = $toolbar->dropdownButton('status-group')
|
||||
->text('JTOOLBAR_CHANGE_STATUS')
|
||||
->toggleSplit(false)
|
||||
->icon('icon-ellipsis-h')
|
||||
->buttonClass('btn btn-action')
|
||||
->listCheck(true);
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
$dropdown = $toolbar->dropdownButton('status-group')
|
||||
->text('JTOOLBAR_CHANGE_STATUS')
|
||||
->toggleSplit(false)
|
||||
->icon('icon-ellipsis-h')
|
||||
->buttonClass('btn btn-action')
|
||||
->listCheck(true);
|
||||
|
||||
$childBar = $dropdown->getChildToolbar();
|
||||
$childBar = $dropdown->getChildToolbar();
|
||||
|
||||
$childBar->publish('index.publish')->listCheck(true);
|
||||
$childBar->unpublish('index.unpublish')->listCheck(true);
|
||||
}
|
||||
$childBar->publish('index.publish')->listCheck(true);
|
||||
$childBar->unpublish('index.unpublish')->listCheck(true);
|
||||
}
|
||||
|
||||
$toolbar->appendButton('Popup', 'bars', 'COM_FINDER_STATISTICS', 'index.php?option=com_finder&view=statistics&tmpl=component', 550, 350, '', '', '', Text::_('COM_FINDER_STATISTICS_TITLE'));
|
||||
$toolbar->appendButton('Popup', 'bars', 'COM_FINDER_STATISTICS', 'index.php?option=com_finder&view=statistics&tmpl=component', 550, 350, '', '', '', Text::_('COM_FINDER_STATISTICS_TITLE'));
|
||||
|
||||
if ($canDo->get('core.delete'))
|
||||
{
|
||||
ToolbarHelper::deleteList('', 'index.delete');
|
||||
ToolbarHelper::divider();
|
||||
}
|
||||
if ($canDo->get('core.delete'))
|
||||
{
|
||||
ToolbarHelper::deleteList('', 'index.delete');
|
||||
ToolbarHelper::divider();
|
||||
}
|
||||
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
ToolbarHelper::trash('index.purge', 'COM_FINDER_INDEX_TOOLBAR_PURGE', false);
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
ToolbarHelper::trash('index.purge', 'COM_FINDER_INDEX_TOOLBAR_PURGE', false);
|
||||
}
|
||||
}
|
||||
|
||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
||||
|
|
|
@ -78,6 +78,13 @@ class HtmlView extends BaseHtmlView
|
|||
*/
|
||||
public $activeFilters;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
private $isEmptyState = false;
|
||||
|
||||
/**
|
||||
* Method to display the view.
|
||||
*
|
||||
|
@ -100,6 +107,11 @@ class HtmlView extends BaseHtmlView
|
|||
$this->filterForm = $this->get('FilterForm');
|
||||
$this->activeFilters = $this->get('ActiveFilters');
|
||||
|
||||
if ($this->total === 0 && $this->isEmptyState = $this->get('isEmptyState'))
|
||||
{
|
||||
$this->setLayout('emptystate');
|
||||
}
|
||||
|
||||
// Check for errors.
|
||||
if (count($errors = $this->get('Errors')))
|
||||
{
|
||||
|
@ -128,29 +140,32 @@ class HtmlView extends BaseHtmlView
|
|||
// Get the toolbar object instance
|
||||
$toolbar = Toolbar::getInstance('toolbar');
|
||||
|
||||
if ($canDo->get('core.edit.state'))
|
||||
if (!$this->isEmptyState)
|
||||
{
|
||||
$dropdown = $toolbar->dropdownButton('status-group')
|
||||
->text('JTOOLBAR_CHANGE_STATUS')
|
||||
->toggleSplit(false)
|
||||
->icon('icon-ellipsis-h')
|
||||
->buttonClass('btn btn-action')
|
||||
->listCheck(true);
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
$dropdown = $toolbar->dropdownButton('status-group')
|
||||
->text('JTOOLBAR_CHANGE_STATUS')
|
||||
->toggleSplit(false)
|
||||
->icon('icon-ellipsis-h')
|
||||
->buttonClass('btn btn-action')
|
||||
->listCheck(true);
|
||||
|
||||
$childBar = $dropdown->getChildToolbar();
|
||||
$childBar = $dropdown->getChildToolbar();
|
||||
|
||||
$childBar->publish('maps.publish')->listCheck(true);
|
||||
$childBar->unpublish('maps.unpublish')->listCheck(true);
|
||||
}
|
||||
$childBar->publish('maps.publish')->listCheck(true);
|
||||
$childBar->unpublish('maps.unpublish')->listCheck(true);
|
||||
}
|
||||
|
||||
ToolbarHelper::divider();
|
||||
$toolbar->appendButton('Popup', 'bars', 'COM_FINDER_STATISTICS', 'index.php?option=com_finder&view=statistics&tmpl=component', 550, 350, '', '', '', Text::_('COM_FINDER_STATISTICS_TITLE'));
|
||||
ToolbarHelper::divider();
|
||||
|
||||
if ($canDo->get('core.delete'))
|
||||
{
|
||||
ToolbarHelper::deleteList('', 'maps.delete');
|
||||
ToolbarHelper::divider();
|
||||
$toolbar->appendButton('Popup', 'bars', 'COM_FINDER_STATISTICS', 'index.php?option=com_finder&view=statistics&tmpl=component', 550, 350, '', '', '', Text::_('COM_FINDER_STATISTICS_TITLE'));
|
||||
ToolbarHelper::divider();
|
||||
|
||||
if ($canDo->get('core.delete'))
|
||||
{
|
||||
ToolbarHelper::deleteList('', 'maps.delete');
|
||||
ToolbarHelper::divider();
|
||||
}
|
||||
}
|
||||
|
||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
||||
|
|
|
@ -81,6 +81,13 @@ class HtmlView extends BaseHtmlView
|
|||
*/
|
||||
protected $canDo;
|
||||
|
||||
/**
|
||||
* @var boolean
|
||||
*
|
||||
* @since __DEPLOY_VERSION__
|
||||
*/
|
||||
private $isEmptyState = false;
|
||||
|
||||
/**
|
||||
* Display the view.
|
||||
*
|
||||
|
@ -102,6 +109,11 @@ class HtmlView extends BaseHtmlView
|
|||
$link = 'index.php?option=com_config&view=component&component=com_finder&return=' . base64_encode($uri);
|
||||
$output = HTMLHelper::_('link', Route::_($link), Text::_('JOPTIONS'));
|
||||
|
||||
if (!\count($this->items) && $this->isEmptyState = $this->get('IsEmptyState'))
|
||||
{
|
||||
$this->setLayout('emptystate');
|
||||
}
|
||||
|
||||
// Check for errors.
|
||||
if (count($errors = $this->get('Errors')))
|
||||
{
|
||||
|
@ -133,12 +145,15 @@ class HtmlView extends BaseHtmlView
|
|||
|
||||
ToolbarHelper::title(Text::_('COM_FINDER_MANAGER_SEARCHES'), 'search');
|
||||
|
||||
if ($canDo->get('core.edit.state'))
|
||||
if (!$this->isEmptyState)
|
||||
{
|
||||
ToolbarHelper::custom('searches.reset', 'refresh', '', 'JSEARCH_RESET', false);
|
||||
}
|
||||
if ($canDo->get('core.edit.state'))
|
||||
{
|
||||
ToolbarHelper::custom('searches.reset', 'refresh', '', 'JSEARCH_RESET', false);
|
||||
}
|
||||
|
||||
ToolbarHelper::divider();
|
||||
ToolbarHelper::divider();
|
||||
}
|
||||
|
||||
if ($canDo->get('core.admin') || $canDo->get('core.options'))
|
||||
{
|
||||
|
|
|
@ -34,64 +34,58 @@ $wa->useScript('keepalive')
|
|||
|
||||
<?php echo LayoutHelper::render('joomla.edit.title_alias', $this); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'details')); ?>
|
||||
<div class="main-card">
|
||||
<?php echo HTMLHelper::_('uitab.startTabSet', 'myTab', array('active' => 'details')); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'details', Text::_('COM_FINDER_EDIT_FILTER')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php if ($this->total > 0) : ?>
|
||||
<div class="well">
|
||||
<?php echo $this->form->renderField('map_count'); ?>
|
||||
</div>
|
||||
<button class="btn btn-secondary filter-toggle-all" type="button">
|
||||
<span class="icon-square" aria-hidden="true"></span> <?php echo Text::_('JGLOBAL_SELECTION_INVERT'); ?></button>
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'details', Text::_('COM_FINDER_EDIT_FILTER')); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-9">
|
||||
<?php if ($this->total > 0) : ?>
|
||||
<div class="well">
|
||||
<?php echo $this->form->renderField('map_count'); ?>
|
||||
</div>
|
||||
<button class="btn btn-secondary filter-toggle-all" type="button">
|
||||
<span class="icon-square" aria-hidden="true"></span> <?php echo Text::_('JGLOBAL_SELECTION_INVERT'); ?></button>
|
||||
|
||||
<button class="btn btn-secondary float-end" type="button" id="expandAccordion"><?php echo Text::_('COM_FINDER_FILTER_SHOW_ALL'); ?></button>
|
||||
<hr>
|
||||
<?php endif; ?>
|
||||
<button class="btn btn-secondary float-end" type="button" id="expandAccordion"><?php echo Text::_('COM_FINDER_FILTER_SHOW_ALL'); ?></button>
|
||||
<hr>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php echo HTMLHelper::_('filter.slider', array('selected_nodes' => $this->filter->data)); ?>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('filter.slider', array('selected_nodes' => $this->filter->data)); ?>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-3">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<?php echo LayoutHelper::render('joomla.edit.global', $this); ?>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'publishing', Text::_('JGLOBAL_FIELDSET_OPTIONS')); ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-publishingdata" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_FIELDSET_PUBLISHING'); ?></legend>
|
||||
<div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.publishingdata', $this); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-filter" class="options-form">
|
||||
<legend><?php echo Text::_('COM_FINDER_FILTER_FIELDSET_PARAMS'); ?></legend>
|
||||
<div>
|
||||
<?php echo $this->form->renderFieldset('jbasic'); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php echo LayoutHelper::render('joomla.edit.params', $this); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
|
||||
|
||||
<input type="hidden" name="task" value="">
|
||||
<input type="hidden" name="return" value="<?php echo Factory::getApplication()->input->get('return', '', 'BASE64'); ?>">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.addTab', 'myTab', 'publishing', Text::_('JGLOBAL_FIELDSET_OPTIONS')); ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-publishingdata" class="options-form">
|
||||
<legend><?php echo Text::_('JGLOBAL_FIELDSET_PUBLISHING'); ?></legend>
|
||||
<div>
|
||||
<?php echo LayoutHelper::render('joomla.edit.publishingdata', $this); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<fieldset id="fieldset-filter" class="options-form">
|
||||
<legend><?php echo Text::_('COM_FINDER_FILTER_FIELDSET_PARAMS'); ?></legend>
|
||||
<div>
|
||||
<?php echo $this->form->renderFieldset('jbasic'); ?>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo HTMLHelper::_('uitab.endTab'); ?>
|
||||
|
||||
<?php echo LayoutHelper::render('joomla.edit.params', $this); ?>
|
||||
|
||||
<?php echo HTMLHelper::_('uitab.endTabSet'); ?>
|
||||
|
||||
<input type="hidden" name="task" value="">
|
||||
<input type="hidden" name="return" value="<?php echo Factory::getApplication()->input->get('return', '', 'BASE64'); ?>">
|
||||
<?php echo HTMLHelper::_('form.token'); ?>
|
||||
</form>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_finder
|
||||
*
|
||||
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
|
||||
$displayData = [
|
||||
'textPrefix' => 'COM_FINDER',
|
||||
'formURL' => 'index.php?option=com_finder&view=index',
|
||||
'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Smart_Search_quickstart_guide',
|
||||
'icon' => 'icon-search-plus finder',
|
||||
'content' => Text::_('COM_FINDER_INDEX_NO_DATA') . '<br>' . Text::_('COM_FINDER_INDEX_TIP'),
|
||||
'title' => Text::_('COM_FINDER_HEADING_INDEXER'),
|
||||
'createURL' => "javascript:document.getElementsByClassName('button-archive')[0].click();",
|
||||
];
|
||||
|
||||
echo LayoutHelper::render('joomla.content.emptystate', $displayData);
|
|
@ -121,7 +121,7 @@ $wa->useScript('com_finder.maps');
|
|||
<?php endif; ?>
|
||||
<td class="text-center btns itemnumber">
|
||||
<?php if ($item->level > 1) : ?>
|
||||
<a class="btn <?php if ((int) $item->count_published > 0) echo 'btn-success'; ?>" title="<?php echo Text::_('COM_FINDER_MAPS_COUNT_PUBLISHED_ITEMS'); ?>" href="<?php echo Route::_('index.php?option=com_finder&view=index&filter[state]=1&filter[content_map]=' . $item->id); ?>">
|
||||
<a class="btn <?php echo ((int) $item->count_published > 0) ? 'btn-success' : 'btn-secondary'; ?>" title="<?php echo Text::_('COM_FINDER_MAPS_COUNT_PUBLISHED_ITEMS'); ?>" href="<?php echo Route::_('index.php?option=com_finder&view=index&filter[state]=1&filter[content_map]=' . $item->id); ?>">
|
||||
<?php echo (int) $item->count_published; ?></a>
|
||||
<?php else : ?>
|
||||
-
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_csp
|
||||
* @subpackage com_finder
|
||||
*
|
||||
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
|
@ -9,12 +9,15 @@
|
|||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
|
||||
$displayData = [
|
||||
'textPrefix' => 'COM_CSP',
|
||||
'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Content_Security_Policy_Reports',
|
||||
'icon' => 'icon-shield-alt',
|
||||
'textPrefix' => 'COM_FINDER',
|
||||
'formURL' => 'index.php?option=com_finder&view=maps',
|
||||
'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Smart_Search:_Content_Maps',
|
||||
'icon' => 'icon-search-plus finder',
|
||||
'title' => Text::_('COM_FINDER_MAPS_TOOLBAR_TITLE')
|
||||
];
|
||||
|
||||
echo LayoutHelper::render('joomla.content.emptystate', $displayData);
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
/**
|
||||
* @package Joomla.Administrator
|
||||
* @subpackage com_finder
|
||||
*
|
||||
* @copyright (C) 2021 Open Source Matters, Inc. <https://www.joomla.org>
|
||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\Layout\LayoutHelper;
|
||||
|
||||
$displayData = [
|
||||
'textPrefix' => 'COM_FINDER',
|
||||
'formURL' => 'index.php?option=com_finder&view=searches',
|
||||
'helpURL' => 'https://docs.joomla.org/Special:MyLanguage/Help4.x:Smart_Search:_Search_Term_Analysis',
|
||||
'icon' => 'icon-search',
|
||||
'title' => Text::_('COM_FINDER_MANAGER_SEARCHES'),
|
||||
'content' => Text::_('COM_FINDER_EMPTYSTATE_SEARCHES_CONTENT'),
|
||||
];
|
||||
|
||||
echo LayoutHelper::render('joomla.content.emptystate', $displayData);
|
|
@ -11,6 +11,7 @@ namespace Joomla\Component\Installer\Administrator\Controller;
|
|||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\Response\JsonResponse;
|
||||
use Joomla\CMS\Router\Route;
|
||||
|
@ -36,6 +37,12 @@ class DiscoverController extends BaseController
|
|||
/** @var \Joomla\Component\Installer\Administrator\Model\DiscoverModel $model */
|
||||
$model = $this->getModel('discover');
|
||||
$model->discover();
|
||||
|
||||
if (!$model->getTotal())
|
||||
{
|
||||
$this->setMessage(Text::_('COM_INSTALLER_ERROR_NO_EXTENSIONS_DISCOVERED'), 'info');
|
||||
}
|
||||
|
||||
$this->setRedirect(Route::_('index.php?option=com_installer&view=discover', false));
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ namespace Joomla\Component\Installer\Administrator\Controller;
|
|||
|
||||
\defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Client\ClientHelper;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\Response\JsonResponse;
|
||||
|
@ -62,9 +61,6 @@ class DisplayController extends BaseController
|
|||
// Get and render the view.
|
||||
if ($view = $this->getView($vName, $vFormat))
|
||||
{
|
||||
$ftp = ClientHelper::setCredentialsFromRequest('ftp');
|
||||
$view->ftp = &$ftp;
|
||||
|
||||
// Get the model for the view.
|
||||
$model = $this->getModel($vName);
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user