Accueil du site > Wiki > osCSS 2.xxx > Developpeurs > Fonctionnement general > suclass entre template et core, methode fix_file

suclass entre template et core, methode fix_file

jeudi 15 juillet 2010, par oscim

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

static public function fix_file($path, $lg=false, $core=NULL){
        ...
}

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

// Appel d'origine
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