3. RICERCAR : de l’Internet à un intranet
4.5 R éalisation du modèle présenté
4.5.3 Le modèle
4.5.3.2 Enrichissement des classes
L’étape qui suit consiste simplement à spécifier plus finement les propriétés des différents éléments, à partir du modèle déjà décrit. Une série de nouveaux
attributs25ainsi que des classes supplémentaires sont définis, dont la combinaison va permettre d’offrir une meilleure ergonomie à l’utilisateur final ainsi qu’une simplification dans la conception des documents publiés :
La classe Serveurs permet de répertorier l’ensemble des informations nécessaires pour référencer un nouveau serveur sur l’intranet.
Serveurs est implémenté par les tables RICERCAR et ALTERNATE.
Attributs Type Description Contrai
nte/ Défaut
srank I
(Integer) Identifie de façon unique le serveur.Automatiquement préfixé à l’identifiant des objets crées par les utilisateurs (ce qui permet de garantir l’unicité des identifiants sur l’ensemble de l’intranet).
server A50 (chaîne de 50 caractères)
le nom logique du serveur.
s_alt Servers serveur de substitution non utilisé
fqdn A255 le nom DNS du serveur.
ip A32 L’adresse IP du serveur
root A255 Le chemin physique correspondant à la racine du serveur.
db_unc A50 Le chemin complet vers la base de données du serveur
db_name A50 Le nom de la base de données du serveur.
db_file A50 Le nom (éventuel) du fichier de la base de données du serveur.
log_date DT
(DaTe)
Date à laquelle les log du serveur ont été centralisées.
adm Users L'administrateur du serveur
25
Nous avons choisi de nommer les attributs en anglais pour des raison pratiques (de traduction en vue de publications internationales) mais aussi pour rester homogène avec les nommages HTTP et HTML habituel s.
La classe Documents est ainsi enrichie de différents attributs qui décrivent, par des textes brefs, les objets référencés. Une série d’indicateurs booléens et différentes dates (création, modification, etc.) fournissent de plus les éléments nécessaires pour que la modification des méthodes goto permettent de générer des Documents plus sophistiqués :
Attributs Type Description Contrainte/Défaut
key A50 Identifiant global de l’objet. Unique, sauf si
(eq (send (send self 'isa) 'type) ‘SYSTEM)26
active BL
(BooLéen) Indique si le documentcorrespondant est disponible ou pas (permet d’invalider provisoirement l’accès).
Vrai
new BL Indique que le document
mérite d’être signalé dans les nouveautés du serveur
Faux
modif BL Indique que chaque modification du document mérite d’être signalée
Faux
(n’a de sens que si (send self 'new).
Indexed BL Indique si le contenu du document correspondant doit être indexé.
(send (send self 'isa) 'indexed)
log BL Indique si chaque accès à
l'objet doit être enregistré dans les logs du serveur
Vrai
title A255 Titre du document (utilisé par la méthode ... comme ancre au lien correspondant au document).
Obligatoire.
descr A255 Description brève du contenu du document comment Avar (chaîne de caractères de longueur VARiable) commentaire supplémentaire pour décrire le contenu du document.
cr_date DT date de création de l’objet (Now)
26
Attributs Type Description Contrainte/Défaut
modif_date DT date de la dernière modification
index_date DT date d’indexation (éventuelle).
n’a de sens que si
(send self 'indexed)
reset_date DT date de remise à zéro du compteur d’accès affichable du document
icon Icons Identifiant de l’icône associée au document.
(send ( send self 'isa) 'icon)
dual_key Documents Identifiant (éventuel) d’un
document dual associé au document. Il référence notamment une traduction.
count_total I Nombre d'accès total au document à la date ct_date
Ne peut être remis à zéro
ct_date DT Date à laquelle count_total a été calculé
version I Numéro de version du document.
Exploité pour gérer les accès à des versions successives d’un même document
Utilisé en affichage uniquement.
content HTML code HTML du document. Stocké directement dans le champ de l’objet.
N’a de sens que si
(eq(send (send self 'isa) 'type)
‘VIRTUAL)
url A255 chemin relatif pour accéder au code HTML du corps du document
Si(eq (send (send self 'isa) 'type) ‘WWW)alors self.urlest une URL, sinon c’est le chemin relatif d’un fichier
aut Users Le propriétaire de l'objet
Documents, ainsi que ses différentes sous-classes, sont implémentées par les
il a par ailleurs semblé intéressant de subdiviser un menu en rubriques (columns en anglais), ce qui est rendu possible par la création de la classe Rubriques qui regroupe un ensemble ordonné de Documents. Elle est ensuite agrégée dans
Menus :
Attributs Type Description
ctitle A255 Titre de la rubrique
ccomment Avar Texte de commentaire descriptif
rank I Ordre de la rubrique dans son Menus La classe Rubriques est alors implémentée par la table Cols ;
à partir de la classe Images, un ensemble de sous-classes permettent de réifier les différents éléments graphiques globaux aux différents serveurs, les rendant ainsi accessibles par l’ensemble des Documents.
Elles représentent les icônes ou puces associées aux Documents, les différents fonds de page, les lignes de séparation stylisées et les flèches utilisées pour indiquer les retours au sommaire, précédent, suivant, etc.
Attributs Type Description
img A50 Identifiant de l'image
url A255 URL (ou chemin relatif) de l'image
alt Avar Texte ALTernatif décrivant l’image
tsize I Taille de l’image en octets (fournie par l’OS via CF)
tdate DT Date de création de l’image (fournie par l’OS via CF)
Ces différentes images sont créées et chargées dans le cache du serveur lors de l’exécution de la première requête d’utilisateur, et sont ensuite directement accessibles dans l’ensemble des méta-scripts.
Les classes Icons, Bkg, Lines, Arrows et Images sont implémentées par la table
ICONS ;
il s’avère enfin nécessaire de représenter plusieurs types de Documents qui justifient la création de nouvelles sous-classes de Documents (décrites en § 4.5.3.5, p.127 ) : Sty_Post, Sty_Pages-en, Sty_Img, Sty_www, etc.