Code créant fiche de personnage scrollable incomplet
3 participants
Page 1 sur 1 • Partagez
Code créant fiche de personnage scrollable incomplet
Détails techniques
Version du forum : ModernBBPoste occupé : Administrateur
Navigateur(s) concerné(s) : Google Chrome
Capture d'écran du problème :
- Voir l'image:
Personnes concernées par le problème : Tous les utilisateurs
Problème apparu depuis : Depuis la création du code
Lien du forum : http://continentem.forumactif.com/
Description du problème
Bonjour à tous,Je vous écris car j'ai besoin de l'aide de personnes se débrouillant bien en code. J'essaye de vous synthétiser mon soucis :
En gros, il y a quelques mois, j'ai demandé sur forumotion (le forum des forums mais en international) de l'aide parce que je voulais avoir des fiches de personnage scrollables sur mon forum (les fiches de personnages étant très fournies, les 3 barres que forumactif affiche de base, étaient insuffisantes). Quelqu'un m'a aidé, mais a ensuite disparu pour des raisons que j'ignore. Il a fait beaucoup pour mon forum et je l'en remercie encore même s'il ne verra sûrement pas ce message.
Mais voilà, le code est incomplet, et n'affiche qu'une partie de la fiche.
L'idée était de diviser les informations qu'il y avait dans la fiche en 3 colonnes : Stats/Bio/Inventaire :
http://prntscr.com/s5tybu
Comme ça. Dans stats, il y aurait toutes les barres de stats (puissance magique, volonté, habileté à l'épée etc), dans Bio les informations au niveau de l'âge, du poids, ce genre de choses, et dans inventaire, et bien vous devinez : tout ce qui est possession matérielle.
Pour être exact, il faudrait dans "Bio", les stats nommées : "Statut"; "Latéralité"; "Taille"; "Poids"; "Date de naissance"
Et dans "Inventaire", il faudrait : "Argent"; "Argent" (y en a 2); "Inventaire"; "Ceinture"; "Armes"; "Armures"
Présentement, le code ne prend en compte que les stats, et je n'ai toujours pas trouvé comment faire afficher le reste... (Ce n'est pas faute d'avoir essayé avec mes maigres connaissances)
http://prntscr.com/s5u1ry
Voilà ce qui s'affiche dans bio ou inventaire.
Je vous mets le code créé jusqu'à maintenant. Le script :
- CODE:
- var exp=1000*60*60*24, ver=10;
var d=document, q=e=>{
return d.querySelector(e);
}, _q=e=>{
return d.querySelectorAll(e);
}, get=(url, callback)=>{
fetch(url).then(data=>{
return data.text();
}).then(data=>callback(data));
}, wait=(t, f)=>{
return setTimeout(f, t);
}, parser=new DOMParser(), domify=string=>{
return parser.parseFromString(string, "text/html");
};
var ls={
set:(name, data, expiry)=>{
localStorage.setItem(name+"v"+ver, JSON.stringify({
data:data,
expiry:(new Date).getTime()+expiry,
}))
},
get:name=>{
if(!localStorage.getItem(name+"v"+ver)) return null;
var data=JSON.parse(localStorage.getItem(name+"v"+ver));
if(parseInt(data.expiry)>(new Date).getTime()) return data.data;
return null;
}
};
var store=[];
var g=0;
document.addEventListener("DOMContentLoaded", ()=>{
var links=_q(".postprofile-rpg>a"), _ids=Array.from(links).map(e=>parseInt(e.getAttribute("href").match(/\d+/))), len, ids=[];
_ids.forEach(e=>{
if(ids.indexOf(e)==-1) ids.push(e);
});
len=ids.length;
ids.forEach(e=>store[e]=null);
ids.forEach((e, i)=>{
if(store[e]) return;
store[e]=ls.get(e);
if(!store[e]){
g++;
store[e]=1;
wait(100*g, ()=>{
get("/u"+e+"rpgsheet", data=>{
data=domify(data);
data=prep(domify(data.querySelector(".panel").innerHTML));
store[e]=data;
ls.set(e, store[e], exp);
if(i==len-1){
links.forEach((e, i)=>{
e.parentElement.innerHTML=render(store[parseInt(e.getAttribute("href").match(/\d+/))]);
});
evs();
};
});
});
} else {
if(i==len-1){
links.forEach((e, i)=>{
e.parentElement.innerHTML=render(store[parseInt(e.getAttribute("href").match(/\d+/))]);
});
evs();
};
};
});
});
var evs=()=>{
var handlees=_q(".prt-menu>span"), tabs=_q(".prt-tab"), f;
Array.from(handlees).forEach((e, i)=>{
l(e, "click", ()=>{
Array.from(e.parentElement.children).forEach(c=>{
if(c.classList.contains("prt-m-active")) c.classList.remove("prt-m-active");
});
e.classList.add("prt-m-active");
f=e.parentElement.parentElement;
while(!f.classList.contains("prt-tab-active")) f=f.nextSibling;
f.classList.remove("prt-tab-active");
tabs[i].classList.add("prt-tab-active");
});
});
};
var render=data=>{
var html="<div class='prof-rpg-top'><span class='prt-title'>Feuille de personnage</span>"+
"<div class='prt-menu'><span class='prt-m-active'>Stats</span>"+
"<span>Info</span><span>Argent</span><span>Ceinture</span><span>Armes</span><span>Armures</span></div></div>"+
"<div class='prt-tab prt-tab-active'>";
data[0].forEach(e=>{
html+="<div class='field f1'>"+e.img+"<span class='f1-value'>"+e.val+"</span><span class='f1-imgs'>"+e.imgs+"</span></div>";
});
html+="</div><div class='prt-tab'>Info</div><div class='prt-tab'>Argent</div><div class='prt-tab'>Ceinture</div><div class='prt-tab'>Armes</div><div class='prt-tab'>Armures</div>";
return html;
};
var prep=data=>{
var fsets=data.querySelectorAll("fieldset");
var field1=[], dom;
Array.from(fsets[0].children).forEach((e, i)=>{
dom=domify(e.innerHTML);
Array.from(dom.querySelectorAll("dd div img")).forEach((e, i)=>{
if(i==1 || i==2) e.setAttribute("width", parseInt(e.getAttribute("width"))/2);
});
field1.push({
img:dom.querySelector("label img").outerHTML,
imgs:dom.querySelector("dd div").innerHTML,
val:"("+dom.querySelector("dd>div").nextSibling.nodeValue.split("(")[1],
});
});
return [field1, null];
};
Et le CSS :
- CSS:
- /* RPG FICHE SCROLLABLE */
.inner{
}
.f1-imgs{
display:flex;
transform:scaleX(1.5);
position:relative;
left:30px;
}
.f1-value{
position:relative;
top:-11px;
left:3px;
}
.f1{
padding:5px;
}
.prt-menu>span{
display:inline-table;
padding:10px;
border-bottom:2px solid transparent;
cursor:pointer;
}
.prt-m-active{
border-bottom:2px solid #d1ba88 !important;
}
.prt-tab{
display:none !important;
}
.prt-tab-active{
display:table !important;
}
.postprofile-rpg{
margin-top:2px;
background:rgba(0, 0, 0, .76);
}
.postprofile-rpg:empty{
display:none !important;
}
.prof-rpg-top{
position:sticky;
top:0px;
width:100%;
background:black;
z-index:999;
}
.prt-title{
padding:20px;
}
.postprofile-rpg dl, .postprofile-rpg, .postprofile-rpg>div, .postprofile-rpg .column2 dt, .postprofile-rpg .column2 dd{
display:table;
}
.postprofile-rpg .column2{
position:relative;
width:100% !important;
}
.column1{
border:none !important;
}
.column1 dl, .column2 dl{
display:table !important;
}
.postprofile-rpg label{
width:100%;
}
.postprofile-rpg .column2 dl{
width:100%;
}
.postprofile-rpg .column2 dl>*{
position:relative;
margin:0 !important;
}
.postprofile-rpg .column2 dd{
position:relative;
top:8px;
}
.postprofile-rpg{
display:block !important;
width:100%;
height:250px;
overflow-y:scroll !important;
overflow-x:hidden !important;
}
.postprofile-rpg:empty{
display:none;
}
Quelqu'un arrive à comprendre le fonctionnement ?
Vous pouvez utiliser le compte "Guest" mdp : conti123 pour regarder directement sur le forum.
Voilà. Merci d'avance !
Re: Code créant fiche de personnage scrollable incomplet
Bonjour,
Et pendant ces quelques mois, jamais il ne vous a traversé l'esprit d'ouvrir un sujet sur le forum d'où venait l'aide initiale ?
Pourtant vous savez bien le faire ! Pour preuve, la première (et dernière fois) que je vous ai aidé vous êtes revenu comme une fleur en annonçant que finalement vous aviez trouvé votre réponse ailleurs. Puisque vous aviez eu la riche idée d'ouvrir le même sujet à plusieurs endroits en faisant bosser des personnes pour rien. Déjà qu'il vous avait fallu vous y reprendre à 3 fois pour nous donner la version de forum
Donc pour faire court et si j'ai bien compris, vous nous demandez de corriger un code incomplet dont nous ne sommes pas l'auteur parce que là où l'auteur se trouve, on vous a claqué la porte au nez pour une raison que vous n'ignorez pas ?
Jairalte deuxrives a écrit:
En gros, il y a quelques mois, j'ai demandé sur forumotion (le forum des forums mais en international) de l'aide parce que je voulais avoir des fiches de personnage scrollables sur mon forum
Et pendant ces quelques mois, jamais il ne vous a traversé l'esprit d'ouvrir un sujet sur le forum d'où venait l'aide initiale ?
Pourtant vous savez bien le faire ! Pour preuve, la première (et dernière fois) que je vous ai aidé vous êtes revenu comme une fleur en annonçant que finalement vous aviez trouvé votre réponse ailleurs. Puisque vous aviez eu la riche idée d'ouvrir le même sujet à plusieurs endroits en faisant bosser des personnes pour rien. Déjà qu'il vous avait fallu vous y reprendre à 3 fois pour nous donner la version de forum
Donc pour faire court et si j'ai bien compris, vous nous demandez de corriger un code incomplet dont nous ne sommes pas l'auteur parce que là où l'auteur se trouve, on vous a claqué la porte au nez pour une raison que vous n'ignorez pas ?
Re: Code créant fiche de personnage scrollable incomplet
Bonsoir Neptunia,
Vous vous leurrez sur mes intentions. Je vais vous répondre point par point, puisqu'il en vaut de mon honneur entaché par votre post plein de sarcasme, ha !
Pour commencer, j'ai ouvert un sujet à l'époque, mais personne n'avait pu m'aider. Ensuite, j'ai laissé couler, parce que pour différentes raisons, j'avais moins le temps pour mon forum, et d'autres priorités que ce genre d'atouts un peu "gadjets" si on veut.
Ensuite, j'avais effectivement fait un sujet sur les deux forums, pour être sûr de trouver la solution. Vous me le reprochez comme si c'était de la malhonnêteté, alors que vous savez bien que je l'ai dit, et que j'ai même partagé le lien du topic forumotion pour qu'un francophone puisse bénéficier de l'aide dont j'ai bénéficié (il m'a semblé que le sujet des images de fond était relativement récurrente), tout en sachant bien sûr que je n'ai aucun mérite à partager cela, puisque je ne suis pas l'auteur du code, tout revient aux codeurs. Je veux juste souligner mon honnêteté, que vous mettez en doute avec votre post...
Pour ce qui est de donner la bonne version du forum, pardonnez-moi, je vous le demande de nouveau puisque la dernière fois ce ne fut pas suffisant: je ne savais tout simplement pas comment cela fonctionnait. Et puis, je suis désolé aussi, encore, de vous avoir fait perdre du temps. Mais ce reproche je ne le comprends pas, les gens sont ici pour aider ou demander de l'aide. Cela a fonctionné en fin de compte, et ça a peut-être servi à plusieurs, que je fasse le topic ici, et que vous le relanciez, et que cela me pousse à partager le topic en anglais etc. J'ajoute que vous me préveniez de plusieurs heures de délai, et que par conséquent, cela pouvait expliquer que je ne vois votre post que tardivement. Ceci dit, j'ai quand même essayé votre code, et il n'avait pas fonctionné.
Sinon, je sais maintenant qu'il ne faut pas faire deux topics sur le même sujet, dans un forum d'aide différent, ce que je ne savais pas à cette époque, et ce que j'avais oublié aujourd'hui aussi avant de me le faire rappeler sur le topic de forumotion.
Personne ne m'a claqué la porte au nez, et si, j'ai demandé à ce sujet il y a quelques mois, mais personne ne savait la réponse sinon le talentueux "Occultist", qui n'a malheureusement plus le temps.
Bref, je sais que je ne sers pas à grand chose sur ce forum d'entraide, sinon à quémander de l'aide. Mes qualités sont à l'écrit, et cela ne sert pas à grand chose ici. Donc je demande pardon pour cela, ne faire que demander de l'aide, et je peux comprendre que l'on n'ai pas envie d'y répondre favorablement. Mais bon, si quelqu'un a la foi de le faire, ne serait-ce que par curiosité, je prends avec plaisir, et encore une fois, merci d'avance.
Vous vous leurrez sur mes intentions. Je vais vous répondre point par point, puisqu'il en vaut de mon honneur entaché par votre post plein de sarcasme, ha !
Pour commencer, j'ai ouvert un sujet à l'époque, mais personne n'avait pu m'aider. Ensuite, j'ai laissé couler, parce que pour différentes raisons, j'avais moins le temps pour mon forum, et d'autres priorités que ce genre d'atouts un peu "gadjets" si on veut.
Ensuite, j'avais effectivement fait un sujet sur les deux forums, pour être sûr de trouver la solution. Vous me le reprochez comme si c'était de la malhonnêteté, alors que vous savez bien que je l'ai dit, et que j'ai même partagé le lien du topic forumotion pour qu'un francophone puisse bénéficier de l'aide dont j'ai bénéficié (il m'a semblé que le sujet des images de fond était relativement récurrente), tout en sachant bien sûr que je n'ai aucun mérite à partager cela, puisque je ne suis pas l'auteur du code, tout revient aux codeurs. Je veux juste souligner mon honnêteté, que vous mettez en doute avec votre post...
Pour ce qui est de donner la bonne version du forum, pardonnez-moi, je vous le demande de nouveau puisque la dernière fois ce ne fut pas suffisant: je ne savais tout simplement pas comment cela fonctionnait. Et puis, je suis désolé aussi, encore, de vous avoir fait perdre du temps. Mais ce reproche je ne le comprends pas, les gens sont ici pour aider ou demander de l'aide. Cela a fonctionné en fin de compte, et ça a peut-être servi à plusieurs, que je fasse le topic ici, et que vous le relanciez, et que cela me pousse à partager le topic en anglais etc. J'ajoute que vous me préveniez de plusieurs heures de délai, et que par conséquent, cela pouvait expliquer que je ne vois votre post que tardivement. Ceci dit, j'ai quand même essayé votre code, et il n'avait pas fonctionné.
Sinon, je sais maintenant qu'il ne faut pas faire deux topics sur le même sujet, dans un forum d'aide différent, ce que je ne savais pas à cette époque, et ce que j'avais oublié aujourd'hui aussi avant de me le faire rappeler sur le topic de forumotion.
Personne ne m'a claqué la porte au nez, et si, j'ai demandé à ce sujet il y a quelques mois, mais personne ne savait la réponse sinon le talentueux "Occultist", qui n'a malheureusement plus le temps.
Bref, je sais que je ne sers pas à grand chose sur ce forum d'entraide, sinon à quémander de l'aide. Mes qualités sont à l'écrit, et cela ne sert pas à grand chose ici. Donc je demande pardon pour cela, ne faire que demander de l'aide, et je peux comprendre que l'on n'ai pas envie d'y répondre favorablement. Mais bon, si quelqu'un a la foi de le faire, ne serait-ce que par curiosité, je prends avec plaisir, et encore une fois, merci d'avance.
Re: Code créant fiche de personnage scrollable incomplet
Je me permets de upipup
Re: Code créant fiche de personnage scrollable incomplet
Bonjour, Attention, cela fait 6 jours que nous n'avons pas de nouvelles concernant votre demande, si vous ne voulez pas voir votre sujet déplacé à la corbeille, merci de poster dans les 24h qui suivent ce message. Si votre sujet est résolu, merci d'éditer votre premier message et de cocher l'icône « résolu » |
Re: Code créant fiche de personnage scrollable incomplet
Bonjour, Nous n'avons plus de nouvelle de l'auteur de ce sujet depuis plus de 7 jours. Nous considérons donc ce problème comme résolu ou abandonné. La prochaine fois, merci de nous tenir au courant de l'évolution de votre problème, ou pensez à faire un UP régulièrement ! Ce sujet est déplacé à la corbeille, merci d'ouvrir un nouveau sujet si nécessaire, en respectant les Règles générales du forum. |
Sujets similaires
» Fiche de Personnage
» Problème fiche de personnage
» La fiche de personnage, et les templates
» Fiche personnage qui dérègle la page
» Fiche personnage trop large
» Problème fiche de personnage
» La fiche de personnage, et les templates
» Fiche personnage qui dérègle la page
» Fiche personnage trop large
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum