Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/sda/3/a/fredomkb/forum/include/common.php on line 59

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/3/a/fredomkb/forum/include/common.php:59) in /var/www/sda/3/a/fredomkb/forum/header.php on line 41

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/3/a/fredomkb/forum/include/common.php:59) in /var/www/sda/3/a/fredomkb/forum/header.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/3/a/fredomkb/forum/include/common.php:59) in /var/www/sda/3/a/fredomkb/forum/header.php on line 43

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/3/a/fredomkb/forum/include/common.php:59) in /var/www/sda/3/a/fredomkb/forum/header.php on line 44
Projets pour Spip et PunBb / Code pour avoir une banni�re al�atoire

MiniGriSpip

Petit site de test et de démonstration du squelette MiniGriSpip 1.6...
Accueil du site > Accueil forums > Squelette MiniGriSpip > Code pour avoir une banni�re al�atoire
Projets pour Spip et PunBb - Petit forum de discussion autour de quelques projets personnels pour SPIP et PunBb.
     

Annonce

Bonjour et bienvenue sur les forums techniques de MiniGriSpip :-)

Quelques liens : Et Mgs alors ? - Balise #TMP - MiniGriSpip 1.6 - Mise-à-jour Calendrier

IMPORTANT : La participation � ces forums est strictement r�serv�e aux membres inscrits, merci de votre compr�hension.

ATTENTION : L'inscription au forum est d�sormais ferm�e pour cause de spams en trop grande quantit�.

01/03/2011 - FredoMkb

  • Code pour avoir une banni�re al�atoire

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

#1 11-04-2008 23:11:09

gigi
Novice
Date d'inscription: 06-04-2008
Messages: 21

Code pour avoir une banni�re al�atoire

Bonsoir, je tente en vain de faire un code qui affiche al�atoirement une banni�re, avec une police  diff�rente � chaque affichage du site, mais la je suis dans une impasse...

Je m'explique, j'ai un fichier txt qui contient le nom d'image, une phrase, la police et la taille de celle ci.
Le code devrait lire ce fichier et l'utiliser pour g�n�rer l'affichage!

Quelqu'un aurait une piste?

Merci d'avance!

PS: je me rends bien compte que ce n'est pas un probl�me avec spip ou ce squelette, mais je tente en vain de trouver une r�ponse!

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

#2 12-04-2008 00:35:45

FredoMkb
Guide
Date d'inscription: 01-11-2006
Messages: 372
Site web

Re: Code pour avoir une banni�re al�atoire

Bonjour Gigi :-)

Question qui, en effet, sort un peu du cadre de Mgs, mais j'aurai peut-�tre un d�but de piste :

Au lieu d'utiliser un fichier de type texte, pourquoi ne pas utiliser les feuilles de style pour g�rer les diff�rents affichages ?

Je n'ai pas de disponibilit� suffisante pour d�velopper maintenant, mais si ton besoin n'est pas urgent, je pourrai consacrer un peu de temps pour t'expliquer cette technique plus amplement � partir de dimanche soir (pas avant, je suis trop pris d'ici l�).

�+ :-)


Fredo d;o)
"Un pas � la fois me suffit..." (Gandhi)

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

#3 12-04-2008 09:52:00

gigi
Novice
Date d'inscription: 06-04-2008
Messages: 21

Re: Code pour avoir une banni�re al�atoire

Bonjour Fredo,

Tous aide est bonne � prendre smile

Je patiente sans probl�me, mais je vais tous de m�me tenter de trouver par moi m�me!^^
Je n'ais pas encore les bons r�flex / habitudes donc je pensais qu'un fichier txt �tait plus "abordable pour moi big_smile mais je ne suis pas contre l'id�e du Css.

Merci

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 614

#4 14-04-2008 02:50:55

FredoMkb
Guide
Date d'inscription: 01-11-2006
Messages: 372
Site web

Re: Code pour avoir une banni�re al�atoire

