48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace paygw_moneta\local;
|
|
|
|
/**
|
|
* Идентификатор CMS и модуля для `MNT_CMS`:
|
|
* `Moodle v<release>|PHP <version>|Moneta v<release>`.
|
|
*
|
|
* @package paygw_moneta
|
|
* @copyright 2026 Moneta Labs {@link https://moneta.ru/}
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
|
*/
|
|
final class CmsInfo
|
|
{
|
|
private const CMS_NAME = 'Moodle';
|
|
private const MODULE_NAME = 'Moneta';
|
|
|
|
private function __construct() {}
|
|
|
|
public static function getCmsModuleVersion(): string
|
|
{
|
|
global $CFG;
|
|
|
|
$pluginInfo = \core_plugin_manager::instance()->get_plugin_info('paygw_moneta');
|
|
$moduleVersion = $pluginInfo?->release ?? (string) ($pluginInfo?->versiondisk ?? 'unknown');
|
|
|
|
return self::format(
|
|
cmsVersion: (string) ($CFG->release ?? 'unknown'),
|
|
phpVersion: PHP_VERSION,
|
|
moduleVersion: (string) $moduleVersion,
|
|
);
|
|
}
|
|
|
|
public static function format(string $cmsVersion, string $phpVersion, string $moduleVersion): string
|
|
{
|
|
return sprintf(
|
|
'%s v%s|PHP %s|%s v%s',
|
|
self::CMS_NAME,
|
|
$cmsVersion,
|
|
$phpVersion,
|
|
self::MODULE_NAME,
|
|
$moduleVersion,
|
|
);
|
|
}
|
|
}
|