mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
48 lines
2.0 KiB
PHP
48 lines
2.0 KiB
PHP
<?php
|
||
|
||
require_once APP_ROOT . '/src/Database.php';
|
||
require_once APP_ROOT . '/src/ErrorHandler.php';
|
||
require_once APP_ROOT . '/src/EmailObfuscator.php';
|
||
|
||
use League\CommonMark\CommonMarkConverter;
|
||
|
||
class AboutController
|
||
{
|
||
private string $defaultContent = "Ce site XAMXAM a été créé pour répertorier et valoriser les mémoires de l'erg – École de Recherches Graphiques de Bruxelles.\n\nL'objectif est à la fois d'offrir une vitrine aux projets des anciennes étudiantes et de mettre en lumière la diversité des disciplines et des parcours qui façonnent l'histoire de l'école à travers les âges, depuis près de 100 ans.";
|
||
|
||
public static function create(): self
|
||
{
|
||
return new self();
|
||
}
|
||
|
||
public function handle(): array
|
||
{
|
||
try {
|
||
$db = Database::getInstance();
|
||
$aboutPage = $db->getPage('about');
|
||
$rawContent = $aboutPage ? $aboutPage['content'] : '';
|
||
if (empty(trim($rawContent)) || trim($rawContent) === 'Contenu à venir') {
|
||
$rawContent = $this->defaultContent;
|
||
}
|
||
$contacts = $db->getAproposContent('contacts');
|
||
$contacts = is_array($contacts) && !empty($contacts) ? $contacts : null;
|
||
} catch (Exception $e) {
|
||
ErrorHandler::log('about_page', $e);
|
||
$rawContent = $this->defaultContent;
|
||
$contacts = null;
|
||
}
|
||
|
||
$converter = new CommonMarkConverter(['html_input' => 'strip']);
|
||
|
||
return [
|
||
'currentNav' => 'apropos',
|
||
'aboutHtml' => EmailObfuscator::obfuscateHtml($converter->convert($rawContent)->getContent()),
|
||
'contacts' => $contacts,
|
||
'pageTitle' => 'À Propos – XAMXAM',
|
||
'metaDescription' => "À propos de XAMXAM, le répertoire des mémoires de fin d'études de l'erg – École de Recherches Graphiques de Bruxelles.",
|
||
'extraCss' => ['/assets/css/apropos.css'],
|
||
'bodyClass' => 'apropos-body',
|
||
];
|
||
}
|
||
}
|