mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-07-01 14:04:30 +02:00
Use new settings system to configure the instance Name and homepage banner
This commit is contained in:
parent
26d83af298
commit
0772d85918
23 changed files with 299 additions and 230 deletions
|
@ -42,6 +42,7 @@ declare(strict_types=1);
|
|||
namespace App\Services\LabelSystem;
|
||||
|
||||
use App\Entity\LabelSystem\LabelProcessMode;
|
||||
use App\Settings\SystemSettings\CustomizationSettings;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use App\Entity\Contracts\NamedElementInterface;
|
||||
use App\Entity\LabelSystem\LabelOptions;
|
||||
|
@ -60,7 +61,7 @@ final class LabelHTMLGenerator
|
|||
private readonly LabelBarcodeGenerator $barcodeGenerator,
|
||||
private readonly SandboxedTwigFactory $sandboxedTwigProvider,
|
||||
private readonly Security $security,
|
||||
private readonly string $partdb_title)
|
||||
private readonly CustomizationSettings $customizationSettings,)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -88,7 +89,8 @@ final class LabelHTMLGenerator
|
|||
'page' => $page,
|
||||
'last_page' => count($elements),
|
||||
'user' => $current_user,
|
||||
'install_title' => $this->partdb_title,
|
||||
'install_title' => $this->customizationSettings->instanceName,
|
||||
'partdb_title' => $this->customizationSettings->instanceName,
|
||||
'paper_width' => $options->getWidth(),
|
||||
'paper_height' => $options->getHeight(),
|
||||
]
|
||||
|
|
|
@ -41,6 +41,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Services\LabelSystem\PlaceholderProviders;
|
||||
|
||||
use App\Settings\SystemSettings\CustomizationSettings;
|
||||
use Symfony\Bundle\SecurityBundle\Security;
|
||||
use App\Entity\UserSystem\User;
|
||||
use DateTime;
|
||||
|
@ -54,14 +55,18 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
|||
*/
|
||||
final class GlobalProviders implements PlaceholderProviderInterface
|
||||
{
|
||||
public function __construct(private readonly string $partdb_title, private readonly Security $security, private readonly UrlGeneratorInterface $url_generator)
|
||||
public function __construct(
|
||||
private readonly Security $security,
|
||||
private readonly UrlGeneratorInterface $url_generator,
|
||||
private CustomizationSettings $customizationSettings,
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
public function replace(string $placeholder, object $label_target, array $options = []): ?string
|
||||
{
|
||||
if ('[[INSTALL_NAME]]' === $placeholder) {
|
||||
return $this->partdb_title;
|
||||
return $this->customizationSettings->instanceName;
|
||||
}
|
||||
|
||||
$user = $this->security->getUser();
|
||||
|
|
|
@ -23,12 +23,14 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Services\System;
|
||||
|
||||
use App\Settings\SystemSettings\CustomizationSettings;
|
||||
|
||||
/**
|
||||
* Helper service to retrieve the banner of this Part-DB installation
|
||||
*/
|
||||
class BannerHelper
|
||||
{
|
||||
public function __construct(private readonly string $project_dir, private readonly string $partdb_banner)
|
||||
public function __construct(private CustomizationSettings $customizationSettings)
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -39,21 +41,6 @@ class BannerHelper
|
|||
*/
|
||||
public function getBanner(): string
|
||||
{
|
||||
$banner = $this->partdb_banner;
|
||||
if (!is_string($banner)) {
|
||||
throw new \RuntimeException('The parameter "partdb.banner" must be a string.');
|
||||
}
|
||||
if (empty($banner)) {
|
||||
$banner_path = $this->project_dir
|
||||
.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'banner.md';
|
||||
|
||||
$tmp = file_get_contents($banner_path);
|
||||
if (false === $tmp) {
|
||||
throw new \RuntimeException('The banner file could not be read.');
|
||||
}
|
||||
$banner = $tmp;
|
||||
}
|
||||
|
||||
return $banner;
|
||||
return $this->customizationSettings->banner ?? "";
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue