37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Enums\Site;
|
|
|
|
use App\Models\Project;
|
|
use App\Models\ProjectLanguage;
|
|
|
|
enum ProjectSection: string
|
|
{
|
|
case Home = 'home';
|
|
case Feedback = 'feedback';
|
|
case FeedbackSend = 'feedback.send';
|
|
case Documentation = 'documentation';
|
|
case DocumentationVersion = 'documentation.version';
|
|
case DocumentationCategory = 'documentation.category';
|
|
case DocumentationView = 'documentation.view';
|
|
|
|
public function url(Project $project, ?ProjectLanguage $language = null, array $parameters = []): string
|
|
{
|
|
$prefixProject = '';
|
|
if ($project->http_host === null) {
|
|
$prefixProject = 'project.';
|
|
$parameters['project'] = $project->code;
|
|
}
|
|
|
|
$prefixLanguage = '';
|
|
if ($language?->is_default === false) {
|
|
$parameters['language'] = $language->code;
|
|
$prefixLanguage = '-language';
|
|
}
|
|
|
|
$route = \route($prefixProject . $this->value . $prefixLanguage, $parameters, false);
|
|
|
|
return $project->http_host . $route;
|
|
}
|
|
}
|