Forum pragmaMx France 10 Février 2012 à 03:39:22 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
 
Accueil Aide Rechercher
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: [Tuto] Image du header qui change en fonction du module  (Lu 11418 fois)
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« le: 07 Août 2007 à 09:50:59 »

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
Code:
<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:
Code:
<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
Code:
defined('mxMainFileLoaded') or die('access denied');
Ajouter
Code:
/**
 * Inclure Themesettings
 */
include(MX_THEME_DIR . '/themesettings.php');

Désactivez ensuite le cache du theme:
Code:
define('MX_THEME_CACHABLE', true);
devient
Code:
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.
Code:
$part[] = array("{PHOTOS}", photos($GLOBALS['im'], $GLOBALS['imcontent']));
Donc:
Code:
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:
Code:
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
Code:
/**
/**
 * 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:
Code:
<?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é  Clin d'oeil
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:
Code:
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   bien joué
« Dernière édition: 07 Août 2007 à 10:03:27 par Diabolo » Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #1 le: 20 Mai 2009 à 16:41:32 »

Nickel Diabolo, marche impec. C'est possible de mettre une bannière en .swf parmis les autres bannières ?

J'ai essayé mais il ne prend pas le flash. En faite, je souhaiterais mettre juste une en flash pour la page d'accueil, les autres sont en jpg.

Merci. @+
Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #2 le: 20 Mai 2009 à 20:51:21 »

Slt,

En fait pour le flash tu peux pas l'afficher avec cette balise img qui fait un lien vers l'image choisi
Code:
<img src="images/{PHOTOS}"

il te faudrait la balise object
http://xhtml.le-developpeur-web.com/object-xhtml.php


Essaye voir:
Sur ton header dans theme.html Essaye de mettre juste {PHOTOS} sans balise
les balises pouvant être indiquées dans le php par ex:
Code:
$im['Default'] = '<img src="images/defaultphoto.jpg".....width="491" alt="" height="66" border="0"....suite du code..................... />';

ainsi je pense que tu peux mettre la balise object

Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
Skud29
Membre Héroïque Mx
*****
Hors ligne Hors ligne

Messages: 732



« Répondre #3 le: 20 Mai 2009 à 22:17:56 »

Parfait, merci Diabolo, ça marche du feu de dieu  bien joué
Journalisée

..:: TemplatesMx (Portages et créations) ::.. www.templatesmx.niloo.fr
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #4 le: 20 Mai 2009 à 22:52:22 »

Bravo  bien joué

Je vois que tu commence à maitriser le cms, bravo  Clin d'oeil

Sinon je vois sur ton site que tu utilises une colonne droite relativement large

Il serait judicieux d'utiliser cette largeur pour afficher deux blocs l'un à coté de l'autre (ex: connexion | staff)

tu gagnerais de la place dans ta colonne et suppression d'espace vide

Voila comment crée un bloc contenant X blocs
http://www.pragmamx.fr/Forum-topic-171.html

Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
geori
Beta-Testeur
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 389



« Répondre #5 le: 27 Mai 2009 à 07:32:04 »

Bonjour Diabolo,

est ce que ce tuto reste valable pour d'autres thèmes vu que la version pmx à changé?

Merci

Journalisée
Diabolo
Administrateur
Ultra membre Mx
******
Hors ligne Hors ligne

Messages: 5480



« Répondre #6 le: 27 Mai 2009 à 09:15:25 »

Oui avec quelques remarques:

Concernant l'ajout de ce code
Code:
/**
 * Inclure Themesettings
 */
include(MX_THEME_DIR . '/themesettings.php');

Désormais le fichier de configuration des thèmes s'appelle plutot setting.php dans le thème , cf mx-default et concernant le code ci-dessu je pense qu'il est inutile de le rajouter du fait qu'il est déjà inclu dans theme.php
Code:
include(_THISTHEME_ . '/settings.php');

A vérifier...Le reste sans changement


Journalisée

..:: Veuillez consulter les règles du forum ::..- Avez-vous consulté notre documentation avant de poser votre question ?-Pas de support en MP ou par courriel, le forum est là pour ça !Nouvelle question=Nouveau Sujet
geori
Beta-Testeur
Membre Senior Mx
****
Hors ligne Hors ligne

Messages: 389



« Répondre #7 le: 27 Mai 2009 à 11:07:14 »

merci, évidement dans mon thème c'est plus compliqué que ça n'y parait car je ne parviens pas à retrouver le fil du tuto  fou
Journalisée
lecoqvolant
Membre Junior Mx
**
Hors ligne Hors ligne

Messages: 32



« Répondre #8 le: 12 Juin 2010 à 11:49:59 »

salut,

est il possible de le faire que pour un article et non pour un module ???
Journalisée
Pages: [1]   Haut de page
Imprimer
Forum pragmaMx France  |  Thèmes  |  Thèmes & Design (Modérateurs: Diabolo, kroms, phi56360)  |  Fil de discussion: [Tuto] Image du header qui change en fonction du module
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines

Plus