Bonjour Gigi smile

Bon, comme promis (mieux vaut tard que jamais wink ), voici une petite explication d'une m�thode d'affichage al�atoire en utilisant principalement les feuilles de style.

Cette m�thode n'est pas la seule possible, d'autres sont envisageables et peut-�tre m�me plus efficaces, mais celle-ci a l'avantage d'�tre assez simple et souple d'utilisation.

Nous allons donc voir comment g�n�rer le bandeau du squelette Mgs (version 1.6) en changeant l'image de fond de mani�re al�atoire parmi 3 possibilit�s, puis comment afficher un texte descriptif suivant l'image de fond choisie.






Partons donc de trois images de fond pour le bandeau, que nous nommerons "mgs_ban_img_N.jpg" et que nous placerons dans le dossier "images" du dossier du squelette.
Le nom comprend les infos suivantes :

- "mgs" est le pr�fixe du squelette ;
- "ban" abreviation de "bandeau" ;
- "img" pour "image" (�a va sans dire wink ) ;
- "N" qui est le num�ro de chaque image (de 1 � 3 donc pour notre exemple).






Une fois les images en place dans le bon dossier, nous allons ajouter et modifier certains codes � quelques fichiers du squelette, � savoir :

- "mes_fonctions.php" ;
- "local_fr.php" ;
- "inc/inc-bandeau.html" ;
- "mgs_style.css".

Petit conseil, fait une sauvegarde de ces fichiers, avant toute modification, afin de conserver une version originale en cas de besoin.






Commen�ons donc par le fichier "mes_fonctions.php", dans lequel nous allons ajouter un bout de code Php qui sera ensuite utilis� comme filtre Spip et qui servira � retourner un nombre al�atoire suivant les valeurs fournies. Le filtre se nommera "mgs_rand" et son code Php est le suivant :

Code:

function mgs_rand($min, $max) {
/* Fonction pour retourner une valeur aleatoire */
    return mt_rand($min, $max);
}

