Merge TITLES and DESCRIPTIONS into PAGES

This commit is contained in:
Miraty 2022-09-15 21:23:49 +02:00
parent 763762f08b
commit c65dedf9de
4 changed files with 154 additions and 99 deletions

View file

@ -91,12 +91,12 @@ function query($action, $table, $conditions = [], $column = NULL) {
function displayIndex() { ?>
<nav>
<dl>
<?php foreach (DESCRIPTIONS[SERVICE] as $pageId => $pageDesc) {
<?php foreach (PAGES[SERVICE] as $pageId => $page) {
if ($pageId === 'index') continue;
?>
<dt><a href="<?= $pageId ?>"><?= TITLES[SERVICE][$pageId] ?></a></dt>
<dt><a href="<?= $pageId ?>"><?= $page['title'] ?></a></dt>
<dd>
<?= $pageDesc ?>
<?= $page['description'] ?>
</dd>
<?php } ?>
</dl>

215
pages.php
View file

@ -1,92 +1,147 @@
<?php
define('TITLES', [
'index' => '<span aria-hidden="true">🪐 </span>Niver',
'auth' => [
'index' => '<span aria-hidden="true">🔐 </span>Authentification',
'login' => 'Se connecter',
'register' => 'Créer un compte',
'unregister' => 'Supprimer son compte',
'password' => 'Changer la clé de passe',
'logout' => 'Déconnexion',
define('PAGES', [
'index' => [
'title' => '<span aria-hidden="true">🪐 </span>Niver',
],
'auth' => [
'index' => [
'title' => '<span aria-hidden="true">🔐 </span>Authentification',
'description' => 'Gérer son compte',
],
'reg' => [
'index' => '<span aria-hidden="true">🏷️ </span>Registre <code>' . CONF['reg']['registry'] . '</code>',
'register' => 'Enregistrer un nouveau domaine',
'unregister' => 'Effacer un domaine',
'print' => 'Afficher les données',
'ns' => 'Ajouter un enregistrement <abbr title="Name Server">NS</abbr>',
'ds' => 'Ajouter un enregistrement <abbr title="Delegation Signer">DS</abbr>',
'glue' => 'Créer un Glue Record',
'login' => [
'title' => 'Se connecter',
'description' => 'Démarrer une nouvelle session avec un compte existant',
],
'register' => [
'title' => 'Créer un compte',
'description' => 'Créer un nouveau compte Niver',
],
'unregister' => [
'title' => 'Supprimer son compte',
'description' => 'Effacer les données liées à son compte',
],
'password' => [
'title' => 'Changer la clé de passe',
'description' => 'Changer la chaîne de caractères permettant de vous authentifier.',
],
'logout' => [
'title' => 'Déconnexion',
'description' => 'Terminer la session et effacer ses cookies',
],
],
'reg' => [
'index' => [
'title' => '<span aria-hidden="true">🏷️ </span>Registre <code>' . CONF['reg']['registry'] . '</code>',
'description' => 'Demander l\'attribution d\'un sous-domaine',
],
'register' => [
'title' => 'Enregistrer un nouveau domaine',
'description' => 'Prendre possession d\'un sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
],
'unregister' => [
'title' => 'Effacer un domaine',
'description' => 'Effacer toutes les données d\'un domaine',
],
'print' => [
'title' => 'Afficher les données',
'description' => 'Afficher les enregistrements relatifs à un domaine',
],
'ns' => [
'index' => '<span aria-hidden="true">📖 </span>Serveurs de noms',
'zone-add' => 'Ajouter une zone',
'zone-del' => 'Effacer une zone',
'print' => 'Afficher les données',
'ip' => 'Enregistrements A et AAAA',
'ns' => 'Enregistrement <abbr title="Name Server">NS</abbr>',
'txt' => 'Enregistrement <abbr title="TeXT">TXT</abbr>',
'caa' => 'Enregistrement <abbr title="Certification Authority Authorization">CAA</abbr>',
'srv' => 'Enregistrement <abbr title="SeRVice">SRV</abbr>',
'mx' => 'Enregistrement <abbr title="Mail eXchanger">MX</abbr>',
'sshfp' => 'Enregistrement <abbr title="Secure SHell FingerPrint">SSHFP</abbr>',
'tlsa' => 'Enregistrement <abbr title="Transport Layer Security Association">TLSA</abbr>',
'cname' => 'Enregistrement <abbr title="Canonical NAME">CNAME</abbr>',
'dname' => 'Enregistrement <abbr title="Delegation NAME">DNAME</abbr>',
'loc' => 'Enregistrement <abbr title="LOCation">LOC</abbr>',
'title' => 'Ajouter un enregistrement <abbr title="Name Server">NS</abbr>',
'description' => 'Indiquer les serveurs de noms de son sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
],
'ht' => [
'index' => '<span aria-hidden="true">🕸️ </span>Hypertexte',
'add-http-onion' => 'Ajouter un accès HTTP par Onion',
'add-http-dns' => 'Ajouter un accès HTTP par DNS+TLS',
'del-http-onion' => 'Retirer un accès HTTP par Onion',
'del-http-dns' => 'Retirer un accès HTTP par DNS+TLS',
'ds' => [
'title' => 'Ajouter un enregistrement <abbr title="Delegation Signer">DS</abbr>',
'description' => 'Déléguer la confiance <abbr title="Domain Name System Security Extensions">DNSSEC</abbr>',
],
]
);
define('DESCRIPTIONS', [
'auth' => [
'index' => 'Gérer son compte',
'login' => 'Démarrer une nouvelle session avec un compte existant',
'register' => 'Créer un nouveau compte Niver',
'unregister' => 'Effacer les données liées à son compte',
'password' => 'Changer la chaîne de caractères permettant de vous authentifier.',
'logout' => 'Terminer la session et effacer ses cookies',
'glue' => [
'title' => 'Créer un Glue Record',
'description' => 'Indiquer les IP de ses serveurs de noms de son sous-domaine de <code>' . CONF['reg']['registry'] . '</code> dont les adresses se trouvent sur ce même sous-domaine',
],
'reg' => [
'index' => 'Demander l\'attribution d\'un sous-domaine',
'register' => 'Prendre possession d\'un sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
'unregister' => 'Effacer toutes les données d\'un domaine',
'print' => 'Afficher les enregistrements relatifs à un domaine',
'ns' => 'Indiquer les serveurs de noms de son sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
'ds' => 'Déléguer la confiance <abbr title="Domain Name System Security Extensions">DNSSEC</abbr>',
'glue' => 'Indiquer les IP de ses serveurs de noms de son sous-domaine de <code>' . CONF['reg']['registry'] . '</code> dont les adresses se trouvent sur ce même sous-domaine',
],
'ns' => [
'index' => [
'title' => '<span aria-hidden="true">📖 </span>Serveurs de noms',
'description' => 'Gérer les données enregistrées dans ses domaines',
],
'zone-add' => [
'title' => 'Ajouter une zone',
'description' => 'Pour qu\'elle soit gérée par le serveur de noms de Niver',
],
'zone-del' => [
'title' => 'Effacer une zone',
'description' => 'Effacer toutes les données d\'une zone',
],
'print' => [
'title' => 'Afficher les données',
'description' => 'Afficher le contenu de la zone',
],
'ip' => [
'title' => 'Enregistrements A et AAAA',
'description' => 'Indiquer l\'adresse IP d\'un domaine',
],
'ns' => [
'index' => 'Gérer les données enregistrées dans ses domaines',
'zone-add' => 'Pour qu\'elle soit gérée par le serveur de noms de Niver',
'zone-del' => 'Effacer toutes les données d\'une zone',
'print' => 'Afficher le contenu de la zone',
'ip' => 'Indiquer l\'adresse IP d\'un domaine',
'ns' => 'Indiquer le serveur de noms d\'une zone',
'txt' => 'Associer du texte à un domaine',
'caa' => 'Limiter les autorités de certification autorisées à émettre des certificats',
'srv' => 'Indiquer l\'adresse d\'un service spécifique',
'mx' => 'Indiquer l\'adresse du serveur recevant les courriels',
'sshfp' => 'Indiquer les empreintes des clés <abbr title="Secure SHell">SSH</abbr>',
'tlsa' => 'Mettre en place <abbr title="DNS-based Authentication of Named Entities">DANE</abbr> en indiquant l\'empreinte d\'un certificat <abbr title="Transport Layer Security">TLS</abbr>',
'cname' => 'Définir un domaine comme étant l\'alias d\'un autre',
'dname' => 'Définir les sous-domaines d\'un domaine comme étant les alias des sous-domaines d\'un autre domaine',
'loc' => 'Indiquer des coordonnées géographiques',
'title' => 'Enregistrement <abbr title="Name Server">NS</abbr>',
'description' => 'Indiquer le serveur de noms d\'une zone',
],
'ht' => [
'index' => 'Mettre en ligne son site statique sur un espace <abbr title="SSH File Transfert Protocol">SFTP</abbr>, et le faire répondre en <abbr title="HyperText Transfert Protocol">HTTP</abbr> par DNS ou Tor',
'add-http-onion' => 'Ajouter un accès HTTP par ' . linkToDocs('tor', 'service Onion') . ' sur un sous-dossier de l\'espace SFTP',
'add-http-dns' => 'Ajouter un accès HTTP par ' . linkToDocs('dns', 'DNS') . ' et ' . linkToDocs('tls', 'TLS') . ' sur un sous-dossier de l\'espace SFTP',
'del-http-onion' => 'Retirer un accès HTTP par service Onion d\'un sous-dossier de l\'espace SFTP',
'del-http-dns' => 'Retirer un accès HTTP par DNS et TLS d\'un sous-dossier de l\'espace SFTP',
'txt' => [
'title' => 'Enregistrement <abbr title="TeXT">TXT</abbr>',
'description' => 'Associer du texte à un domaine',
],
]
);
'caa' => [
'title' => 'Enregistrement <abbr title="Certification Authority Authorization">CAA</abbr>',
'description' => 'Limiter les autorités de certification autorisées à émettre des certificats',
],
'srv' => [
'title' => 'Enregistrement <abbr title="SeRVice">SRV</abbr>',
'description' => 'Indiquer l\'adresse d\'un service spécifique',
],
'mx' => [
'title' => 'Enregistrement <abbr title="Mail eXchanger">MX</abbr>',
'description' => 'Indiquer l\'adresse du serveur recevant les courriels',
],
'sshfp' => [
'title' => 'Enregistrement <abbr title="Secure SHell FingerPrint">SSHFP</abbr>',
'description' => 'Indiquer les empreintes des clés <abbr title="Secure SHell">SSH</abbr>',
],
'tlsa' => [
'title' => 'Enregistrement <abbr title="Transport Layer Security Association">TLSA</abbr>',
'description' => 'Mettre en place <abbr title="DNS-based Authentication of Named Entities">DANE</abbr> en indiquant l\'empreinte d\'un certificat <abbr title="Transport Layer Security">TLS</abbr>',
],
'cname' => [
'title' => 'Enregistrement <abbr title="Canonical NAME">CNAME</abbr>',
'description' => 'Définir un domaine comme étant l\'alias d\'un autre',
],
'dname' => [
'title' => 'Enregistrement <abbr title="Delegation NAME">DNAME</abbr>',
'description' => 'Définir les sous-domaines d\'un domaine comme étant les alias des sous-domaines d\'un autre domaine',
],
'loc' => [
'title' => 'Enregistrement <abbr title="LOCation">LOC</abbr>',
'description' => 'Indiquer des coordonnées géographiques',
],
],
'ht' => [
'index' => [
'title' => '<span aria-hidden="true">🕸️ </span>Hypertexte',
'description' => 'Mettre en ligne son site statique sur un espace <abbr title="SSH File Transfert Protocol">SFTP</abbr>, et le faire répondre en <abbr title="HyperText Transfert Protocol">HTTP</abbr> par DNS ou Tor',
],
'add-http-onion' => [
'title' => 'Ajouter un accès HTTP par Onion',
'description' => 'Ajouter un accès HTTP par ' . linkToDocs('tor', 'service Onion') . ' sur un sous-dossier de l\'espace SFTP',
],
'add-http-dns' => [
'title' => 'Ajouter un accès HTTP par DNS+TLS',
'description' => 'Ajouter un accès HTTP par ' . linkToDocs('dns', 'DNS') . ' et ' . linkToDocs('tls', 'TLS') . ' sur un sous-dossier de l\'espace SFTP',
],
'del-http-onion' => [
'title' => 'Retirer un accès HTTP par Onion',
'description' => 'Retirer un accès HTTP par service Onion d\'un sous-dossier de l\'espace SFTP',
],
'del-http-dns' => [
'title' => 'Retirer un accès HTTP par DNS+TLS',
'description' => 'Retirer un accès HTTP par DNS et TLS d\'un sous-dossier de l\'espace SFTP',
],
],
]);

View file

@ -1,25 +1,25 @@
<nav>
<dl>
<dt><a class="auth" href="auth/"><?= TITLES['auth']['index'] ?></a></dt>
<dt><a class="auth" href="auth/"><?= PAGES['auth']['index']['title'] ?></a></dt>
<dd>
<?= DESCRIPTIONS['auth']['index'] ?>
<?= PAGES['auth']['index']['description'] ?>
</dd>
<?php if(CONF['reg']['enabled'] === true) { ?>
<dt><a class="reg" href="reg/"><?= TITLES['reg']['index'] ?></code></a></dt>
<dt><a class="reg" href="reg/"><?= PAGES['reg']['index']['title'] ?></code></a></dt>
<dd>
<?= DESCRIPTIONS['reg']['index'] ?>
<?= PAGES['reg']['index']['description'] ?>
</dd>
<?php } ?>
<?php if(CONF['ns']['enabled'] === true) { ?>
<dt><a class="ns" href="ns/"><?= TITLES['ns']['index'] ?></a></dt>
<dt><a class="ns" href="ns/"><?= PAGES['ns']['index']['title'] ?></a></dt>
<dd>
<?= DESCRIPTIONS['ns']['index'] ?>
<?= PAGES['ns']['index']['description'] ?>
</dd>
<?php } ?>
<?php if(CONF['ht']['enabled'] === true) { ?>
<dt><a class="ht" href="ht/"><?= TITLES['ht']['index'] ?></a></dt>
<dt><a class="ht" href="ht/"><?= PAGES['ht']['index']['title'] ?></a></dt>
<dd>
<?= DESCRIPTIONS['ht']['index'] ?>
<?= PAGES['ht']['index']['description'] ?>
</dd>
<?php } ?>
</dl>

View file

@ -26,19 +26,19 @@ define("PAGE_LINEAGE", explode('/', PAGE_ADDRESS));
define("SERVICE", dirname(PAGE_ADDRESS));
define("PAGE", basename(PAGE_ADDRESS, '.php'));
function getTitlesLineage($titles, $pageElements) {
if (!isset($titles['index']) OR $pageElements[0] === 'index')
return [$titles[$pageElements[0]] ?? false];
$result = $titles['index'];
function getTitlesLineage($pages, $pageElements) {
if (!isset($pages['index']) OR $pageElements[0] === 'index')
return [$pages[$pageElements[0]]['title'] ?? false];
$result = $pages['index']['title'];
if (!isset($pageElements[1]))
unset($titles['index']);
unset($pages['index']);
else
$titles = $titles[array_shift($pageElements)] ?? false;
$results = getTitlesLineage($titles, $pageElements);
$pages = $pages[array_shift($pageElements)] ?? false;
$results = getTitlesLineage($pages, $pageElements);
$results[] = $result;
return $results;
}
define('TITLES_LINEAGE', array_reverse(getTitlesLineage(TITLES, PAGE_LINEAGE)));
define('TITLES_LINEAGE', array_reverse(getTitlesLineage(PAGES, PAGE_LINEAGE)));
if (!TITLES_LINEAGE[array_key_last(TITLES_LINEAGE)]) {
http_response_code(404);