Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`)
SELECT 0, 'mod_backward', 'module', 'mod_backward', '', 1, 1, 1, 0, 1, '', '{}', '', 0, 0
WHERE NOT EXISTS (SELECT * FROM `#__extensions` e WHERE e.`type` = 'module' AND e.`element` = 'mod_backward' AND e.`name` = 'mod_backward' AND e.`client_id` = 1);

INSERT INTO `#__modules` (`title`, `note`, `content`, `ordering`, `position`, `checked_out`, `checked_out_time`, `publish_up`, `publish_down`, `published`, `module`, `access`, `showtitle`, `params`, `client_id`, `language`)
SELECT 'Backward Compatibility', '', '', 1, 'status', 0, NULL, NULL, NULL, 1, 'mod_backward', 1, 1, '', 1, '*'
WHERE NOT EXISTS (SELECT * FROM `#__modules` m WHERE m.`title` = 'Backward Compatibility' AND m.`position` = 'status' AND m.`module` = 'mod_backward' AND m.`client_id` = 1);

INSERT INTO `#__modules_menu` (`moduleid`, `menuid`)
SELECT LAST_INSERT_ID(), 0
WHERE NOT EXISTS (SELECT 1 FROM `#__modules_menu` WHERE `moduleid` = LAST_INSERT_ID() AND `menuid` = 0);
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
INSERT INTO "#__extensions" ("package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "locked", "manifest_cache", "params", "custom_data", "ordering", "state")
SELECT 0, 'mod_backward', 'module', 'mod_backward', '', 1, 1, 1, 0, 1, '', '{}', '', 0, 0
WHERE NOT EXISTS (SELECT * FROM "#__extensions" e WHERE e."type" = 'module' AND e."element" = 'mod_backward' AND e."name" = 'mod_backward' AND e."client_id" = 1);

INSERT INTO "#__modules" ("title", "note", "content", "ordering", "position", "checked_out", "checked_out_time", "publish_up", "publish_down", "published", "module", "access", "showtitle", "params", "client_id", "language")
SELECT 'Backward Compatibility', '', '', 1, 'status', 0, NULL, NULL, NULL, 1, 'mod_backward', 1, 1, '', 1, '*'
WHERE NOT EXISTS (SELECT * FROM "#__modules" m WHERE m."title" = 'Backward Compatibility' AND m."position" = 'status' AND m."module" = 'mod_backward' AND m."client_id" = 1);

INSERT INTO "#__modules_menu" ("moduleid", "menuid")
SELECT currval(pg_get_serial_sequence('#__modules','id')), 0
WHERE NOT EXISTS (
SELECT 1 FROM "#__modules_menu"
WHERE "moduleid" = currval(pg_get_serial_sequence('#__modules','id')) AND "menuid" = 0
);

8 changes: 8 additions & 0 deletions administrator/language/en-GB/mod_backward.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
; Joomla! Project
; (C) 2025 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

MOD_BACKWARD="Joomla! Backward Compatibility Information"
MOD_BACKWARD_TEXT="Backward:"
MOD_BACKWARD_XML_DESCRIPTION="This module displays the which Joomla! Backward Compatibility plugins are enabled and is intended to be displayed in the 'status' position."
7 changes: 7 additions & 0 deletions administrator/language/en-GB/mod_backward.sys.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
; Joomla! Project
; (C) 2025 Open Source Matters, Inc. <https://www.joomla.org>
; License GNU General Public License version 2 or later; see LICENSE.txt
; Note : All ini files need to be saved as UTF-8

MOD_BACKWARD="Joomla! Backward Compatibility Information"
MOD_BACKWARD_XML_DESCRIPTION="This module displays the which Joomla! Backward Compatibility plugins are enabled and is intended to be displayed in the 'status' position."
44 changes: 44 additions & 0 deletions administrator/modules/mod_backward/mod_backward.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<extension type="module" client="administrator" method="upgrade">
<name>mod_backward</name>
<author>Joomla! Project</author>
<creationDate>2025-11</creationDate>
<copyright>(C) 2025 Open Source Matters, Inc.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>[email protected]</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>1.0.0</version>
<description>MOD_BACKWARD_XML_DESCRIPTION</description>
<namespace path="src">Joomla\Module\Backward</namespace>
<files>
<folder module="mod_backward">services</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages>
<language tag="en-GB">language/en-GB/mod_backward.ini</language>
<language tag="en-GB">language/en-GB/mod_backward.sys.ini</language>
</languages>
<help key="Admin_Modules:_Joomla_Version_Information" />
<config>
<fields name="params">
<fieldset name="advanced">
<field
name="layout"
type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
class="form-select"
validate="moduleLayout"
/>

<field
name="moduleclass_sfx"
type="textarea"
label="COM_MODULES_FIELD_MODULECLASS_SFX_LABEL"
rows="3"
validate="CssIdentifier"
/>
</fieldset>
</fields>
</config>
</extension>
36 changes: 36 additions & 0 deletions administrator/modules/mod_backward/services/provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php

/**
* @package Joomla.Administrator
* @subpackage mod_backward
*
* @copyright (C) 2025 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\Extension\Service\Provider\HelperFactory;
use Joomla\CMS\Extension\Service\Provider\Module;
use Joomla\CMS\Extension\Service\Provider\ModuleDispatcherFactory;
use Joomla\DI\Container;
use Joomla\DI\ServiceProviderInterface;

return new class () implements ServiceProviderInterface {
/**
* Registers the service provider with a DI container.
*
* @param Container $container The DI container.
*
* @return void
*
* @since __DEPLOY_VERSION__
*/
public function register(Container $container)
{
$container->registerServiceProvider(new ModuleDispatcherFactory('\\Joomla\\Module\\Backward'));
$container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Backward\\Administrator\\Helper'));

$container->registerServiceProvider(new Module());
}
};
42 changes: 42 additions & 0 deletions administrator/modules/mod_backward/src/Dispatcher/Dispatcher.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