�dite donc le fichier "mes_fonctions.php" et place ce code au d�but (juste apr�s la balise d'ouverture de Php "<?php"), enregistre les modifications de ce fichier.






Passons maintenant au fichier "local_fr.php", qui contient l'ensemble des textes affich�s par le squelette, et o� nous allons m�moriser les 3 diff�rents textes de description que nous souhaitons afficher suivant l'image choisie al�atoirement.

Apr�s la lettre "// B", entrons les lignes de code suivantes :

Code:

'mgs_ban_txt_1' => 'Bonjour Monde !',
'mgs_ban_txt_2' => 'Bienvenue !',
'mgs_ban_txt_3' => 'Bonne Visite !',

Nous avons donc un texte diff�rent pour chaque image (bon, c'est vrai, il sont un peu nazes mes textes  blink , mais ce ne sont que des exemples wink ), � toi de les personnaliser selon tes besoins.

Nous verrons plus loin, avec les feuilles de style, comment afficher ces textes suivant l'image choisie.






Voyons maintenant les modifications � apporter au fichier "inc/inc-bandeau.html", qui affiche le bandeau d'en-t�te du squelette.

Au d�part, dans le squelette original, la premi�re partie du code de ce fichier se pr�sente de la mani�re suivante :

Code:

<div id="mgs_bandeau">
    [<div id="mgs_logo_site">(#LOGO_SITE_SPIP|#URL_SITE_SPIP|image_reduire{96})</div>]
    <div id="mgs_nom_site">[<h1>(#NOM_SITE_SPIP)</h1>]</div>
    [<div id="mgs_desc_site">(#DESCRIPTIF_SITE_SPIP)</div>]
</div>

Nous allons modifier ce code pour avoir ceci :

Code:

<div id="mgs_bandeau" class="mgs_ban_img_[(#REM|sinon{1}|mgs_rand{3})]">
    [<div id="mgs_logo_site">(#LOGO_SITE_SPIP|#URL_SITE_SPIP|image_reduire{96})</div>]
    <div id="mgs_nom_site">[<h1>(#NOM_SITE_SPIP)</h1>]</div>
    <div id="mgs_desc_site" class="mgs_ban_txt_1"><:mgs_ban_txt_1:></div>
    <div id="mgs_desc_site" class="mgs_ban_txt_2"><:mgs_ban_txt_2:></div>
    <div id="mgs_desc_site" class="mgs_ban_txt_3"><:mgs_ban_txt_3:></div>
</div>

Petite explication :

Tout d'abord nous avons ajout� une "class" au bloc principal, lequel contient le nom du style que nous allons utiliser par g�rer les diff�rents affichages.

Le nom de ce style reprend les m�mes infos que les images, mais � la place du num�ro nous avons plac� un bout de code qui aura pour r�le de g�n�rer un nombre al�atoire entre 1 et 3.

Ce bout de code n'est autre chose que l'utilisation sous forme de filtre du code Php que nous avons ajout� au fichier "mes_fonctions.php".

Si la syntaxe de ce code te para�t bizarre, c'est que Spip n�cessite des donn�es pour leur appliquer un filtre, c'est pourquoi on a utilis� la technique du "#REM" et du filtre "sinon" (pour plus amples explications, voir par ici et par l�).

Nous avons aussi dans ce code trois blocs "div" tr�s semblables, mais dont la "class" diff�re et dont le contenu reprend les cl�s des valeurs ajout�es au fichier "local_fr.php", qui assureront l'affichage des diff�rents descriptifs selon l'image choisie al�atoirement.

Enfin, petit d�tail mais qui a son importance, il faut ajouter, tout au d�but de ce fichier, le code suivant :

Code:

#CACHE{0}

Ce code demande � Spip de calculer le contenu de ce fichier � chaque rechargement de la page, sans le mettre en cache, afin que le choix al�atoire soit visible.






Enfin, voyons comment r�gler l'affichage de tous ces codes avec les styles.

Apr�s avoir �dit� le fichier "mgs_style.css", cherchons le style nomm� "#mgs_bandeau", dans lequel nous allons effacer l'attribut "background-image".

Juste apr�s ce code, nous allons ajouter les styles suivants :

Code:

.mgs_ban_img_1 {
    background-image: url(images/mgs_ban_img_1.jpg);
}
.mgs_ban_img_2 {
    color: #ffffff;
    background-image: url(images/mgs_ban_img_2.jpg);
}
.mgs_ban_img_3 {
    color: #ffffff;
    font-size: 20px;
    background-image: url(images/mgs_ban_img_3.jpg);
}

Ces styles correspondent donc aux diff�rentes images que nous souhaitons afficher de mani�re al�atoire dans le bandeau. On peut affiner l'affichage d'autres �l�ments contenus dans ce bloc suivant l'image choisie, c'est le cas ici pour les images 2 et 3 o� le texte de description est quelque peu modifi�.

Jusqu'� l� tout va bien, il nous reste � g�rer l'affichage des textes suivant l'image choisie al�atoirement, car pour l'instant les 3 textes vont s'afficher simultan�ment.

Ajoutons donc, juste apr�s, les styles suivants :

Code:

.mgs_ban_img_1 div.mgs_ban_txt_2, .mgs_ban_img_1 div.mgs_ban_txt_3 {
    display: none;
}
.mgs_ban_img_2 div.mgs_ban_txt_1, .mgs_ban_img_2 div.mgs_ban_txt_3 {
    display: none;
}
.mgs_ban_img_3 div.mgs_ban_txt_1, .mgs_ban_img_3 div.mgs_ban_txt_2 {
    display: none;
}

Ces style n'ont qu'un simple et unique r�le, masquer les blocs "div" qui ne correspondent pas � l'image affich�e, donc, lorsque l'image choisie al�atoirement est la num�ro 1, il faut masquer les blocs 2 et 3, lorsque c'est la 2 qui est choisie, il faut masquer les blocs 1 et 3, et ainsi de suite...






Ne pas oublier d'enregistrer toutes les modifications de ces fichiers puis de vider le cache de Spip avant de recharger les pages du navigateur.

Et bien, nous arrivons � la fin (enfin wink ) de l'explication de cette m�thode, qu'on pourrait r�sumer de la mani�re suivante :

1. Num�ro al�atoire, g�n�r� par un filtre Spip, plac� sur le style d'un bloc Html ;
2. Styles d'apparence et d'affichage correspondants aux diff�rents num�ros al�atoires possibles.

C'est tout simple (fa�on de dire wink ), il faut seulement �tre un minimum m�thodique, surtout pour le nom des styles et des images, pour ne pas se perdre en route...

Pour voir le r�sultat de toute cette explication, j'ai mis en ligne un petit site Spip "bidon", juste pour que tu puisses tester le r�sultat obtenu par cet exemple (recharge plusieurs fois la page pour pouvoir appr�cier les changements de bandeau, qui peuvent parfois �tre les m�mes puisque un m�me num�ro al�atoire peut �tre tir� successivement), c'est par ici : BlogAs-Test

Bon, comme tu verras, je ne me suis pas trop cass� la t�te pour choisir les images et les textes  blink c'est juste � titre d'exemple pour illustrer la m�thode...

Voil�... si tu as des questions, n'h�sites pas... �+ smile


Fredo d;o)
"Un pas � la fois me suffit..." (Gandhi)

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

#5 14-04-2008 18:56:08

gigi
Novice
Date d'inscription: 06-04-2008
Messages: 21

Re: Code pour avoir une banni�re al�atoire

top

Rien � dire, je vais tester ca se soir!

PS: je tente de modifier "selon mes gouts" le squelette ou plustot l'affichage, je ne sais pas si je peux poster cela sur ton forum pour apporter ma petite contribution!?^^ Tous en gardant � l'esprit que la forme ne sera surement pas la bonne mais le r�sultat oui!^^
Comme je boss sur mon site en local tous les articles que je fais pour avoir un suivit ne sont pas visible...

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 537

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 614

#6 21-04-2008 14:15:01

FredoMkb
Guide
Date d'inscription: 01-11-2006
Messages: 372
Site web

Re: Code pour avoir une banni�re al�atoire

Gigi smile

Tout ce qui pourrait �ventuellement �tre utile pour d'autres utilisateurs du squelette, est bien-s�r le bienvenue dans ce forum.

Si c'est juste pour partager le r�sultat de ton d�veloppement, je te propose de publier un lien dans cette discussion...

Pour des explications sur la mani�re de faire tel ou tel chose, de r�soudre telle ou telle limitation ou pour partager des bouts de code, etc, il suffit d'ouvrir une discussion dans le pr�sent forum en essayant de mettre un titre suffisamment explicite...

Merci � toi smile

PS. D�sol� pour cette r�ponse un peu tardive suite � une absence de quelques jours...


Fredo d;o)
"Un pas � la fois me suffit..." (Gandhi)

Hors ligne

 

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 552

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/3/a/fredomkb/forum/include/parser.php on line 553

#7 21-04-2008 18:44:24

gigi
Novice
Date d'inscription: 06-04-2008
Messages: 21

Re: Code pour avoir une banni�re al�atoire

smile Je ne peux malheureusement pas encore partager mon r�sultat car je travaille en local...

Je ne sais pas si il y a des services gratuit d'h�bergement?!

Mais il est claire que pour contribuer, je suis pr�s � mettre en publication, faire des topic d'explication (� mon niveau biensur car je suis proche du z�ro pour le html, css, ...).

Hors ligne

 
  • Code pour avoir une banni�re al�atoire

Pied de page des forums

Propuls� par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Suivre la vie du site RSS 2.0 | SPIP | Mgs MGS |