Skip to content
Merged
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
67 changes: 67 additions & 0 deletions administrator/language/en-GB/mod_healthcheck.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
; Joomla! Project
; (C) 2026 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_HEALTHCHECK="Health Check"
MOD_HEALTHCHECK_XML_DESCRIPTION="This module shows health check information from installed plugins."

MOD_HEALTHCHECK_GROUP_FIELD_LABEL="Health Check Group"
MOD_HEALTHCHECK_GROUP_FIELD_DESC="The group (or context) of this module (this value is compared with the group value used in <strong>Health Check</strong> plugins to inject data)."

MOD_HEALTHCHECK_HEADER_ICON_FIELD_LABEL="Header Icon"

; Item types
MOD_HEALTHCHECK_BUTTONS="Action Buttons"
MOD_HEALTHCHECK_GAUGES="Health Gauges"
MOD_HEALTHCHECK_LISTS="Health Lists"
MOD_HEALTHCHECK_REPORTS="Health Reports"
MOD_HEALTHCHECK_TABLES="Data Tables"

; Status messages
MOD_HEALTHCHECK_STATUS_ERROR="Error"
MOD_HEALTHCHECK_STATUS_INFO="Information"
MOD_HEALTHCHECK_STATUS_OK="OK"
MOD_HEALTHCHECK_STATUS_WARNING="Warning"

; Default messages
MOD_HEALTHCHECK_ERROR_LOADING="Error loading health check data"
MOD_HEALTHCHECK_LOADING="Loading health check data..."
MOD_HEALTHCHECK_NO_DATA="No health check data available"
MOD_HEALTHCHECK_NO_MATCHING_RESULTS="All good! Nothing to report here."

; Accessibility
MOD_HEALTHCHECK_ARIA_BUTTON="Health check action button"
MOD_HEALTHCHECK_ARIA_GAUGE="Health gauge showing %s"
MOD_HEALTHCHECK_ARIA_LIST="Health check list"
MOD_HEALTHCHECK_ARIA_REPORT="Health check report"
MOD_HEALTHCHECK_ARIA_TABLE="Health check data table"

; Common actions
MOD_HEALTHCHECK_CONFIGURE="Configure"
MOD_HEALTHCHECK_EXPORT="Export"
MOD_HEALTHCHECK_REFRESH="Refresh"
MOD_HEALTHCHECK_VIEW_DETAILS="View Details"

; Filter buttons
MOD_HEALTHCHECK_FILTER_ALL="All"
MOD_HEALTHCHECK_FILTER_CRITICAL="Needs Attention"
MOD_HEALTHCHECK_FILTER_HEALTHY="Healthy"
MOD_HEALTHCHECK_FILTER_LABEL="Filter health checks by status"
MOD_HEALTHCHECK_FILTER_WARNING="Review"

; Gauge layout
MOD_HEALTHCHECK_GAUGE_DEBUG_RANGE="Range: %1$s-%2$s"
MOD_HEALTHCHECK_GAUGE_DEBUG_THRESHOLDS="Thresholds: %1$s/%2$s/%3$s"
MOD_HEALTHCHECK_GAUGE_ITEM_ARIA_LABEL="%1$s gauge showing %2$s %3$s out of %4$s."
MOD_HEALTHCHECK_GAUGE_ITEM_ARIA_LABEL_LINK="%1$s gauge showing %2$s %3$s out of %4$s. Click to view details."
MOD_HEALTHCHECK_GAUGE_LINK_ARIA_LABEL="%1$s - %2$s %3$s. Click for details."
MOD_HEALTHCHECK_GAUGE_LINK_TITLE="%1$s - %2$s %3$s"
MOD_HEALTHCHECK_GAUGE_PERCENT_OF_RANGE="%s%% of range"
MOD_HEALTHCHECK_GAUGE_SVG_TITLE="%1$s gauge: %2$s %3$s"
MOD_HEALTHCHECK_GAUGE_SVG_DESC="A circular progress indicator showing %1$s %2$s out of a maximum of %3$s %2$s. This represents %4$s%% of the total range."
MOD_HEALTHCHECK_GAUGE_SR_SCORE="Score: %1$s %2$s out of %3$s %2$s."
MOD_HEALTHCHECK_GAUGE_SR_RANGE="This represents %1$s%% of the range from %2$s to %3$s."
MOD_HEALTHCHECK_GAUGE_STATUS_ATTENTION="Status: Performance needs attention."
MOD_HEALTHCHECK_GAUGE_STATUS_EXCELLENT="Status: Excellent performance."
MOD_HEALTHCHECK_GAUGE_STATUS_GOOD="Status: Good performance with room for improvement."
7 changes: 7 additions & 0 deletions administrator/language/en-GB/mod_healthcheck.sys.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
; Joomla! Project
; (C) 2026 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_HEALTHCHECK="Health Check"
MOD_HEALTHCHECK_XML_DESCRIPTION="This module shows health check information from installed plugins."
82 changes: 82 additions & 0 deletions administrator/modules/mod_healthcheck/mod_healthcheck.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<extension type="module" client="administrator" method="upgrade">
<name>mod_healthcheck</name>
<author>Joomla! Project</author>
<creationDate>2026-04</creationDate>
<copyright>(C) 2026 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>6.2.0</version>
<description>MOD_HEALTHCHECK_XML_DESCRIPTION</description>
<namespace path="src">Joomla\Module\Healthcheck</namespace>
<files>
<folder module="mod_healthcheck">services</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages>
<language tag="en-GB">language/en-GB/mod_healthcheck.ini</language>
<language tag="en-GB">language/en-GB/mod_healthcheck.sys.ini</language>
</languages>
<help key="Admin_Modules:_Health_Checks" />
<config>
<fields name="params">
<fieldset name="basic">
<field
name="context"
type="text"
label="MOD_HEALTHCHECK_GROUP_FIELD_LABEL"
description="MOD_HEALTHCHECK_GROUP_FIELD_DESC"
default="general"
/>
<field
name="header_icon"
type="text"
label="MOD_HEALTHCHECK_HEADER_ICON_FIELD_LABEL"
hint="icon-crosshairs"
default=""
/>
</fieldset>
<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"
/>

