CSS
Template Index_body
A insérer entre les lignes "{CHATBOX_TOP}" (47) et "{BOARD_INDEX}" (49)
Pour ajouter les polices
Dans le template "Overall_header" insérer ce qui suit avant "{T_HEAD_STYLESHEET}" (l18)
Mise en forme des derniers messages
Se rendre dans la partie "Portail" des templates et remplacer le template "mod_recent_topics"
Appeler l'avatar
Toujours dans la partie template (on s'accroche), direction l'onglet "Profil". Dans "Profil_view_body", remplacer la ligne 17 par :
{AVATAR_IMG}
Le Javascript
Dans "Modules", "Gestion des pages javascript", commencer par activer le Javascript (parce qu'on en a pas mal à mettre).
Pour ajouter les derniers messages sur l'accueil, créer un nouveau code que vous pouvez intituler "Derniers sujets" présent sur l'index. On colle ceci dedans avant d'enregistrer :
$(function(){
/*Chemin pour phpBB3, Invision et PunBB*/
var pour_phpbb3_invision_punbb = '#left .module:first .js-marquee:first';
/*Chemin pour phpBB2*/
var pour_phpbb2 = '#left .forumline:first .js-marquee:first';
/*Aller chercher le contenu des derniers sujets avec les chemins*/
var widget_derniers_sujets = $(pour_phpbb2 + ',' + pour_phpbb3_invision_punbb).html();
/*On ajoute le contenu der derniers sujets dans le bloc où on veut qu'ils soient*/
$('#derniers_sujets').html(widget_derniers_sujets);
});
On enchaine avec le Slider ! On crée un nouveau code ("Slider" tout bêtement pour moi) et on colle ceci avant d'enregistrer :
$(function () {
//VARIABLES MODIFIABLES
var delaiSwitch = 5000; // Délai (en ms) d'affichage d'un slide
var delaiTransition = 1000; // Délai (en ms) de l'animation de transition
var direction = 'left'; // Sens (left ou right) du défilement
var idSlideshow = '#slideshow'; // ID du slideshow
var idContainer = '#slideshow-container'; // ID du container
//VARIABLES SYSTEME
var slideshowWidth = parseInt($(idSlideshow).css('width'));
var slideshowHeight = parseInt($(idSlideshow).css('height'));
var nbSlides = $(idContainer+' > .slide').length;
//ADAPTE LA TAILLE DU CONTENEUR AU NOMBRE DE BLOCS QU'IL CONTIENT
$(idContainer).css('width', slideshowWidth*nbSlides+'px');
//REDEFINIT LE CONTENU POUR SUPPRIMER LES EVENTUELS ECARTS DUS AUX BORDERS
if(direction==='right') {
var decalageLeft = -slideshowWidth*(nbSlides-1);
$(idContainer).css('left', decalageLeft+'px');
$(idContainer+' > .slide').each(function() {
var el = $(this).remove();
$(idContainer).prepend(el);
}, this);
} else {
$(idContainer+' > .slide').each(function() {
var el = $(this).remove();
$(idContainer).append(el);
}, this);
}
//ADAPTE LA TAILLE DES IMAGES AUX DIMENSIONS DU SLIDESHOW
$(idSlideshow+' img').css('max-width', slideshowWidth);
$(idSlideshow+' img').css('max-height', slideshowHeight);
//LANCEMENT DE L'ANIMATION
setInterval(function() {
slideshow()
}, delaiSwitch);
//FONCTION DE DEFILEMENT
function slideshow() {
var compteur = 0; // Compte les slides ayant bougé
if(direction==='right') {
$(idContainer+' > .slide').animate({left: '+='+slideshowWidth}, delaiTransition, function() {
compteur++;
// Lorsque le dernier slide à bougé, on crée la boucle
if(compteur===nbSlides) {
var el = $(idContainer+' > .slide:last').remove();
$(idContainer).prepend(el);
$(idContainer+' > .slide').css('left', '0');
compteur = 0;
}
});
} else {
$(idContainer+' > .slide').animate({left: '-='+slideshowWidth}, delaiTransition, function() {
compteur++;
// Lorsque le dernier slide à bougé, on crée la boucle
if(compteur===nbSlides) {
var el = $(idContainer+' > .slide:first').remove();
$(idContainer).append(el);
$(idContainer+' > .slide').css('left', '0');
compteur = 0;
}
});
}
}
});
Si vous n'avez pas encore vomi, on continue avec l'avatar du membre connecté. Nouveau code, toujours sur l'index, on colle, on enregistre.
/* On attend le chargement */
$(function(){
/* on récupère les endroits où on doit ajouter l'avatar */
var $loadAvatar = $('.js-useravatar');
/* s'il y a des endroits où on doit ajouter l'avatar */
if ($loadAvatar.length > 0) {
/* on remplace le contenu de .js-useravatar en mettant l'avatar */
$loadAvatar.html(_userdata.avatar);
}
});
Il faut aussi appeler le pseudo du membre, accrochez-vous ! Nouveau code, on c/c, on enregistre !
/* On attend le chargement */
$(function(){
/* on récupère les endroits où on doit ajouter l'avatar */
var $loadAvatar = $('.js-username');
/* s'il y a des endroits où on doit ajouter l'avatar */
if ($loadAvatar.length > 0) {
/* on remplace le contenu de .js-useravatar en mettant l'avatar */
$loadAvatar.html(_userdata.username);
}
});
Et enfin si vous êtes toujours là (parce que moi j'ai quitté sans enregistrer), la petite phrase des connectés qui disparait ! ATTENTION ce code risque d'être modifié avec l'arrivée du reste de l'index. Nouveau code, index, "Modification qeel" et on c/c avant d'enregistrer :
$(function () {
/*Réglages ci-dessous*/
var t = {
"remplacer":
[
"Qui est en ligne ?",
"Il y a en tout",
"utilisateur en ligne",
"utilisateurs en ligne",
"Utilisateurs enregistrés :",
"Enregistré",
"Enregistrés ",
"Invisible ",
"Invisibles",
"et",
"Invité",
"Invités",
"Le record du nombre d'utilisateurs en ligne est de",
"Membres connectés au cours des",
"Aucun membre ne fête son anniversaire aujourd'hui",
"Aucun membre ne fête son anniversaire dans les",
"Membres fêtant leur anniversaire aujourd'hui",
"Membres fêtant leur anniversaire dans les",
"Légende",
"Nos membres ont posté un total de",
"Statistiques",
"messages",
"Nous avons",
"membres enregistrés",
"L'utilisateur enregistré le plus récent est",
"Anniversaires",
"Statistiques",
"Evènements à venir dans le calendrier pour les 5 prochains jours",
"Il n'y a pas d'évènement à venir dans le calendrier"
],
"par":
[
"Qui se baladent sur le forum ?",
"Actuellement",
"personne sur le forum",
"personnes sur le forum",
"" ,
"membre",
"membres",
"caché ",
"cachés ",
" et pour finir ",
"fantôme",
"fantômes",
"Le pic de membres présents est de",
"Membres présents ces",
"Pas d'anniversaire ce jour",
"Pas d'anniversaire dans les",
"Joyeux anniversaire à",
"Les prochains anniversaires a souhaiter dans les",
"Les groupes du forum",
"Nos membres ont écrit un total de",
"Les stats du forum",
"blablas",
"Le forum compte",
"membres qui ont fait le pas pour s'inscrire",
"Le forum souhaite la bienvenue à",
"Les fêtes a venir",
"Les stats ",
"Que se passe t-il dans le calendrier ?",
"Pas d'évènement à l'heure actuelle"
]
};
/*Fin réglages*/
for(i in t.remplacer)$('#fo_stat')
.html($('#fo_stat').html().replace(t.remplacer[i], t.par[i]));
});
Manip' finale
C'est tout pour le code (amen), mais il reste à configurer les derniers messages. Pour celà "Modules" → "Gestion des Widgets" → "Afficher les widgets du forum" on met "oui". On supprime tout et on met le widget "Sujets récents" en haut à gauche. On enregistre et à moins d'être un chat noir, tout fonctionne \o/
CSS
/* ------------------- CATEGORIES ------------------- */
/* Generalites */
#categories ::-webkit-scrollbar {
border: 2px solid #2B2B2B;
width: 9px;
}
#categories ::-webkit-scrollbar-thumb {
background: rgba(0,0,0,.9);
height: auto;
width: 1px;
}
#categories {
width: 90%;
margin: auto;
}
/* TITRE CATEGORIE */
.titre_cate {
display: table;
clear: both;
content: "";
width: 100%;
background: url(https://i.imgur.com/YdeNN8w.jpg);
}
.titre_cate h2 {
font-family: 'Yanone Kaffeesatz', sans-serif;
color: #fff;
font-size: 30px;
padding: 1.5em 5em 1.5em 1em;
text-transform: uppercase;
letter-spacing: 5px;
font-weight: 400;
float: right;
}
.titre_cate h2 span {
display: block;
font-size: 12px;
color: #989696;
padding: .5em 0 0 0;
}
.titre_cate img {
float: right;
padding: 2.5em 0 0 0;
}
/* FORUM */
.forum {
background: #d1d3d5;
margin: 1em 0;
padding: 2em;
position: relative;
display: table;
clear: both;
content: "";
width: 100%;
box-sizing: border-box;
}
.nom_forum {
display: table;
clear: both;
content: "";
margin: 0 0 1em;
}
/* Image New, No New, Lock */
img.statut_forum {
float: left;
}
/* Nom forum */
a.forumtitle {
color: #252525 !important;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 35px;
text-transform: uppercase;
letter-spacing: 2px;
padding: .5em .5em .2em;
display: inline-block;
transition: 1s all;
margin: 0 0 0 .3em;
}
a.forumtitle:hover {
background: #000;
color: #fff !important;
padding: .5em .5em .2em;
}
/* Dernier message */
.bloc_dernier_message {
width: 212px;
float: left;
height: 159px;
position: relative;
overflow: hidden;
z-index: 2;
box-shadow: 0 15px 20px -12px rgba(0,0,0,.8);
}
/* texte dernier message */
.dernier_message {
float: right;
background: #1a1c1e;
color: #fff;
font-family: 'Yanone Kaffeesatz', sans-serif;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 14px;
padding: .3em .5em .1em;
text-align: right;
width: 120px;
margin: 8em 0 0 0;
}
/* bloc lien dernier message */
.dernier_message_txt {
position: absolute;
top: 212px;
width: 212px;
height: 159px;
background: rgba(0,0,0,.6);
text-align: center;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 14px;
color: #fff;
line-height: 1.3;
text-transform: uppercase;
transition: .5s all;
padding: 3.5em 0 0;
}
.bloc_dernier_message:hover .dernier_message_txt {
top: 0;
transition: .5s all;
}
.dernier_message_txt a {
color: #fff !important;
font-style: italic;
letter-spacing: 2px;
}
.dernier_message_txt strong a {
font-style: normal;
letter-spacing: 1px;
}
/* image description */
.description_sf img {
position: absolute;
top: 6.45em;
left: 2em;
}
/* DESCRIPTION ET SOUS FORUM */
.description_sf {
width: 54%;
float: left;
margin: 0 3em;
}
.description_sf p {
text-align: justify;
line-height: 1.5;
width: 100%;
height: 110px;
overflow: auto;
box-sizing: border-box;
padding: 0 1em 0 0;
font-family: 'Roboto', sans-serif;
}
/* Sous forum */
.sf {
width: 100%;
background: url(https://i.imgur.com/YdeNN8w.jpg);
box-sizing: border-box;
margin: 1.4em 0 0;
max-height: 50px;
overflow: auto;
line-height: 2.5;
}
.sf a {
color: #fff !important;
font-family: 'Yanone Kaffeesatz', sans-serif;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 14px;
font-style: italic;
padding: 0 1em 0 2em;
}
/* AVATAR DERNIER POSTEUR ET STATISTIQUES */
.avatar_stats {
float: left;
position: relative;
margin: -3.7em 0 0 0;
}
.avatar_dernier img {
width: 137px;
height: 205px;
object-fit: cover;
position: absolute;
z-index: 3;
}
.statistiques {
width: 137px;
height: 205px;
position: relative;
z-index: 4;
background: rgba(0,0,0,.6);
text-align: center;
color: #fff;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 30px;
line-height: 1.2;
font-style: italic;
padding: .5em 0 0 0;
box-sizing: border-box;
text-shadow: 1px 1px #000;
}
/* LIEN SUPPRESSION COOKIE ET MARQUER LU */
.liens_footer_cate {
width: 90%;
margin: 0 auto 2em;
text-align: right;
}
.liens_footer_cate li {
list-style: none;
display: inline-block;
margin: 0 0 0 1em;
}
.liens_footer_cate a {
display: inline-block;
background: url(https://i.imgur.com/inIiuHJ.jpg) 500px;
line-height: 2;
color: #fff !important;
text-transform: uppercase;
letter-spacing: 1px;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-weight: 400;
font-size: 14px;
width: 250px;
text-align: center;
transition: .5s all;
}
.liens_footer_cate a:hover {
background: url(https://i.imgur.com/inIiuHJ.jpg) center 30px;
transition: .5s all;
text-shadow: 1px 1px #000;
}
Index_box
{catrow.tablehead.L_FORUM}
{catrow.forumrow.FORUM_DESC}
{catrow.forumrow.L_LINKS}{catrow.forumrow.LINKS}
{catrow.forumrow.avatar.LAST_POST_AVATAR}
{catrow.forumrow.TOPICS}
S.
{catrow.forumrow.POSTS}
M.
Pour ajouter le sous-titre des catégories
Le "Tout ce qu'il faut savoir" sur la maquette. Dans votre titre de catégorie, encadrer le sous-titre d'un "span", comme sur l'exemple suivant :
Le Shuriken à côté du nom de forum correspond à l'image "New", "No new", "Lock" et est en 38*38px. Au survol de la description (212*159px) le dernier message s'affiche. Vous n'avez pas besoin d'ajouter l'ombre ou le texte "dernier message" sur votre image, le code le fait pour vous.
Pour ajouter les police, cf plus haut
CSS
/* ------------------- QUI EST EN LIGNE ------------------- */
#qeel {
background: url(https://i.imgur.com/inIiuHJ.jpg);
width: 943px;
margin: 0 auto 2em;
height: 327px;
padding: 3em;
box-sizing: border-box;
}
/* AVATAR DERNIER INSCRIT */
.qeel_avatar {
float: left;
}
#avatar_dernier_membre img {
width: 184px;
height: 262px;
object-fit: cover;
}
/* STATISTIQUES */
.qeel_stats {
float: left;
width: 18%;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 14px;
color: #fff;
text-transform: uppercase;
text-align: center;
padding: 2.4em 0 0;
letter-spacing: 1px;
}
.qeel_stats span {
background: url(https://i.imgur.com/YdeNN8w.jpg);
display: block;
padding: .7em 0;
margin: 1.5em 0;
box-shadow: 0 15px 20px -12px rgba(0,0,0,.8);
}
.qeel_stats span strong {
font-weight: 400;
}
.qeel_stats a {
color: #fff !important;
}
/* GROUPES */
.qeel_groupes {
float: left;
width: 20%;
text-align: center;
margin: 5.5em 0 0;
}
.qeel_groupes a {
width: 60%;
display: block;
padding: .4em 0 .8em;
margin: 0 0 1em;
color: #fff !important;
text-transform: uppercase;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 19px;
letter-spacing: 1px;
}
.qeel_groupes .kiri {
background: #5187b0;
}
.qeel_groupes .kumo {
background: #d1ae00;
}
.qeel_groupes .suna {
background: #b58345;
}
/* CONNECTES */
.qeel_enligne {
float: left;
background: #e6e5e5;
width: 33%;
margin: 0 0 0 4em;
box-sizing: border-box;
padding: 1em;
font-family: 'Yanone Kaffeesatz', sans-serif;
font-size: 16px;
text-transform: uppercase;
text-align: center;
height: 260px;
}
.liste_connectes {
font-family: 'Roboto', sans-serif;
font-size: 12px;
text-align: justify;
text-transform: initial;
height: 190px;
margin: 1.5em 0 0;
padding: 0 1em;
box-sizing: border-box;
overflow: auto;
}
Index_body, remplacer tout le contenu entre commentaire "Begin disable viewonline" :
{NEWEST_USER}
{TOTAL_USERS}
{TOTAL_POSTS}
{TOTAL_USERS_ONLINE}
{L_CONNECTED_MEMBERS}
Profile_View_Body
Dans les templates, onglet "Profil" et non "Général". Chercher "{AVATAR_IMG}" et le remplacer par :
{AVATAR_IMG}
Javascript
Créer un nouveau code Javascript nommé "Phrases du qeel" par exemple, c/c ce qui suit et enregistrer.
$(function () {
/*Réglages ci-dessous*/
var t = {
"remplacer":
[
"Qui est en ligne ?",
"Il y a en tout",
"utilisateur en ligne :",
"utilisateurs en ligne :",
"Utilisateurs enregistrés :",
"Enregistré",
"Enregistrés ",
"Invisible ",
"Invisibles",
"et",
"Invité",
"Invités",
"Le record du nombre d'utilisateurs en ligne est de",
"Membres connectés au cours des",
"Aucun membre ne fête son anniversaire aujourd'hui",
"Aucun membre ne fête son anniversaire dans les",
"Membres fêtant leur anniversaire aujourd'hui",
"Membres fêtant leur anniversaire dans les",
"Légende",
"Nos membres ont posté un total de",
"Statistiques",
"messages",
"Nous avons",
"membres enregistrés",
"L'utilisateur enregistré le plus récent est",
"Anniversaires",
"Statistiques",
"Evènements à venir dans le calendrier pour les 5 prochains jours",
"Il n'y a pas d'évènement à venir dans le calendrier"
],
"par":
[
"Qui se baladent sur le forum ?",
"",
"shinobi",
"shinobis",
"" ,
"connecté",
"connectés",
"caché ",
"cachés ",
", ",
"invité",
"invités",
"Le pic de membres présents est de",
"Connectés ces",
"Pas d'anniversaire ce jour",
"Pas d'anniversaire dans les",
"Joyeux anniversaire à",
"Les prochains anniversaires a souhaiter dans les",
"Les groupes du forum",
"",
"Les stats du forum",
"Messages",
"",
"Membres",
"",
"Les fêtes a venir",
"Les stats ",
"Que se passe t-il dans le calendrier ?",
"Pas d'évènement à l'heure actuelle"
]
};
/*Fin réglages*/
for(i in t.remplacer)$('#qeel')
.html($('#qeel').html().replace(t.remplacer[i], t.par[i]));
});
Et enfin, on affiche l'avatar du dernier inscrit :
$(function(){
$.get($("#dernier_membre a[href^='/u']")[0].href,function(d){
(a=$("#avatar_membre img",$(d))).length&&$("#avatar_dernier_membre").html(a);})
});
Dernière modification : 25 April 2020 23 : 36.