L’osCSS 2 autorise tous les fichiers présents dans les éléments du thème public à surclasser les éléments d’origine du core.
Cette fonctionnalité permet d’adapter et ou modifier rapidement l’espace public sans toucher au fichier d’origine et de simplifier ainsi le suivi et la mise à jour du core.
![]()
Le constructeur principal de page du front "class page" contient donc une méthode chargée de déterminer quel fichier sera chargé.
Appel
...
}
Il s’agit d’une méthode static et supporte 3 arguments :
- $path : le chemin vers le fichier, chemin relatif vers l’un des fichiers du core
- $lg (par défaut false) : fonctionnement un peu spécifique pour les fichiers de langue, si true considéré un fichier de langue
- $core (par défaut Null) : force l’usage du fichier du core
Ex
include(DIR_WS_MODULES . 'template_pdf/' . $type );
// À remplacer par
$file=page::fix_file(DIR_WS_MODULES . 'template_pdf/' . $type);
include($file);
Particularité des fichiers de langue
La gestion des langues et l’usage des fichiers de langue en txt, sont sous forme de tableau php permettant aussi de surclasser les éléments de langue du core défini par les élément du template . Dans cette idée, l’ordre de chargement revêt une importance, compte tenu que dans un tableau php, si une valeur est déjà défini et qu’une nouvelle clef identique est défini , elle écrase la précédente.
Aussi c’est l’ordre des fichiers qui déterminera l’ordre des surclass.
D’autre part, les fichiers texte sont nombreux et modulaire. À cet fin, une gestion de cache est assurée afin de remplacer les fichiers texte par un seul fichier de cache de langue.
fichiers dans le répertoire du thème
Pour exploiter la gestion des surclass, il suffit de placer les fichiers de la même manière qu’il le sont dans le core
ex :
surclasser un module
original : /includes/modules/produt/desc_base.php surclass : template/montheme/includes/modules/produt/desc_base.php
Surclass et limite
La gestion de surclass est possible pour :
- tous les fichiers du répertoire module /modules
- tous les fichiers de langue, SAUF le fichier de langue principal qui est à la racine de languages/
- tous les fichier de content /content
- toutes les boxes /boxes
- tous les gabarits /gabarit
- tous les fichier de /js
- une partie des class /classes
La surclass n’est pas possible pour les éléments qui ne sont pas listé ci-dessus.
Cache
Le choix des fichiers, en fonctions des élément présents, est systématiquement mis en cache. Aussi si vous ajouter des fichiers, il est nécessaire de vider le cache, afin que ceux ci soient pris en charge