Fork me on GitHub

Rapport de message :*
 

Re: CBB 3.0.8 : surcharge image ? + pas de select sur le pseudo.

Titre du sujet : Re: CBB 3.0.8 : surcharge image ? + pas de select sur le pseudo.
par blueteen sur 21/02/2008 17:37:23

Salut,
Sur une version 3.07 de CBB (donc sans doute la même chose pour une 3.08), voici ce que j'ai fait pour gérer plusieurs feuilles de style et images selon le thème.
En effet, sur un site, j'utilise 2 thèmes radicalement différents dans les teintes (un bleu et un orange justement).
2 fichiers à modifier :
/newbb/header.php pour les feuilles de style
/newbb/includes/vars.php pour les images

Dans header.php, on a un code de ce genre, qui charge des feuilles de style et du javascript.
$newbb_module_header .= '
    <link rel="stylesheet" type="text/css" href="templates/newbb.css" />
    <script type="text/javascript">var toggle_cookie="'
.$forumCookie['prefix'].'G'.'";</script>
    <script src="include/js/newbb_toggle.js" type="text/javascript"></script>
    '
;
if(
$menumode==2){
    
$newbb_module_header .= '
    <link rel="stylesheet" type="text/css" href="templates/newbb_menu_hover.css" />
    <style type="text/css">body {behavior:url("include/newbb.htc");}</style>
    '
;
}
if(
$menumode==1){
    
$newbb_module_header .= '
    <link rel="stylesheet" type="text/css" href="templates/newbb_menu_click.css" />
    <script src="include/js/newbb_menu_click.js" type="text/javascript"></script>
    '
;
}


J'ai remplacé ce code par ça
if ($xoopsConfig['theme_set'] == "orange")
{
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="'.XOOPS_URL.'/themes/orange/modules/newbb/newbb.css" />
    <script type="text/javascript">var toggle_cookie="'
.$forumCookie['prefix'].'G'.'";</script>
    <script src="include/js/newbb_toggle.js" type="text/javascript"></script>
    '
;
if(
$menumode==2){
    
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="'.XOOPS_URL.'/themes/orange/modules/newbb/newbb_menu_hover.css" /><style type="text/css">body {behavior:url("include/newbb.htc");}</style>';
}
if(
$menumode==1){
    
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="'.XOOPS_URL.'/themes/orange/modules/newbb/newbb_menu_click.css" />
    <script src="include/js/newbb_menu_click.js" type="text/javascript"></script>'
;
}
}
else
{
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="templates/newbb.css" />
    <script type="text/javascript">var toggle_cookie="'
.$forumCookie['prefix'].'G'.'";</script>
    <script src="include/js/newbb_toggle.js" type="text/javascript"></script>
    '
;
if(
$menumode==2){
    
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="templates/newbb_menu_hover.css" /><style type="text/css">body {behavior:url("include/newbb.htc");}</style>';
}
if(
$menumode==1){
    
$newbb_module_header .= '<link rel="stylesheet" type="text/css" href="templates/newbb_menu_click.css" />
    <script src="include/js/newbb_menu_click.js" type="text/javascript"></script>'
;
}
}


Comme tu le vois, si le thème chargé se nomme 'orange', alors je charge les feuilles de style qui se trouvent dans mon dossier (comme une surcharge en fait
/themes/orange/modules/newbb/


Viens la seconde partie de la modification, pour prendre en compte un jeu d'images différent selon le thème.
Cette fois, ça se passe dans le fichier /include/vars.php
Vers la ligne 77, on trouve :
$forumUrl['images_set']= $forumUrl['images_root']."/imagesets/".$setdir;


Je la remplace simplement par :
$forumUrl['images_set']= XOOPS_URL."/themes/".$xoopsConfig['theme_set']."/modules/".$xoopsModule->dirname()."/images/imagesets";


De cette façon, si le dossier :
/themes/orange/modules/newbb/images/imagesets/french/ existe, alors ce dossier est utilisé. (sinon il utilise le contenu du dossier /themes/orange/modules/newbb/images/imagesets/english/

Donc, ATTENTION, avec cette modification là, tu dois impérativement mettre un jeu d'images dans TOUS tes dossiers de thèmes utilisés.
Car dans tous les cas, cette variable : $forumUrl['images_set'] pointe vers des données se trouvant dans le dossier du thème en cours d'utilisation par le visiteur.

On n'utilise donc pas du tout les images qui se trouvent dans le dossier newbb.

On aurait pu ajouter quelques tests, pour que dans le cas où notre thème ne contiennent pas les données nécessaires, CBB utilise tout de même les images fournies par défaut avec le module.
Mais comme c'était un petit hack vite fait et jamais publié, je fais gaffe, et je sais que je dois avoir les dossiers et fichiers images nécessaires dans chaque dossier de thèmes utilisés.

Je te laisse tester (garde bien une copie des fichiers d'origine).
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

21 Personne(s) en ligne (13 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 21 | Plus ...