Merge TITLES and DESCRIPTIONS into PAGES
This commit is contained in:
parent
763762f08b
commit
c65dedf9de
4 changed files with 154 additions and 99 deletions
|
@ -91,12 +91,12 @@ function query($action, $table, $conditions = [], $column = NULL) {
|
||||||
function displayIndex() { ?>
|
function displayIndex() { ?>
|
||||||
<nav>
|
<nav>
|
||||||
<dl>
|
<dl>
|
||||||
<?php foreach (DESCRIPTIONS[SERVICE] as $pageId => $pageDesc) {
|
<?php foreach (PAGES[SERVICE] as $pageId => $page) {
|
||||||
if ($pageId === 'index') continue;
|
if ($pageId === 'index') continue;
|
||||||
?>
|
?>
|
||||||
<dt><a href="<?= $pageId ?>"><?= TITLES[SERVICE][$pageId] ?></a></dt>
|
<dt><a href="<?= $pageId ?>"><?= $page['title'] ?></a></dt>
|
||||||
<dd>
|
<dd>
|
||||||
<?= $pageDesc ?>
|
<?= $page['description'] ?>
|
||||||
</dd>
|
</dd>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
215
pages.php
215
pages.php
|
@ -1,92 +1,147 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
define('TITLES', [
|
define('PAGES', [
|
||||||
'index' => '<span aria-hidden="true">🪐 </span>Niver',
|
'index' => [
|
||||||
'auth' => [
|
'title' => '<span aria-hidden="true">🪐 </span>Niver',
|
||||||
'index' => '<span aria-hidden="true">🔐 </span>Authentification',
|
],
|
||||||
'login' => 'Se connecter',
|
'auth' => [
|
||||||
'register' => 'Créer un compte',
|
'index' => [
|
||||||
'unregister' => 'Supprimer son compte',
|
'title' => '<span aria-hidden="true">🔐 </span>Authentification',
|
||||||
'password' => 'Changer la clé de passe',
|
'description' => 'Gérer son compte',
|
||||||
'logout' => 'Déconnexion',
|
|
||||||
],
|
],
|
||||||
'reg' => [
|
'login' => [
|
||||||
'index' => '<span aria-hidden="true">🏷️ </span>Registre <code>' . CONF['reg']['registry'] . '</code>',
|
'title' => 'Se connecter',
|
||||||
'register' => 'Enregistrer un nouveau domaine',
|
'description' => 'Démarrer une nouvelle session avec un compte existant',
|
||||||
'unregister' => 'Effacer un domaine',
|
],
|
||||||
'print' => 'Afficher les données',
|
'register' => [
|
||||||
'ns' => 'Ajouter un enregistrement <abbr title="Name Server">NS</abbr>',
|
'title' => 'Créer un compte',
|
||||||
'ds' => 'Ajouter un enregistrement <abbr title="Delegation Signer">DS</abbr>',
|
'description' => 'Créer un nouveau compte Niver',
|
||||||
'glue' => 'Créer un Glue Record',
|
],
|
||||||
|
'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' => [
|
'ns' => [
|
||||||
'index' => '<span aria-hidden="true">📖 </span>Serveurs de noms',
|
'title' => 'Ajouter un enregistrement <abbr title="Name Server">NS</abbr>',
|
||||||
'zone-add' => 'Ajouter une zone',
|
'description' => 'Indiquer les serveurs de noms de son sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
|
||||||
'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>',
|
|
||||||
],
|
],
|
||||||
'ht' => [
|
'ds' => [
|
||||||
'index' => '<span aria-hidden="true">🕸️ </span>Hypertexte',
|
'title' => 'Ajouter un enregistrement <abbr title="Delegation Signer">DS</abbr>',
|
||||||
'add-http-onion' => 'Ajouter un accès HTTP par Onion',
|
'description' => 'Déléguer la confiance <abbr title="Domain Name System Security Extensions">DNSSEC</abbr>',
|
||||||
'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',
|
|
||||||
],
|
],
|
||||||
]
|
'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',
|
||||||
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',
|
|
||||||
],
|
],
|
||||||
'reg' => [
|
],
|
||||||
'index' => 'Demander l\'attribution d\'un sous-domaine',
|
'ns' => [
|
||||||
'register' => 'Prendre possession d\'un sous-domaine de <code>' . CONF['reg']['registry'] . '</code>',
|
'index' => [
|
||||||
'unregister' => 'Effacer toutes les données d\'un domaine',
|
'title' => '<span aria-hidden="true">📖 </span>Serveurs de noms',
|
||||||
'print' => 'Afficher les enregistrements relatifs à un domaine',
|
'description' => 'Gérer les données enregistrées dans ses domaines',
|
||||||
'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>',
|
'zone-add' => [
|
||||||
'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',
|
'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' => [
|
'ns' => [
|
||||||
'index' => 'Gérer les données enregistrées dans ses domaines',
|
'title' => 'Enregistrement <abbr title="Name Server">NS</abbr>',
|
||||||
'zone-add' => 'Pour qu\'elle soit gérée par le serveur de noms de Niver',
|
'description' => 'Indiquer le serveur de noms d\'une zone',
|
||||||
'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',
|
|
||||||
],
|
],
|
||||||
'ht' => [
|
'txt' => [
|
||||||
'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',
|
'title' => 'Enregistrement <abbr title="TeXT">TXT</abbr>',
|
||||||
'add-http-onion' => 'Ajouter un accès HTTP par ' . linkToDocs('tor', 'service Onion') . ' sur un sous-dossier de l\'espace SFTP',
|
'description' => 'Associer du texte à un domaine',
|
||||||
'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',
|
|
||||||
],
|
],
|
||||||
]
|
'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',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
<nav>
|
<nav>
|
||||||
<dl>
|
<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>
|
<dd>
|
||||||
<?= DESCRIPTIONS['auth']['index'] ?>
|
<?= PAGES['auth']['index']['description'] ?>
|
||||||
</dd>
|
</dd>
|
||||||
<?php if(CONF['reg']['enabled'] === true) { ?>
|
<?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>
|
<dd>
|
||||||
<?= DESCRIPTIONS['reg']['index'] ?>
|
<?= PAGES['reg']['index']['description'] ?>
|
||||||
</dd>
|
</dd>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if(CONF['ns']['enabled'] === true) { ?>
|
<?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>
|
<dd>
|
||||||
<?= DESCRIPTIONS['ns']['index'] ?>
|
<?= PAGES['ns']['index']['description'] ?>
|
||||||
</dd>
|
</dd>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
<?php if(CONF['ht']['enabled'] === true) { ?>
|
<?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>
|
<dd>
|
||||||
<?= DESCRIPTIONS['ht']['index'] ?>
|
<?= PAGES['ht']['index']['description'] ?>
|
||||||
</dd>
|
</dd>
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
16
router.php
16
router.php
|
@ -26,19 +26,19 @@ define("PAGE_LINEAGE", explode('/', PAGE_ADDRESS));
|
||||||
define("SERVICE", dirname(PAGE_ADDRESS));
|
define("SERVICE", dirname(PAGE_ADDRESS));
|
||||||
define("PAGE", basename(PAGE_ADDRESS, '.php'));
|
define("PAGE", basename(PAGE_ADDRESS, '.php'));
|
||||||
|
|
||||||
function getTitlesLineage($titles, $pageElements) {
|
function getTitlesLineage($pages, $pageElements) {
|
||||||
if (!isset($titles['index']) OR $pageElements[0] === 'index')
|
if (!isset($pages['index']) OR $pageElements[0] === 'index')
|
||||||
return [$titles[$pageElements[0]] ?? false];
|
return [$pages[$pageElements[0]]['title'] ?? false];
|
||||||
$result = $titles['index'];
|
$result = $pages['index']['title'];
|
||||||
if (!isset($pageElements[1]))
|
if (!isset($pageElements[1]))
|
||||||
unset($titles['index']);
|
unset($pages['index']);
|
||||||
else
|
else
|
||||||
$titles = $titles[array_shift($pageElements)] ?? false;
|
$pages = $pages[array_shift($pageElements)] ?? false;
|
||||||
$results = getTitlesLineage($titles, $pageElements);
|
$results = getTitlesLineage($pages, $pageElements);
|
||||||
$results[] = $result;
|
$results[] = $result;
|
||||||
return $results;
|
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)]) {
|
if (!TITLES_LINEAGE[array_key_last(TITLES_LINEAGE)]) {
|
||||||
http_response_code(404);
|
http_response_code(404);
|
||||||
|
|
Loading…
Reference in a new issue