bo
Table of Contents
Classes
- IpAddressSqlDef
- Définition du schéma de la table ipaddress et de son contenu
- Request2GBox
- classe traduisant un URI correspondant à une requête WMS ou tile dans le GBox de la loc. de la requête
- HeatData
- construit un enregistrement pour carte de chaleur à partir de l'URI de la requête
- GBoxAsPolygon
- Analyse un GBox fourni par gdalinfo comme polygone GeoJSON pour déterminer s'il intersecte ou non l'antiméridien
- GBoxBo
- Ajout de fonctionnalités à \gegeom\GBox
- EBoxBo
- extension de EBox avec possibilité de création à partir du champ cornerCoordinates de gdalinfo
- GdalInfoBo
- contenu du gdalinfo d'un fichier .tif ou .pdf.
- Login
- Gestion du login
- GeoRefImage
- Image principale ou cartouche de la carte
- MapArchive
- analyse les fichiers d'une archive d'une carte pour évaluer sa validité et afficher le contenu
- MapArchiveStore
- Répertoire contenant 2 sous-répertoires archives et current
- MapMetadata
- construit les MD synthétiques d'une carte à partir des MD ISO dans le 7z
- My7zArchive
- étend la classe SevenZipArchive par l'ajout de 2 méthodes simplifiant l'extraction temporaire d'un fichier.
- Portfolio
- Portefeuille des cartes exposées sur ShomGt issu des fichiers .md.json
Constants
- FORCE_VALIDATION = false
- vrai ssi possibilité de forcer la validation d'une carte invalide
- USER_TABLE_SCHEMA = ['description' => "Ce dictionnaire définit le schéma d'une table SQL avec:\n" . " - le champ 'comment' précisant la table concernée,\n" . " - le champ obligatoire 'columns' définissant le dictionnaire des colonnes avec pour chaque entrée:\n" . " - la clé définissant le nom SQL de la colonne,\n" . " - le champ 'type' obligatoire définissant le type SQL de la colonne,\n" . " - le champ 'keyOrNull' définissant si la colonne est ou non une clé et si elle peut ou non être nulle\n" . " - le champ 'comment' précisant un commentaire sur la colonne.\n" . " - pour les colonnes de type 'enum' correspondant à une énumération le champ 'enum'\n" . " définit les valeurs possibles dans un dictionnaire où chaque entrée a:\n" . " - pour clé la valeur de l'énumération et\n" . " - pour valeur une définition et/ou un commentaire sur cette valeur.", 'comment' => "table des utilisateurs", 'columns' => ['email' => ['type' => 'varchar(256)', 'keyOrNull' => 'primary key', 'comment' => "adresse email"], 'epasswd' => ['type' => 'longtext', 'comment' => "mot de passe encrypté, null à la créatin d'un compte temporaire non valide"], 'newepasswd' => ['type' => 'longtext', 'comment' => "nouveau mot de passe encrypté, utilisé en cas de chgt de mot de passe"], 'role' => ['type' => 'enum', 'enum' => ['normal' => "utilisateur normal ayant le droit de consulter les cartes, d'en ajouter et d'en supprimer", 'admin' => "administrateur ayant en plus de l'utilisateur normal des droits supplémentaires,\n" . "notamment le droit de changer le rôle des utilisateurs", 'restricted' => "utilisateur ayant le droit de consulter les cartes mais pas d'en ajouter, ni d'en supprimer", 'banned' => "utilisateur banni n'ayant aucun droit, et n'ayant pas le droit de réactiver son compte", 'suspended' => "utilisateur suspendu en l'absence de confirmation pendant un délai d'un an,\n" . "il n'a plus aucun droit jusqu'à ce qu'il réactive son compte.\n" . "Il peut réactiver son compte soit en cliquant sur le lien qui lui a été envoyé par mail,\n" . "soit en exécutant le processus de création de compte", 'closed' => "utilisateur ayant demandé à fermer son compte et pouvant le réactiver\n" . "en exécutant à nouveau le processus de création de compte", 'temp' => "utilisateur en cours de création dont la validité n'a pas été vérifiée,\n" . "et n'ayant aucun droit en attendant sa validation par mail", 'system' => "utilisateur utilisé en interne à ShomGT"], 'comment' => "rôle de l'utilisateur"], 'secret' => ['type' => 'varchar(256)', 'comment' => "secret envoyé par email et attendu en retour, null ssi le secret a été utilisé"], 'createdt' => ['type' => 'datetime', 'keyOrNull' => 'not null', 'comment' => "date et heure de création initiale du compte"], 'sent' => ['type' => 'datetime', 'comment' => "date et heure d'envoi du dernier mail de validation, null ssi le lien du mail a été activé"], 'valid' => ['type' => 'datetime', 'comment' => "date et heure de dernière validation, null ssi compte non validé"], 'extra' => ['type' => 'JSON', 'comment' => "données complémentaires stockées en JSON, notamment la liste des codes des zones dans le champ zones"], 'comment' => ['type' => 'longtext', 'comment' => "commentaire en texte libre"]]]
- Définition du schéma de la table user selon la structuration définie dans son champ description.
- ZONES_ZEE = [ //'FR'=> "France entière", 'FX-MMN' => "Métropole - Zone Manche et Mer du Nord", 'FX-Atl' => "Métropole - Zone Maritime Atlantique", 'FX-Med' => "Métropole - Zone Méditerranée", 'GP' => "Guadeloupe", 'MQ' => "Martinique", 'GF' => "Guyane", 'BL' => "Saint-Barthelémy", 'MF' => "Saint-Martin", 'PM' => "Saint-Pierre-et-Miquelon", 'RE' => "La Réunion", 'YT' => "Mayotte", 'TF' => "TAAF", 'CP' => "Clipperton", 'PF' => "Polynésie Française", 'WF' => "Wallis-et-Futuna", 'NC' => "Nouvelle-Calédonie", ]
- Liste des zones de la ZEE sous la forme [{nom} => {label}].
Functions
- durationInHours() : int
- prend en compte l'unité pour traduire la durée en heures
- queryForRecentAccess() : string
- retourne le texte de la requête SQL adhoc
- existingVersion() : string
- cmpVersion() : int
- cloneDir() : string|null
- fonction récursive de clonage.
- directoryEntries() : array<int, string>
- YamlDump() : string
- supprime les - suivis d'un retour à la ligne dans Yaml::dump()
- callingThisFile() : null|"web"|"cli"
- Permet de distinguer si un script est inclus dans un autre ou est directement appelé en mode CLI ou Web retourne null si ce script n'a pas été directement appelé, cad qu'il est inclus dans un autre, 'web' s'il est appelé en mode web, 'cli' s'il est appelé en mode CLI Doit être appelé avec en paramètre la constante __FILE__
- dumpString() : void
- rmdirRecursive() : void
- supprime un répertoire récursivement
- entryInArchive() : bool
- notFound() : void
- latLngBounds() : TLPos
- transforme un GBox en une structure latLngBounds@Leaflet
- createUserTable() : void
- création de la table des utilisateurs
- userRole() : string|null
- renvoit le role de l'utilisateur $user
- migrationAddExtraToUserTable() : void
- Fonction de migration d'ajout d'un champ extra dans la table user s'il n'existe pas
- badEmail() : string|null
- validation de l'email, renvoit null si valid, sinon l'erreur
- badPasswd() : string|null
- validation du mot de passe, renvoit null si ok, sinon l'erreur
- sendMail() : void
- Envoie un email avec le lien contenant le secret
Constants
FORCE_VALIDATION
vrai ssi possibilité de forcer la validation d'une carte invalide
public
mixed
FORCE_VALIDATION
= false
USER_TABLE_SCHEMA
Définition du schéma de la table user selon la structuration définie dans son champ description.
public
array{description: string, comment: string, columns: array}
USER_TABLE_SCHEMA
= ['description' => "Ce dictionnaire définit le schéma d'une table SQL avec:\n" . " - le champ 'comment' précisant la table concernée,\n" . " - le champ obligatoire 'columns' définissant le dictionnaire des colonnes avec pour chaque entrée:\n" . " - la clé définissant le nom SQL de la colonne,\n" . " - le champ 'type' obligatoire définissant le type SQL de la colonne,\n" . " - le champ 'keyOrNull' définissant si la colonne est ou non une clé et si elle peut ou non être nulle\n" . " - le champ 'comment' précisant un commentaire sur la colonne.\n" . " - pour les colonnes de type 'enum' correspondant à une énumération le champ 'enum'\n" . " définit les valeurs possibles dans un dictionnaire où chaque entrée a:\n" . " - pour clé la valeur de l'énumération et\n" . " - pour valeur une définition et/ou un commentaire sur cette valeur.", 'comment' => "table des utilisateurs", 'columns' => ['email' => ['type' => 'varchar(256)', 'keyOrNull' => 'primary key', 'comment' => "adresse email"], 'epasswd' => ['type' => 'longtext', 'comment' => "mot de passe encrypté, null à la créatin d'un compte temporaire non valide"], 'newepasswd' => ['type' => 'longtext', 'comment' => "nouveau mot de passe encrypté, utilisé en cas de chgt de mot de passe"], 'role' => ['type' => 'enum', 'enum' => ['normal' => "utilisateur normal ayant le droit de consulter les cartes, d'en ajouter et d'en supprimer", 'admin' => "administrateur ayant en plus de l'utilisateur normal des droits supplémentaires,\n" . "notamment le droit de changer le rôle des utilisateurs", 'restricted' => "utilisateur ayant le droit de consulter les cartes mais pas d'en ajouter, ni d'en supprimer", 'banned' => "utilisateur banni n'ayant aucun droit, et n'ayant pas le droit de réactiver son compte", 'suspended' => "utilisateur suspendu en l'absence de confirmation pendant un délai d'un an,\n" . "il n'a plus aucun droit jusqu'à ce qu'il réactive son compte.\n" . "Il peut réactiver son compte soit en cliquant sur le lien qui lui a été envoyé par mail,\n" . "soit en exécutant le processus de création de compte", 'closed' => "utilisateur ayant demandé à fermer son compte et pouvant le réactiver\n" . "en exécutant à nouveau le processus de création de compte", 'temp' => "utilisateur en cours de création dont la validité n'a pas été vérifiée,\n" . "et n'ayant aucun droit en attendant sa validation par mail", 'system' => "utilisateur utilisé en interne à ShomGT"], 'comment' => "rôle de l'utilisateur"], 'secret' => ['type' => 'varchar(256)', 'comment' => "secret envoyé par email et attendu en retour, null ssi le secret a été utilisé"], 'createdt' => ['type' => 'datetime', 'keyOrNull' => 'not null', 'comment' => "date et heure de création initiale du compte"], 'sent' => ['type' => 'datetime', 'comment' => "date et heure d'envoi du dernier mail de validation, null ssi le lien du mail a été activé"], 'valid' => ['type' => 'datetime', 'comment' => "date et heure de dernière validation, null ssi compte non validé"], 'extra' => ['type' => 'JSON', 'comment' => "données complémentaires stockées en JSON, notamment la liste des codes des zones dans le champ zones"], 'comment' => ['type' => 'longtext', 'comment' => "commentaire en texte libre"]]]
USER_TABLE_SCHEMA
ZONES_ZEE
Liste des zones de la ZEE sous la forme [{nom} => {label}].
public
array<string, string>
ZONES_ZEE
= [
//'FR'=> "France entière",
'FX-MMN' => "Métropole - Zone Manche et Mer du Nord",
'FX-Atl' => "Métropole - Zone Maritime Atlantique",
'FX-Med' => "Métropole - Zone Méditerranée",
'GP' => "Guadeloupe",
'MQ' => "Martinique",
'GF' => "Guyane",
'BL' => "Saint-Barthelémy",
'MF' => "Saint-Martin",
'PM' => "Saint-Pierre-et-Miquelon",
'RE' => "La Réunion",
'YT' => "Mayotte",
'TF' => "TAAF",
'CP' => "Clipperton",
'PF' => "Polynésie Française",
'WF' => "Wallis-et-Futuna",
'NC' => "Nouvelle-Calédonie",
]
Pour la définition de la zone d'intérêt, la valeur 'FR' est inutile car elle correspond à quasiment toutes les cartes.
Functions
durationInHours()
prend en compte l'unité pour traduire la durée en heures
durationInHours(string $duration) : int
Parameters
- $duration : string
Return values
intqueryForRecentAccess()
retourne le texte de la requête SQL adhoc
queryForRecentAccess(string $access, int $durationInHours[, string|null $param = null ]) : string
Parameters
- $access : string
- $durationInHours : int
- $param : string|null = null
Return values
stringexistingVersion()
existingVersion(string $PF_PATH, string $mapNum) : string
Parameters
- $PF_PATH : string
- $mapNum : string
Return values
stringcmpVersion()
cmpVersion(string $v1, string $v2) : int
Parameters
- $v1 : string
- $v2 : string
Return values
intcloneDir()
fonction récursive de clonage.
cloneDir(string $src, string $dest[, string $tab = '' ]) : string|null
Parameters
- $src : string
- $dest : string
- $tab : string = ''
Return values
string|nulldirectoryEntries()
directoryEntries(string $path) : array<int, string>
Parameters
- $path : string
Return values
array<int, string>YamlDump()
supprime les - suivis d'un retour à la ligne dans Yaml::dump()
YamlDump(mixed $data[, int $level = 3 ][, int $indentation = 2 ][, int $options = 0 ]) : string
Parameters
- $data : mixed
- $level : int = 3
- $indentation : int = 2
- $options : int = 0
Return values
stringcallingThisFile()
Permet de distinguer si un script est inclus dans un autre ou est directement appelé en mode CLI ou Web retourne null si ce script n'a pas été directement appelé, cad qu'il est inclus dans un autre, 'web' s'il est appelé en mode web, 'cli' s'il est appelé en mode CLI Doit être appelé avec en paramètre la constante __FILE__
callingThisFile(string $file) : null|"web"|"cli"
Parameters
- $file : string
Return values
null|"web"|"cli"dumpString()
dumpString(string $s) : void
Parameters
- $s : string
rmdirRecursive()
supprime un répertoire récursivement
rmdirRecursive(string $path) : void
Parameters
- $path : string
entryInArchive()
entryInArchive(string $fileName, My7zArchive $archive) : bool
Parameters
- $fileName : string
- $archive : My7zArchive
Return values
boolnotFound()
notFound(string $fileName) : void
Parameters
- $fileName : string
latLngBounds()
transforme un GBox en une structure latLngBounds@Leaflet
latLngBounds(GBox $gbox) : TLPos
Parameters
- $gbox : GBox
Return values
TLPoscreateUserTable()
création de la table des utilisateurs
createUserTable() : void
userRole()
renvoit le role de l'utilisateur $user
userRole(string|null $user) : string|null
Parameters
- $user : string|null
Return values
string|nullmigrationAddExtraToUserTable()
Fonction de migration d'ajout d'un champ extra dans la table user s'il n'existe pas
migrationAddExtraToUserTable() : void
badEmail()
validation de l'email, renvoit null si valid, sinon l'erreur
badEmail(string $email) : string|null
Parameters
- $email : string
Return values
string|nullbadPasswd()
validation du mot de passe, renvoit null si ok, sinon l'erreur
badPasswd(string $passwd, string $passwd2) : string|null
Parameters
- $passwd : string
- $passwd2 : string
Return values
string|nullsendMail()
Envoie un email avec le lien contenant le secret
sendMail(string $action, string $email, int $secret[, string|null $passwd = null ]) : void
Parameters
- $action : string
- $email : string
- $secret : int
- $passwd : string|null = null