Accueil | Astronomie | Galeries de photos | Temps libre | OCMS | Java | Privé

Pseudonyme

Mot de passe

Mémoriser mot de passe


Manuel utilisateur OCMS v3.0

Manuel utilisateur

Cette page est en construction...

Table des matières

Un peu de théorie

OCMS est un système de gestion de sites web très flexible. Pour cela, il utilise des mécanismes de modèles de pages et de composant qui ne sont pas forcement évidents au premiers abord. Avant de se lancer dans la construction d'un site web avec OCMS, il est important de bien comprendre les différentes entités du système ainsi que son fonctionnement.

Entités de OCMS

Il existe 4 entités dans OCMS:

  1. Les utilisateurs
  2. Les pages
  3. Les zones
  4. Les éléments de constructions

Les éléments de constructions (building blocks in english) comprennent les composants, les modèles de pages, les modèles de composants, les images et les fichiers.

Utilisateurs

OCMS a un système d'autentification intégré. Chaque utilisateur a un login, un mot de passe et un niveau de sécurité allant de 0 à 10. Chaque page a également un niveau de sécurité. Un utilisateur ne pourra voir que les pages qui ont un niveau de sécurité inférieur ou égal au sien.

Les utilisateurs ayant un niveau de sécurité égal à 10 sont appelés administrateurs et ont accès à la console d'administration de OCMS.

Les utilisateurs sont stockés dans la base de données (mot de passe crypté).

Pages

Les pages dans OCMS ont les propriétés suivantes:

  • Identifiant
    Numéro unique identifiant la page (attribué automatiquement)
  • Titre
    Le titre de la page (qui peut être affiché ou non suivant le modèle de page)
  • Description
    Description du contenu de la page (facultatif)
  • Niveau de sécutité
    Niveau de sécurité minimum que doit avoir un utilisateur pour voir la page. Si le niveau de l'utilisateur n'est pas suffisant, une page de login est affichée.
  • Modèle de page
    Modèle qui sera chargé d'afficher le contenu de la page (voir Modèles de pages)
  • Page parent
    Page parent dans la hierarchie du site (voir Hierarchie des pages)

En plus de ces propriétés, une page possède une collection de 0 à n composants.

Les pages sont stockées dans la base de donneés.

Zones

Une page est découpée en zones définies par le dévelopeur. Elles ont les propriétés suivantes:

  • Nom
    Nom de la zone
  • Description
    Description de la zone (facultatif)

Une zone est utilisée pour afficher les composants qui lui sont liés (voir Modèles de pages).

Exemples de zones:

Les zones sont stockées dans la base de données.

Composants

Les composants sont des "bouts de page" qui constituent le contenu des pages. Ils ont les propriétés suivantes:

  • Titre
    Titre du composant (qui peut être affiché ou non suivant le modèle de comosant)
  • Contenu
    Contenu du composant pouvant être du HTML, du PHP ou les deux
  • Modèle de composant
    Modèle qui sera chargé d'afficher le composant
  • Zone
    Zone dans laquelle le composant doit être affiché (voir Zones)

Un composant peut être intégré dans une ou plusieures pages en même temps.

Les composants sont stockés dans la base de données.

Modèles

OCMS utilise un mécanisme de modèles (templates in english) pour les pages et pour les composants. Cela permet de séparer l'aspect graphique du contenu (on peut changer le look and feel sans toucher au contenu) et cela permet également de conserver une certaine homogénité entre toutes les pages du site.

Modèles de pages

Un modèle de page est une page écrite en PHP qui permet d'afficher une page et ses composants en utilisant les fonctions de l'API OCMS.

Exemple de modèle de page simple

<html>

<head>
<title><?=$obj_page->title()?></title>
</head>

<body>

<?=$obj_page->components("Contenu")?>

</body>

</html>

L'exemple précédent affiche le titre de la page dans la barre de titre du navigateur et les tous les composants de la zone "Contenu" dans le corps de la page.

Les informations concernant des modèles de pages (titre, description, etc.) sont stockées dans la base de données, mais le code est lui enregistré dans un fichier (répertoire /_ocms/_templates/_pages/)

Modèles de composants

Un modèle de composant est un "bout de code PHP" qui permet d'afficher le contenu d'un composant en utilisant les fonctions de l'AIP OCMS.

Exemple de modèle de composant simple

<b><? $component->title(); ?></b><br>

<? $component->content(); ?>

L'exemple précédent affiche le titre du composant en gras, un retour à la ligne et le contenu du composant.

Les informations concernant des modèles de composant (titre, description, etc.) sont stockées dans la base de données, mais le code est lui enregistré dans un fichier (répertoire /_ocms/_templates/_components/)

Images

OCMS permet de stocker des images au format GIF, JPG et PNG. Quand une images est enregistrée dans OCMS, une imagette (thumbnail) de l'image est automatiquement crée. Des fonctions de l'API OCMS permettent d'afficher les images ou les imagettes dans les composants, les modèles de pages et les modèles de composants.

Les informations concernant les images (titre, description, etc.) sont stockées dans la base de données, mais l'image elle-même et sont imagette sont enregistrées dans le répertoire images/.

Fichiers

OCMS permet de stocker des fichiers de l'importe quel format. Des fonctions de l'API OCMS permettent des liens vers ces fichiers dans les composants, les modèles de pages et les modèles de composants.

Les informations concernant les fichiers (titre, description, etc.) sont stockées dans la base de données, mais le fichier lui-même est enregistrées dans le répertoire download/.

Dossiers

OCMS permet de créer une structure de dossiers (répertoires) dans lesquels on peut stocker les composants, les images, les fichiers, les modèles de composants et les modèles de pages. Ils n'ont aucun rapport avec la hierarchie du site, mais permettent seulement de retrouver les différents éléments plus facilement.