/**
* @package Joomla.Administrator
* @subpackage mod_backward
*
* @copyright (C) 2025 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

namespace Joomla\Module\Backward\Administrator\Dispatcher;

use Joomla\CMS\Dispatcher\AbstractModuleDispatcher;
use Joomla\CMS\Plugin\PluginHelper;

// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects

/**
* Dispatcher class for mod_backward
*
* @since __DEPLOY_VERSION__
*/
class Dispatcher extends AbstractModuleDispatcher
{
/**
* Returns the layout data.
*
* @return array
*
* @since __DEPLOY_VERSION__
*/
protected function getLayoutData()
{
$data = parent::getLayoutData();
$data['compat'] = PluginHelper::isEnabled('behaviour', 'compat');
$data['compat6'] = PluginHelper::isEnabled('behaviour', 'compat6');

return $data;
}
}
23 changes: 23 additions & 0 deletions administrator/modules/mod_backward/tmpl/default.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

/**
* @package Joomla.Administrator
* @subpackage mod_backward
*
* @copyright (C) 2025 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;

?>
<?php if ($compat || $compat6) : ?>
<div class="header-item-content joomlaversion">
<div class="header-item-text no-link">
<span class="icon-shield-alt" aria-hidden="true"></span>
<span aria-hidden="true"><?php echo Text::_('MOD_BACKWARD_TEXT') . ($compat ? '5' : '') . ($compat && $compat6 ? ', ' : '') . ($compat6 ? '6' : ''); ?></span>
</div>
</div>
<?php endif; ?>
65 changes: 35 additions & 30 deletions installation/sql/mysql/base.sql
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@ CREATE TABLE IF NOT EXISTS `#__assets` (
-- Dumping data for table `#__assets`
--


INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `title`, `rules`) VALUES
(1, 0, 0, 183, 0, 'root.1', 'Root Asset', '{"core.login.site":{"6":1,"2":1},"core.login.admin":{"6":1},"core.login.api":{"8":1},"core.login.offline":{"6":1},"core.admin":{"8":1},"core.manage":{"7":1},"core.create":{"6":1,"3":1},"core.delete":{"6":1},"core.edit":{"6":1,"4":1},"core.edit.state":{"6":1,"5":1},"core.edit.own":{"6":1,"3":1}}'),
(1, 0, 0, 185, 0, 'root.1', 'Root Asset', '{"core.login.site":{"6":1,"2":1},"core.login.admin":{"6":1},"core.login.api":{"8":1},"core.login.offline":{"6":1},"core.admin":{"8":1},"core.manage":{"7":1},"core.create":{"6":1,"3":1},"core.delete":{"6":1},"core.edit":{"6":1,"4":1},"core.edit.state":{"6":1,"5":1},"core.edit.own":{"6":1,"3":1}}'),
(2, 1, 1, 2, 1, 'com_admin', 'com_admin', '{}'),
(3, 1, 3, 6, 1, 'com_banners', 'com_banners', '{"core.admin":{"7":1},"core.manage":{"6":1}}'),
(4, 1, 7, 8, 1, 'com_cache', 'com_cache', '{"core.admin":{"7":1},"core.manage":{"7":1}}'),
Expand All @@ -42,24 +43,24 @@ INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `titl
(15, 1, 51, 52, 1, 'com_media', 'com_media', '{"core.admin":{"7":1},"core.manage":{"6":1},"core.create":{"3":1},"core.delete":{"5":1}}'),
(16, 1, 53, 56, 1, 'com_menus', 'com_menus', '{"core.admin":{"7":1}}'),
(17, 1, 57, 58, 1, 'com_messages', 'com_messages', '{"core.admin":{"7":1},"core.manage":{"7":1}}'),
(18, 1, 59, 132, 1, 'com_modules', 'com_modules', '{"core.admin":{"7":1}}'),
(19, 1, 133, 136, 1, 'com_newsfeeds', 'com_newsfeeds', '{"core.admin":{"7":1},"core.manage":{"6":1}}'),
(20, 1, 137, 138, 1, 'com_plugins', 'com_plugins', '{"core.admin":{"7":1}}'),
(21, 1, 139, 140, 1, 'com_redirect', 'com_redirect', '{"core.admin":{"7":1}}'),
(23, 1, 141, 142, 1, 'com_templates', 'com_templates', '{"core.admin":{"7":1}}'),
(24, 1, 147, 150, 1, 'com_users', 'com_users', '{"core.admin":{"7":1}}'),
(26, 1, 151, 152, 1, 'com_wrapper', 'com_wrapper', '{}'),
(18, 1, 59, 134, 1, 'com_modules', 'com_modules', '{"core.admin":{"7":1}}'),
(19, 1, 135, 138, 1, 'com_newsfeeds', 'com_newsfeeds', '{"core.admin":{"7":1},"core.manage":{"6":1}}'),
(20, 1, 139, 140, 1, 'com_plugins', 'com_plugins', '{"core.admin":{"7":1}}'),
(21, 1, 141, 142, 1, 'com_redirect', 'com_redirect', '{"core.admin":{"7":1}}'),
(23, 1, 143, 144, 1, 'com_templates', 'com_templates', '{"core.admin":{"7":1}}'),
(24, 1, 149, 152, 1, 'com_users', 'com_users', '{"core.admin":{"7":1}}'),
(26, 1, 153, 154, 1, 'com_wrapper', 'com_wrapper', '{}'),
(27, 8, 18, 19, 2, 'com_content.category.2', 'Uncategorised', '{}'),
(28, 3, 4, 5, 2, 'com_banners.category.3', 'Uncategorised', '{}'),
(29, 7, 14, 15, 2, 'com_contact.category.4', 'Uncategorised', '{}'),
(30, 19, 134, 135, 2, 'com_newsfeeds.category.5', 'Uncategorised', '{}'),
(32, 24, 148, 149, 2, 'com_users.category.7', 'Uncategorised', '{}'),
(33, 1, 153, 154, 1, 'com_finder', 'com_finder', '{"core.admin":{"7":1},"core.manage":{"6":1}}'),
(34, 1, 155, 156, 1, 'com_joomlaupdate', 'com_joomlaupdate', '{}'),
(35, 1, 157, 158, 1, 'com_tags', 'com_tags', '{}'),
(36, 1, 159, 160, 1, 'com_contenthistory', 'com_contenthistory', '{}'),
(37, 1, 161, 162, 1, 'com_ajax', 'com_ajax', '{}'),
(38, 1, 163, 164, 1, 'com_postinstall', 'com_postinstall', '{}'),
(30, 19, 136, 137, 2, 'com_newsfeeds.category.5', 'Uncategorised', '{}'),
(32, 24, 150, 151, 2, 'com_users.category.7', 'Uncategorised', '{}'),
(33, 1, 155, 156, 1, 'com_finder', 'com_finder', '{"core.admin":{"7":1},"core.manage":{"6":1}}'),
(34, 1, 157, 158, 1, 'com_joomlaupdate', 'com_joomlaupdate', '{}'),
(35, 1, 159, 160, 1, 'com_tags', 'com_tags', '{}'),
(36, 1, 161, 162, 1, 'com_contenthistory', 'com_contenthistory', '{}'),
(37, 1, 163, 164, 1, 'com_ajax', 'com_ajax', '{}'),
(38, 1, 165, 166, 1, 'com_postinstall', 'com_postinstall', '{}'),
(39, 18, 60, 61, 2, 'com_modules.module.1', 'Main Menu', '{}'),
(40, 18, 62, 63, 2, 'com_modules.module.2', 'Login', '{}'),
(41, 18, 64, 65, 2, 'com_modules.module.3', 'Popular Articles', '{}'),
Expand All @@ -84,8 +85,8 @@ INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `titl
(62, 56, 31, 32, 3, 'com_content.transition.5', 'FEATURE', '{}'),
(63, 56, 33, 34, 3, 'com_content.transition.6', 'UNFEATURE', '{}'),
(64, 56, 35, 36, 3, 'com_content.transition.7', 'PUBLISH_AND_FEATURE', '{}'),
(65, 1, 143, 144, 1, 'com_privacy', 'com_privacy', '{}'),
(66, 1, 145, 146, 1, 'com_actionlogs', 'com_actionlogs', '{}'),
(65, 1, 145, 146, 1, 'com_privacy', 'com_privacy', '{}'),
(66, 1, 147, 148, 1, 'com_actionlogs', 'com_actionlogs', '{}'),
(67, 18, 76, 77, 2, 'com_modules.module.88', 'Latest Actions', '{}'),
(68, 18, 78, 79, 2, 'com_modules.module.89', 'Privacy Dashboard', '{}'),
(70, 18, 88, 89, 2, 'com_modules.module.103', 'Site', '{}'),
Expand All @@ -107,16 +108,17 @@ INSERT INTO `#__assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `titl
(87, 18, 124, 125, 2, 'com_modules.module.97', 'Recently Added Articles', '{}'),
(88, 18, 126, 127, 2, 'com_modules.module.98', 'Logged-in Users', '{}'),
(89, 18, 128, 129, 2, 'com_modules.module.90', 'Login Support', '{}'),
(90, 1, 165, 172, 1, 'com_scheduler', 'com_scheduler', '{}'),
(91, 1, 173, 174, 1, 'com_associations', 'com_associations', '{}'),
(92, 1, 175, 176, 1, 'com_categories', 'com_categories', '{}'),
(93, 1, 177, 178, 1, 'com_fields', 'com_fields', '{}'),
(94, 1, 179, 180, 1, 'com_workflow', 'com_workflow', '{}'),
(95, 1, 181, 182, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
(90, 1, 167, 174, 1, 'com_scheduler', 'com_scheduler', '{}'),
(91, 1, 175, 176, 1, 'com_associations', 'com_associations', '{}'),
(92, 1, 177, 178, 1, 'com_categories', 'com_categories', '{}'),
(93, 1, 179, 180, 1, 'com_fields', 'com_fields', '{}'),
(94, 1, 181, 182, 1, 'com_workflow', 'com_workflow', '{}'),
(95, 1, 183, 184, 1, 'com_guidedtours', 'com_guidedtours', '{}'),
(96, 18, 130, 131, 2, 'com_modules.module.109', 'Guided Tours', '{}'),
(97, 90, 166, 167, 2, 'com_scheduler.task.1', 'Rotate Logs', '{}'),
(98, 90, 168, 169, 2, 'com_scheduler.task.2', 'Session GC', '{}'),
(99, 90, 170, 171, 2, 'com_scheduler.task.3', 'Update Notification', '{}');
(97, 90, 168, 169, 2, 'com_scheduler.task.1', 'Rotate Logs', '{}'),
(98, 90, 170, 171, 2, 'com_scheduler.task.2', 'Session GC', '{}'),
(99, 90, 172, 173, 2, 'com_scheduler.task.3', 'Update Notification', '{}'),
(100, 18, 132, 133, 2, 'com_modules.module.110', 'Backward Compatibility', '{}');

-- --------------------------------------------------------

Expand Down Expand Up @@ -252,7 +254,8 @@ INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`,
(0, 'mod_privacy_dashboard', 'module', 'mod_privacy_dashboard', '', 1, 1, 1, 0, 1, '', '{}', ''),
(0, 'mod_submenu', 'module', 'mod_submenu', '', 1, 1, 1, 0, 1, '', '{}', ''),
(0, 'mod_privacy_status', 'module', 'mod_privacy_status', '', 1, 1, 1, 0, 1, '', '{}', ''),
(0, 'mod_guidedtours', 'module', 'mod_guidedtours', '', 1, 1, 1, 0, 1, '', '{}', '');
(0, 'mod_guidedtours', 'module', 'mod_guidedtours', '', 1, 1, 1, 0, 1, '', '{}', ''),
(0, 'mod_backward', 'module', 'mod_backward', '', 1, 1, 1, 0, 1, '', '{}', '');

-- Plugins
INSERT INTO `#__extensions` (`package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `locked`, `manifest_cache`, `params`, `custom_data`, `ordering`, `state`) VALUES
Expand Down Expand Up @@ -654,7 +657,8 @@ INSERT INTO `#__modules` (`id`, `asset_id`, `title`, `note`, `content`, `orderin
(106, 83, 'Help Dashboard', '', '', 1, 'cpanel-help', NULL, NULL, 1, 'mod_submenu', 1, 0, '{"menutype":"*","preset":"help","layout":"_:default","moduleclass_sfx":"","style":"System-none","module_tag":"div","bootstrap_size":"12","header_tag":"h2","header_class":""}', 1, '*'),
(107, 84, 'Privacy Requests', '', '', 1, 'cpanel-privacy', NULL, NULL, 1, 'mod_privacy_dashboard', 1, 1, '{"layout":"_:default","moduleclass_sfx":"","cache":1,"cache_time":900,"cachemode":"static","style":"0","module_tag":"div","bootstrap_size":"12","header_tag":"h2","header_class":""}', 1, '*'),
(108, 85, 'Privacy Status', '', '', 1, 'cpanel-privacy', NULL, NULL, 1, 'mod_privacy_status', 1, 1, '{"layout":"_:default","moduleclass_sfx":"","cache":1,"cache_time":900,"cachemode":"static","style":"0","module_tag":"div","bootstrap_size":"12","header_tag":"h2","header_class":""}', 1, '*'),
(109, 96, 'Guided Tours', '', '', 1, 'status', NULL, NULL, 1, 'mod_guidedtours', 1, 1, '', 1, '*');
(109, 96, 'Guided Tours', '', '', 1, 'status', NULL, NULL, 1, 'mod_guidedtours', 1, 1, '', 1, '*'),
(110, 100, 'Backward Compatibility', '', '', 1, 'status', NULL, NULL, 1, 'mod_backward', 1, 1, '', 1, '*');

-- --------------------------------------------------------

Expand Down Expand Up @@ -711,7 +715,8 @@ INSERT INTO `#__modules_menu` (`moduleid`, `menuid`) VALUES
(106, 0),
(107, 0),
(108, 0),
(109, 0);
(109, 0),
(110, 0);

-- --------------------------------------------------------

Expand Down
Loading