Slt,
Une petite modif trsè facile à mettre en place de telle sorte que vous avez l'image de votre header qui change selon le module que vous visionnez sur votre site.
cf: theme mx-rainbow
Pour comprendre facilement comment faire j'ai choisi de faire la manip sur le theme mx-default.
C'est parti !!
- Ouvrez vote fichier
theme.html du theme mx-default
Voici la portion de code qui affiche le logo
<td width="75%" height="79" bgcolor="#FFFFFF"><div align="left"><img src="images/logo.png" width="491" alt="" height="66" border="0" usemap="#Map" /></div></td>
On va simplement remplacer logo.png par une variable de remplacement {PHOTOS} qui changera en fonction du module.
Ce qui donne:
<td width="75%" height="79" bgcolor="#FFFFFF"><div align="left"><img src="images/{PHOTOS}" width="491" alt="" height="66" border="0" usemap="#Map" /></div></td>
Voila c'est fini pour le fichier theme.html
-Ouvrez maintenant le fichier
function.php du theme mx-rainbow
Juste en dessous de
defined('mxMainFileLoaded') or die('access denied');
Ajouter
/**
* Inclure Themesettings
*/
include(MX_THEME_DIR . '/themesettings.php');
Désactivez ensuite le cache du theme:
define('MX_THEME_CACHABLE', true);
devient
define('MX_THEME_CACHABLE', false);
Et supprimez les fichiers générés par le cache (nomdevotretheme.php) dans le répertoire /themecache/ à la racine de votre site.
Dans la fonction : function theme_define_placeholders() on va rajouter un tableau pour les photos.
$part[] = array("{PHOTOS}", photos($GLOBALS['im'], $GLOBALS['imcontent']));
Donc:
function theme_define_placeholders()
{
$part[] = array("{VIEWBENCH}", mxViewBench());
$part[] = array("{FOOTMESSAGE}", footmsg(1, 0));
$part[] = array("{CURRENTPATH}", mx_theme_currentpath());
$part[] = array("{SEARCHFORM}", mx_theme_searchform());
$part[] = array("{LOGINFORM}", mx_theme_loginform());
$part[] = array("{SHOWDATE}", mx_show_date());
$part[] = array("{SHOWTIME}", mx_show_time());
$part[] = array("{SHOWTOTALUSER}", mx_total_user_online());
// Banner anzeigen
// $part[] = array("{BANNER1}", mx_themebanner(1) ); #HeaderBanner
// $part[] = array("{BANNER2}", mx_themebanner(2) ); #FooterBanner
// $part[] = array("{BANNER7}", mx_themebanner(7) ); # Skyscraper
// $part[] = array("{BANNER6}", mx_themebanner(6) ); # rechter Banner
// weitere Beispiele dazu
// $part[] = array("{VIEWMXCOPY}", mxViewCopyright());
// $part[] = array("{VIEW_DATE}", mxThemeShowDate());
return $part;
}
devient:
function theme_define_placeholders()
{
$part[] = array("{VIEWBENCH}", mxViewBench());
$part[] = array("{FOOTMESSAGE}", footmsg(1, 0));
$part[] = array("{CURRENTPATH}", mx_theme_currentpath());
$part[] = array("{SEARCHFORM}", mx_theme_searchform());
$part[] = array("{LOGINFORM}", mx_theme_loginform());
$part[] = array("{SHOWDATE}", mx_show_date());
$part[] = array("{SHOWTIME}", mx_show_time());
$part[] = array("{SHOWTOTALUSER}", mx_total_user_online());
// Banner anzeigen
// $part[] = array("{BANNER1}", mx_themebanner(1) ); #HeaderBanner
// $part[] = array("{BANNER2}", mx_themebanner(2) ); #FooterBanner
// $part[] = array("{BANNER7}", mx_themebanner(7) ); # Skyscraper
// $part[] = array("{BANNER6}", mx_themebanner(6) ); # rechter Banner
// weitere Beispiele dazu
// $part[] = array("{VIEWMXCOPY}", mxViewCopyright());
// $part[] = array("{VIEW_DATE}", mxThemeShowDate());
$part[] = array("{PHOTOS}", photos($GLOBALS['im'], $GLOBALS['imcontent']));
return $part;
}
Puis on rajoute une fonction pour les photos:
Ajoutez le code ci-dessous en fin de fichier après la dernière fonction de votre fichier, normalement après la dernière accolade de la fonction FormatStory
/**
/**
* Photos
*/
function photos ($im, $imcontent)
{
if (defined('MX_HOME_FILE')) {
return $im['Home'];
} else if (defined('MX_MODULE') && isset($im[MX_MODULE])) {
if (MX_MODULE == "Content") {
if (!empty($_GET['pid']) && isset ($imcontent[$_GET['pid']])) {
return $imcontent[$_GET['pid']];
} else {
return $im[MX_MODULE];
}
} else {
return $im[MX_MODULE];
}
} else {
return $im['Default'];
}
}
Voila c'est fini pour funtion.php
Créez maintenant un nouveau fichier avec votre éditeur et copiez le code (exemple) suivant:
<?php
/**
* pragmaMx Content Management System
* Copyright (c) 2007 pragmaMx Dev Team - http://pragmaMx.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
global $im;
// hier werden die Photos je Modul definiert
$im['Default'] = "defaultphoto.jpg";
$im['News'] = "logo2.png";
$im['Home'] = "logo.png";
$im['admin'] = "adminphoto.jpg";
$im['Submit_News'] = "logo2.png";
$im['Topics'] = "newsphoto.jpg";
$im['Stories_Archive'] = "newsphoto.jpg";
$im['Forum'] = "forumphoto.jpg";
$im['eBoard'] = "forumphoto.jpg";
$im['My_eGallery'] = "galleryphoto.jpg";
$im['Gallery'] = "galleryphoto.jpg";
$im['Downloads'] = "downloadphoto.jpg";
$im['Your_Account'] = "logo.png";
$im['User_Registration'] = "your_accountphoto.jpg";
$im['UserGuest'] = "your_accountphoto.jpg";
$im['Content'] = "logo2.png";
// hier werden die Photos je Contentseite definiert
$imcontent['1'] = "logo2.png";
?>
sauvegardez ce fichier en
themesettings.php que vous placez dans le répertoire de votre theme ( ou se trouve theme.html, function.php)
Voila maintenant à vous d'éditer ce fichier ci-dessus themesettings pour donner le bon nom de vos images que vous devrez placer dans le répertoire /images/ de votre thème.
Vous remarquerez dans le code que nous indiquons simplement le nom du module et l'image qui doit être affichée. pas compliqué

note: le nom des modules est le nom indiqué pour les modules dans le répertoires /modules/ de vote site.
Pour vos image choisissez les mêmes tailles que l'image de départ:
Pour notre exemple:
width="491" alt="" height="66"
Une fois votre theme terminé vous pouvez réactiver le cache du thème .
Voila faites des essais et vous comprendrez très facilement. Vous pouvez également changez autres choses (couleur de la police, slogan, etc...)en fonction du module utilisé, pour cela je vous invite à regarder le fonctionnement du thème mx-rainbow