<field
name="cache"
type="list"
label="COM_MODULES_FIELD_CACHING_LABEL"
default="0"
filter="integer"
validate="options"
>
<option value="1">JGLOBAL_USE_GLOBAL</option>
<option value="0">COM_MODULES_FIELD_VALUE_NOCACHING</option>
</field>

<field
name="cache_time"
type="number"
label="COM_MODULES_FIELD_CACHE_TIME_LABEL"
default="900"
filter="integer"
min="1"
validate="number"
/>
</fieldset>
</fields>
</config>
</extension>
41 changes: 41 additions & 0 deletions administrator/modules/mod_healthcheck/services/provider.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<?php

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

/**
* The healthcheck module service provider.
*
* @since __DEPLOY_VERSION__
*/
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\\Healthcheck'));
$container->registerServiceProvider(new HelperFactory('\\Joomla\\Module\\Healthcheck\\Administrator\\Helper'));

$container->registerServiceProvider(new Module());
}
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

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

namespace Joomla\Module\Healthcheck\Administrator\Dispatcher;

use Joomla\CMS\Dispatcher\AbstractModuleDispatcher;
use Joomla\CMS\Helper\HelperFactoryAwareInterface;
use Joomla\CMS\Helper\HelperFactoryAwareTrait;

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

/**
* Dispatcher class for mod_healthcheck
*
* @since __DEPLOY_VERSION__
*/
class Dispatcher extends AbstractModuleDispatcher implements HelperFactoryAwareInterface
{
use HelperFactoryAwareTrait;

/**
* Returns the layout data.
*
* @return array
*
* @since __DEPLOY_VERSION__
*/
protected function getLayoutData()
{
$data = parent::getLayoutData();

$helper = $this->getHelperFactory()->getHelper('HealthCheckHelper');

$data['gauges'] = $helper->getGauges($data['params'], $this->getApplication());
$data['buttons'] = $helper->getButtons($data['params'], $this->getApplication());
$data['lists'] = $helper->getLists($data['params'], $this->getApplication());
$data['tables'] = $helper->getTables($data['params'], $this->getApplication());
$data['reports'] = $helper->getReports($data['params'], $this->getApplication());

$data['leading'] = $helper->getLeading($data['params'], $this->getApplication());
$data['footer'] = $helper->getFooter($data['params'], $this->getApplication());

// Make helper available to layouts
$data['helper'] = $helper;

return $data;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?php

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

namespace Joomla\Module\Healthcheck\Administrator\Event;

use Joomla\CMS\Event\AbstractEvent;

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

/**
* Event object for retrieving pluggable health checks
*
* @since __DEPLOY_VERSION__
*/
class HealthChecksEvent extends AbstractEvent
{
/**
* The event context
*
* @var string
* @since __DEPLOY_VERSION__
*/
private $context;

/**
* Get the event context
*
* @return string
*
* @since __DEPLOY_VERSION__
*/
public function getContext()
{
return $this->context;
}

/**
* Set the event context
*
* @param string $context The event context
*
* @return string
*
* @since __DEPLOY_VERSION__
*/
public function setContext($context)
{
$this->context = $context;

return $context;
}
}
Loading
Loading