Sujet: Créer une DIV visible seulement en accueil (tuto)

Créer une DIV visible seulement en accueil (tuto)

New Posté le 1/2/2012 à 10:11 par Zoltatem

Je tien personnellement a remercier Algebre pour son soutien et d'avoir utilisé son temps a m'expliquer comment créer une DIV visible seulement en page d'accueil de pragmaMx.
J'ai beaucoup de respect pour des personnes comme Algebre, qui n'ont pas peur de partager.
Alors, je te dit: mille mercis !


Passons maintenant à l'étape suivante, créer une DIV.

L'avantage d'utiliser une DIV, c'est que nous pouvons lui ajouter ce que l'on veut dans son contenue.
Alors, dans ce tuto, je vais reprendre le code de Algerbe + nous allons ajouter une structure de 3 colonnes en HTML qui va contenir 2 blocs natifs de pragmaMx et une colonne libre pour son contenue.
Le tout sera visible seulement en page d'accueil.

Voici a quoi ressemble la structure 3 colonnes que nous allons incorporer a pragmaMx.
http://www.pragmamx.ca/telechargement/tutos/presentation_3colonnes/1.png

Vous pouvez télécharger l'archive 3 colonnes ici: Archive 3 colonnes HTML

L'archive contient la structure des 3 colonnes en HTML, J'ai ajouté des commentaires dans le fichier style/style.css, a vous de l'ouvrir et éditer les largeurs des 3 colonnes, couleur, etc... Tout est détaillé en CSS.
Pour notre exemple, j'ai ajouté 3 images dans l’entête des colonnes, car c'est plus simple à expliquer sur un forum si vous voulez seulement un arrière plant en code de couleur.

Passons maintenant à la création de notre fonction, car si l'on veut accueillir notre code HTML (3colonnes), nous devons créer des fonctions dans le fichier: theme.functions.php
Pour notre tutoriel, nous allons utiliser le thème par défaut : pmx-blank

Code de la fonction, a coller dans le fichier: theme.functions.php
Code:
$part[] = array("{NOFOOTERACCUEIL}", mx_nofooteraccueil());

Code:
function mx_nofooteraccueil (){ if (MX_MODULE == mxGetMainModuleName()){ $out ='<div id="structure"> Contenue des 3 colonnes </div>'; } else { $out =''; } return $out; }


Et notre variable en HTML (a coller dans le fichier theme.html)
Code:
<div> {NOFOOTERACCUEIL} </div>


Maintenant nous allons créer 2 fonctions pour 2 blocs, qui sera affiché dans dans nos 3 colonnes.
Je vais utiliser le bloc sondage et le bloc eBoard
Code:
$part[] = array("{BLOCKSONDAGE}", newsetsondage());

Code:
function newsetsondage(){ include(PMX_BLOCKS_DIR . '/block-Survey.php'); return $content; }



Code:
$part[] = array("{BLOCKEBOARD}", newseteBoard());


Code:
function newseteBoard(){ include(PMX_BLOCKS_DIR . '/block-mxBoard_Center_oldstyle.php'); return $content; }



Dans notre DIV visible seulement pour l'accueil la variable HTML n'est pas valide pour un fichier PHP: theme.functions.php
Alors nous allons convertir la variable HTML en PHP:
Code:
$ma_variable1 = newseteBoard();

Code:
$ma_variable2 = newsetsondage();


A placer dans votre première fonction:
Code:
function mx_nofooteraccueil (){ if (MX_MODULE == mxGetMainModuleName()){ $out ='<div id="structure"> Contenue des 3 colonnes </div>'; } else { $out =''; } return $out; }

Remplacer par:
Code:

function mx_nofooteraccueil (){
if (MX_MODULE == mxGetMainModuleName()){ $ma_variable1 = newseteBoard(); $ma_variable2 = newsetsondage();
$out ='<div id="structure">
Contenue des 3 colonnes
</div>';
}
else {
$out ='';
}
return $out;
}



Code a placer dans les 3 colonnes:
Code:
' . $ma_variable1 . '

Code:
' . $ma_variable2 . '


Bon!! J'ai un problème de code avec ce forum, il créer des espaces l'a ou il ne faut pas...
Je stop le tutoriel.
Voici l'archive du thème qui contient les modifications: pmx-blank_3colonnes


@++
[Edité le 1/2/2012 à 22:16 par Diabolo]
http://www.pragmamx.ca/logo-pragmamx.png
www.pragmamx.ca
Zoltatem
Zoltatem
Modérateur
JuniorMx
 
Messages 148
Inscrit(e) le: 29/10/2006
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 1/2/2012 à 18:47 par petitjo86

Salut Zolt,

Je pense que Diabolo va régler le problème, car les explications sont toujours importante, surtout pour ne pas faire de bétise et pour progresser :D

En tout cas je peux dire que ça fonctionne du tonnerre et qu'un exemple est déja en ligne, il suffit d'aller sur mon site socfoot.com

