如何在前端显示我的站点包的版本?
How can I display the version of my sitepackage in the frontend?
我想在前端显示我的sitepackage
(来自我的声明文件ext_emconf.php
)的版本。
如何查询这些信息?我正在考虑在我的 FLUIDTEMPLATE
中使用 DataProcessor
,但我不确定是否需要自己编写,或者是否已经有一个我可以使用的。
谢谢!
根据您的具体需要,您可以使用 ExtensionManagementUtility::getExtensionVersion()
通过 ExtensionManagementUtility::addTypoScriptConstants()
:
注入全局 TypoScript 常量
// ext_localconf.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptConstants(sprintf(
'site.version = %s',
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionVersion('sitepackage')
));
之后您可以在 TypoScript 设置中的任何位置使用此常量,包括 variables
流体模板:
// TypoScript setup
10 = FLUIDTEMPLATE
10 {
// ...
variables {
siteVersion = {$site.version}
}
}
现在在模板中任何你喜欢的地方使用这个变量:
<!-- Fluid template -->
<p>Site {siteVersion}</p>
没有对应的 DataProcessor。
我建议创建一个小的 PHP class 来读取版本并通过 TypoScript 将其作为 USER 对象集成。
namespace Vendor\Sitepackage\Service;
class SitepackageVersionService
{
public function getVersion(): string
{
$version = '';
$packageManager = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Package\PackageManager::class);
$extensionKey = 'my_extension_key';
if ($packageManager->isPackageActive($extensionKey)) {
$package = $packageManager->getPackage($extensionKey);
$version = $package->getPackageMetaData()->getVersion();
}
return $version;
}
}
page.10.variables.sitePackageVersion = USER
page.10.variables.sitePackageVersion.userFunc = Vendor\Sitepackage\Service\SitepackageVersionService->getVersion
<strong>Version: {sitePackageVersion}</strong>
我想在前端显示我的sitepackage
(来自我的声明文件ext_emconf.php
)的版本。
如何查询这些信息?我正在考虑在我的 FLUIDTEMPLATE
中使用 DataProcessor
,但我不确定是否需要自己编写,或者是否已经有一个我可以使用的。
谢谢!
根据您的具体需要,您可以使用 ExtensionManagementUtility::getExtensionVersion()
通过 ExtensionManagementUtility::addTypoScriptConstants()
:
// ext_localconf.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScriptConstants(sprintf(
'site.version = %s',
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionVersion('sitepackage')
));
之后您可以在 TypoScript 设置中的任何位置使用此常量,包括 variables
流体模板:
// TypoScript setup
10 = FLUIDTEMPLATE
10 {
// ...
variables {
siteVersion = {$site.version}
}
}
现在在模板中任何你喜欢的地方使用这个变量:
<!-- Fluid template -->
<p>Site {siteVersion}</p>
没有对应的 DataProcessor。
我建议创建一个小的 PHP class 来读取版本并通过 TypoScript 将其作为 USER 对象集成。
namespace Vendor\Sitepackage\Service;
class SitepackageVersionService
{
public function getVersion(): string
{
$version = '';
$packageManager = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Package\PackageManager::class);
$extensionKey = 'my_extension_key';
if ($packageManager->isPackageActive($extensionKey)) {
$package = $packageManager->getPackage($extensionKey);
$version = $package->getPackageMetaData()->getVersion();
}
return $version;
}
}
page.10.variables.sitePackageVersion = USER
page.10.variables.sitePackageVersion.userFunc = Vendor\Sitepackage\Service\SitepackageVersionService->getVersion
<strong>Version: {sitePackageVersion}</strong>