Il est possible de mettre tous les éléments de construction dans un seul et même répertoire. Cela fonctionnera parfaitement mais il deviendra très impossible de retrouver un élément précis d'une page.

La meilleure pratique est de suivre la hiérarchie du site. Pour chaque page, on créé un répertoire (ayant le même titre que la page) que l'on place en dessous du répertoire de la page parent. Cela permet de retrouver rapidement les éléments de construction d'ue page donnée.

Hiérarchie des pages

Nous avons vu que toutes les pages ont une page parent. Cela permet de créer une hierarchie des pages et donc de situer précisement une page dans l'architecture du site. Le fait de pouvoir localiser une page par rapport aux autres est indispensable pour pouvoir créer une navigation automatique.

Une page qui n'a pas de page parent est dite page racine et est de niveau 0. Une page enfant de la page racine est de niveau 1 et ainsi de suite.

Exemple de hierarchie de pages

Dans l'exemple précédent, la page "Page d'accueil" est la page racine. Les pages "Astronomie", "Galeries de photos" et "OCMS" sont de niveau 1. Les autres sont de niveau 3.

Il n'y a pas de limite dans la profondeur de la hiérarchie. Mais a partir du niveau 5, il devient difficile de créer une navigation automatique.

Si on ne souhaite pas utiliser une navigation automatique ou si on ne veut pas qu'une page apparaisse dans la nagivation automatique, il suffit de ne pas lui donner de page parent.

Construction des pages

Lorsqu'on accède a un site web crée avec OCMS, la page qui est appelés par défaut est index.php. Si aucun paramètre n'est passé dans l'URL, la page ayant l'identifiant 1 va être affichée. Par contre, si on passe le paramètre index.php?p_int_page_id=N, c'est la page ayant l'identifiant N qui sera affichée.

Une fois que la page à afficher a été identifiée, la construction de la page se passe comme suit:

  1. On charge les informations de la page depuis la base de données
  2. On fait un include du modèle de la page.
  3. Dans le modèle de la page, si on rencontre l'instruction <?= $obj_page->components("nom_de_la_zone") ?>, pour chaque composant de la page lié à la zone en question, on procède comme suit:
    1. On charge les informations du composant depuis la base de données
    2. On fait un include du modèle du composant

Avant de faire l'include du modèle de page, on vérifie que le niveau de sécurité de l'utilisateur soit plus grand ou égal au niveau de sécurité de la page. Si ce n'est pas le cas, on affiche une page de login.

Passons à la pratique

...

API OCMS

...

Objets

Classe Page

Cette classe représente une page du site web. Le constructeur new Page($i_int_page_id) créé une instance de la classe Page et si l'identifiant passé en paramètre est trouvé dans la base de données, les informtions de la page sont chargées dans l'objet.

Quand une page est appelée, une instance de la classe Page est automatiquement crée et stockée dans la variable $obj_page. Cette instance représente la page courante et est disponible dans tous les composants, les modèles de pages et les modèles de composants.

Les méthodes de la classe Page sont les suivantes:

  • ulr()
    Retourne l'url de la page
  • parameter($i_str_name)
    Retourne la valeur du paramètre HTTP (POST ou GET)
  • securityLevel()
    Retourne le niveau de sécurité de la page
  • id()
    Retourne l'identifiant de la page
  • title()
    Retourne le titre de la page
  • description()
    Retourne la description de la page
  • components($i_str_zone_name)
    Affiche tous les composants de la page liés à la zone en question
  • parentID()
    Retourne l'identifiant de la page parent
  • level()
    Retourne le niveau de la page (profondeur dans la hiérarchie)
  • parent()
    Retourne la page parent (objet Page)
  • children()
    Retourne un tableau contenant toutes les pages enfant (objets Page)

Classe Component

Cette classe représente un composant. Il n'est pas possible d'instancier un objet de la class Component.

Quand un composant est affiché, une instance de l'objet Component est automatiquement créé et stockée dans la variable $obj_component. Cette instance est n'est disponible que dans les modèles de composants.

Les méthodes de l'objet Component sont les suivantes:

  • title()
    Affiche le titre du composant
  • content()
    Affiche le contenu du composant

Classe User

Cette classe représente un utilisateur. Il n'est pas possible d'instancier un objet de la class User.

Quand une page est appelée, une instance de la classe User est automatiquement crée et stockée dans la variable de session $_SESSION["s_obj_user"]. Cette instance représente la l'utilisateur courant et est disponible dans tous les composants, les modèles de pages et les modèles de composants.

Les méthodes de la classe User sont les suivantes:

  • login()
    Retourne le login de l'utilisateur
  • securityLevel()
    Retourne le niveau de sécurité de l'utilisateur
  • language()
    Retourne la langue de l'utilisateur

Fonctions

Les fonctions suivantes sont disponibles dans tous les composants, modèles de pages et modèles de composants.

  • image($i_int_image_id)
    Retourne l'URL de l'image. Si l'image n'existe pas dans la base de données, l'URL d'une image transparente de 1x1 pixels est retournée.
  • thumbnail($i_int_image_id)
    Retourne l'URL du thumbnail de l'image. Si l'image n'existe pas dans la base de données, l'URL d'une image transparente de 1x1 pixels est retournée.
  • filename($i_int_file_id)
    Retourne l'URL du fichier. Si le fichier n'existe pas dans la base de données, on retourne #.
  • page($i_int_page_id)
    Retourne l'URL de la page. Si la page n'existe pas dans la base de données, on retourne #.
Powered by OCMS