Encore merci à toi et à Algèbre qui a participé (je ne le savait pas), donc merci à vous deux :thumbup:

@+ Petit Jo
nopic
petitjo86
DécouvreurMx
DécouvreurMx
 
Messages 79
Inscrit(e) le: 13/6/2008
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 1/2/2012 à 20:49 par Diabolo

Slt,
Bonne initiative :thumbup:
perso j'aurais fait autrement mais avant faut que je règle le prob ci-dessous
Citation:J'ai un problème de code avec ce forum, il créer des espaces l'a ou il ne faut pas...
J'en ai parlé ici:
http://www.pragmamx.fr/Discussion-file-viewthread-tid-8-page-1.html#pid137

Ne pas hésiter à participer et surtout à me détailler des exemples

Je vais m'occuper de ce problème en priorité ;)
[Edité le 1/2/2012 à 23:45 par Diabolo]
Aucun support en MP ou par courriel, le forum est là pour ça !
Nouvelle question sur le forum = Ouverture d'un nouveau sujet
Diabolo
Diabolo
Administrateur
JuniorMx
 
Messages 115
Inscrit(e) le: 27/6/2005
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 2/2/2012 à 01:12 par Zoltatem

Ce serais bien d'avoir du code comme cette exemple de page.
http://forum.forumactif.com/t171298-les-balises-bbcodes-de-forumactif

avec l'option: Sélectionner le contenu
Et introduire tout le BBcode.

Avoir un petit forum qui peut gérer parfaitement le BBcode ;)

Citation:Ne pas hésiter à participer et surtout à me détailler des exemples
Je suis nul en php, impossible pour moi de t'aider :(

@++
[Edité le 2/2/2012 à 01:44 par Zoltatem]
http://www.pragmamx.ca/logo-pragmamx.png
www.pragmamx.ca
Zoltatem
Zoltatem
Modérateur
JuniorMx
 
Messages 148
Inscrit(e) le: 29/10/2006
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 3/2/2012 à 03:01 par shorty

J'utilise une autre méthode alternative identique à celle utilisée pour les blocs pour afficher du contenu pour tel ou tel groupe de membre à tel ou tel endroit.
On crée la fonction dans theme.function.php et on ajoute le code de la fonction dans le thème. Sa marche pour toutes les parties du thème. par ex sur TradeZone.fr seulement les visiteurs voient la bannière uniquement sur la page d'accueil. Et peut mettre n'importe quel code html avec cette méthode (meme les menus et tout.
shorty
shorty
DécouvreurMx
DécouvreurMx
 
Messages 26
Inscrit(e) le: 7/2/2008
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 3/2/2012 à 06:07 par Zoltatem

Intéressent shorty

J'attend ton tuto ;)

@++
http://www.pragmamx.ca/logo-pragmamx.png
www.pragmamx.ca
Zoltatem
Zoltatem
Modérateur
JuniorMx
 
Messages 148
Inscrit(e) le: 29/10/2006
Genre homme

Re: Créer une DIV visible seulement en accueil (tuto)

New Posté le 3/2/2012 à 13:46 par shorty

Voici comment je procède ;)

Exemple :

Dans function.php

en dessous des lignes du meme type :
Code:
$part[] = array("{ACCUEIL}", mx_uniquementenccceuil());



Code:
function mx_uniquementenccceuil (){ //if (isset($GLOBALS['forum'])) { if (defined('MX_MODULE') && MX_MODULE == "Forum" || MX_MODULE == "Gallery" || MX_MODULE == "Content" || MX_MODULE == "Downloads"...rajouter les noms de tous les modules actif){ $out = '<div>contenu de mon div</div>'; } else { $out =''; } return $out; }


Dans le fichier theme.html insérer la fonction {ACCUEIL} à l'endroit ou vous désirez que le code apparaisse.
Le html est à ENLEVER du theme pour l'insérer dans la fonction ci dessus et l'appel de fonction doit se voir exactement en lieu et place du code enlevé.
Note : avec ce code on peut afficher du contenu différent pour les membres et pour les visiteurs, il suffit de mettre autre chose entre les guillemets du ELSE. Donc, chaque élément du thème peut-etre adapté au type de membre, et n'importe quelle partie du thème peut s'afficher en fonction du type de membre et du module (qui n'est pas forcément la page d'accueil).

Un amélioration du code serait de dire au block de s'afficher uniquement dans un module et non pas de ne pas s'afficher dans certains modules actifs. Même si sa revient au meme, cela serait un plus pratique, par ex en s'inspirant de la fonction pour les blocks :
Code:
if (MX_MODULE != 'blank_Home') { $mxblockcache = false; return; }
shorty
shorty
DécouvreurMx
DécouvreurMx
 
Messages 26
Inscrit(e) le: 7/2/2008
Genre homme

Sujet précédentSujet suivant

Plus