Parade aux iframes
2 participants
- PêpêcheMascotte
- Messages : 4428
Parade aux iframes
Jeu 28 Mar 2019 - 14:01
Toutes versions
Parade aux iframes
Coucou toi !
Ne nous mentons pas, nous nous servons sans cesse des iframes sur nos forums. Pourquoi ? Tout simplement pour éviter de toucher aux templates sans arrêt et permettre à tous nos admins de faire des modifications. Cependant, les iframes ont leur limite: bloquées par les bloqueur de pub, parfois coupées si elles sont plus grandes que les dimensions indiquées.
Nous allons voir dans ce tutoriel une petite astuce, une parade aux iframes. L'idée va être la suivante: je code ce que je veux dans une page HTML de mon forum, puis, grâce à du javascript, je vais intégrer ce code dans ma page. Le gros avantage c'est que le navigateur fera comme si ton code avait toujours fait partie de la page HTML, du coup, il prendra même en compte la CSS du forum ^^
Pré-requis :
• être admin ;
• avoir accès aux templates du forum ;
• avoir des notions de CSS et HTML.
Ce tutoriel va se diviser en 3 étapes et, tu vas voir, ce n'est vraiment pas compliqué.
Étape 1: le code HTML
J'ai décidé de faire 2 blocs:
• Un bloc pour mes partenaires :
- Spoiler:
- Code:
<img src="http://pvereecken.fr/lpf/partenariat.png" alt="Partenariats" />
<section class="logos">
<a href="http://www.school-of-progress.fr/" target="_blank"><img src="http://site.school-of-progress.fr/images/logo.png" alt="Mini-bannière de School Of Pub, forum d'entraide pour forums" title="School Of Pub, forum d'entraide pour forums... Formations, tutoriels, exercices, animations.. Tout pour vous faire progresser en vous amusant !" /></a>
<a href="http://www.school-of-progress.fr/" target="_blank"><img src="http://site.school-of-progress.fr/images/logo.png" alt="Mini-bannière de School Of Pub, forum d'entraide pour forums" title="School Of Pub, forum d'entraide pour forums... Formations, tutoriels, exercices, animations.. Tout pour vous faire progresser en vous amusant !" /></a>
<a href="http://www.school-of-progress.fr/" target="_blank"><img src="http://site.school-of-progress.fr/images/logo.png" alt="Mini-bannière de School Of Pub, forum d'entraide pour forums" title="School Of Pub, forum d'entraide pour forums... Formations, tutoriels, exercices, animations.. Tout pour vous faire progresser en vous amusant !" /></a>
</section>
- Spoiler:
- Code:
<img src="http://pvereecken.fr/lpf/recrutement.png" alt="Recrutement" />
<article id="recrutement">
<p>BlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablablaBlablablablablablablablablablablablablabla</p>
<div class="deco"> </div>
</article>
Je vais aller mettre chacun de ces codes dans une page HTML de mon forum (Panneau d'admin > Modules > HTML & Javascript > Gestion des pages HTML) et je vais bien retenir les 2 numéros de page :
- Spoiler:
• Pour le recrutement: /h1-l
C'est surtout le h*- qui est important ^^ Ensuite, tu peux mettre ce que tu veux
Étape 2: ajout dans le template
Maintenant on va devoir préparer une balises qui va recevoir nos codes. Personnellement, je veux que mes partenaires et les infos sur le recrutement soient affichés dans le footer sur toutes mes pages mais avant les liens par défaut de FA.
- Spoiler:
Je vais donc aller modifier le template “overall_footer_begin” (Panneau d'admin > Affichage > Templates > Général) et avant :
- Code:
<div id="page-footer">
- Code:
<footer id="footer" class="table">
<section class="table-cell">
<div id="footer-partenaires"> </div>
</section>
<section class="sep"> </section>
<section class="table-cell">
<div id="footer-recrutement"> </div>
</section>
</footer>
• id="footer-recrutement" recevra le code de mon recrutement.
Je valide et je publie.
Si on s'arrête là, rien ne se passe sur le forum.
Étape 3: injection grâce au js
On va maintenant ajouter le code HTML définis en (1) dans mes balises “réceptacles” grâce à du javascript. Pour cela, on va utiliser une fonction disponible dans la bibliothèque Jquery: load(). Cette fonction va aller charger une page HTML (ou une partie de page) dans une balise spécifique. Voilà comment elle se présente :
- Code:
$('#receptacle').load('page-a-charger.html');
Si tu veux récupérer une partie spécifique de ta page, il te suffit de la cibler grâce à la CSS ; ton code deviendra donc :
- Code:
$('#receptacle').load('page-a-charger.html #bloc-a-recuperer');
Du coup, ici, pour mes 2 blocs j'aurai :
- Code:
$('#footer-partenaires').load('/h5-l');
$('#footer-recrutement').load('/h1-l');
Je vais ensuite appeler ces 2 fonctions une fois ma page chargée, ce qui donne :
- Code:
$(document).ready(function(){
$('#footer-partenaires').load('/h5-l');
$('#footer-recrutement').load('/h1-l');
});
Il ne me reste plus qu'à ajouter ce code dans les javascript de mon forum (Panneau d'admin > Modules > HTML & Javascript > Gestion des code Javascript) et à l'afficher sur toutes les pages :
- Spoiler:
Et pouf ! Le tour est joué :
Remarques
Sur les vieux forums, il peut arriver qu'il y ait des soucis liés à l'encodage du forum. Dans ce cas, malheureusement, il va falloir utiliser les codes html pour les caractères spéciaux. Voici les principaux :
- Code:
é = &*eacute;
è = &*egrave;
ê = &*ecirc;
à = &*agrave;
â = &*acirc;
ù = &*ugrave;
ç = &*ccedil;
Pense à retirer les *.
Si tu as besoin d'autres caractères, n'hésite pas à jeter un oeil à ce référentiel : clic.
Eh voilà ! C'est terminé !
- Ayael
- Messages : 37
Re: Parade aux iframes
Jeu 25 Avr 2019 - 16:34
Merci beaucoup pour ce tutoriel, tu changes ma vie !
- PêpêcheMascotte
- Messages : 4428
Re: Parade aux iframes
Jeu 25 Avr 2019 - 16:47
Ahhh j'étais sure qu'il n'y avait pas que moi qui pestait contre les iframes à chaque fois qu'elle devait en utiliser :p
- Ayael
- Messages : 37
Re: Parade aux iframes
Jeu 25 Avr 2019 - 17:12
Oui, et comme tu l'as dis, sur un de mes fofo, j'ai mis les partenaires en footer en iframe pour que tous les admins puissent les modifier sans avoir accès au template, mais c'était bien relou. De manière général, tous les éléments un peu complexe sur la PA qui sont aléatoire ou déroulant, je trouve que c'est plus facile de les faire sur une page html à part puis des les intégrer.
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum
|
|