Vous nous l'avez demandé à plusieurs reprises, c'est maintenant possible. Après une opération d'administration super simple, vous allez pouvoir afficher les objets de lotro.fr directement sur votre forum. Cerise sur le gâteau, le script est compatible avec la plupart des forums, y compris les forums gratuits (xooit et autre...)
Utilisation
Pour afficher un objet sur son forum, il suffit de mettre
son nom exact entre [ lotro ] et [ /lotro ] (sans espace)
Exemple : [ lotro ]Belles spallières en cuir[/lotro] => [lotro]Belles spallières en cuir[/lotro]
Testé avec succès sur :
IE : 7, 9
FF : 7.01, 8
Chrome 10
Opera 10.63, 11
Android 2.2
Installation
Pour installer le plugin, il vous suffit de copier le code fourni ci dessous dans votre interface d'admin, généralement dans la section édition de template, ou dans une section spéciale qui vous permet d'ajouter votre propre code javascript
Attention, pour copier le code, il faut d'abord cliquer sur le bouton QUOTE, et prendre le code directement dans la fenetre de réponse, sinon il sera incomplet<SCRIPT LANGUAGE="JavaScript"><!--
// qTip - CSS Tool Tips v02-12-2008 - by Craig Erskine http://qrayg.com
// modifié pour lotro.fr par Enox v1.01
enoxtip = {
name : "qTip",
offsetX : 0,
offsetY : 15,
tip : null,
trackmouse : false,
parse : true
};
enoxtip.init = function(){
if (this.parse){ // parse bbcode lotro
myrx = new RegExp("(\\[lotro]|\\[/lotro]|\\<textarea|\\</textarea|\\<script|\\</script)","gi");
contenu = document.getElementsByTagName("BODY")[0].innerHTML;
var idx_start = 0, contenu_split = [], ta_open = false, lfr_open = false,contenu_upd = false;
while (matches = myrx.exec(contenu)) {
if (idx_start < matches.index) contenu_split.push( contenu.substring(idx_start,matches.index) );
idx_start = matches.index;
contenu_parse = matches[1];
switch (matches[1].toLowerCase()){
case '<textarea':
case '<script':
ta_open = true;
break;
case '</textarea':
case '</script':
ta_open = false;
break;
case '[lotro]':
if (!ta_open){
lfr_open = true;
contenu_parse = '<span class="lotrofr" style="cursor:help;font-weight:bold;text-decoration:underline">';
contenu_upd = true;
}
break;
case '[/lotro]':
if (lfr_open){
lfr_open = false;
contenu_parse = '</span>';
}
break;
}
contenu_split.push( contenu_parse );
idx_start = idx_start + matches[1].length;
}
if (idx_start < contenu.length) contenu_split.push( contenu.substring(idx_start) );
// reconstruct body
if (contenu_upd) document.getElementsByTagName("BODY")[0].innerHTML = contenu_split.join('');
}
//document.getElementsByTagName("BODY")[0].innerHTML = contenu.replace(myrx,'<span class="lotrofr" style="cursor:help;font-weight:bold;text-decoration:underline">$1</span>');
var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
if(!tipContainerID){ var tipContainerID = "qTip";}
var tipContainer = document.getElementById(tipContainerID);
if(!tipContainer){
tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
tipContainer.setAttribute("id", tipContainerID);
tipContainer.style.border = "1px solid #666666";
tipContainer.style.display = "none";
tipContainer.style.position = "absolute";
tipContainer.style.zindex = "99999";
tipContainer.style.width = "302px";
document.getElementsByTagName("body").item(0).appendChild(tipContainer);
}
if (!document.getElementById) return;
this.tip = document.getElementById (this.name);
if (this.tip) document.onmousemove = function (evt) {enoxtip.move (evt)};
var a, sTitle, sID, elements;
elements = document.getElementsByTagName("span");
if(elements){
for (var i = 0; i < elements.length; i ++){
a = elements[i];
if (a.className != "lotrofr") continue;
sID = a.getAttribute("oid");
a.removeAttribute("title");
a.removeAttribute("alt");
sTitle = "http://lotro.fr/bdd/objet_img/";
if (sID){
sTitle+=sID+";.png";
}else{
sTitle+=a.innerHTML+".png";
}
a.setAttribute("tip",sTitle);
a.onmouseover = function(evt){enoxtip.show(evt,this.getAttribute("tip"))};
a.onmouseout = function(){enoxtip.hide()};
a.onclick = function(evt){enoxtip.click(evt,this.getAttribute("tip"))};
}
}
};
enoxtip.move = function (evt){
if (!this.trackmouse) return false;
var x=0, y=0;
if (document.all) {//IE
x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
x += window.event.clientX;
y += window.event.clientY;
} else {//Good Browsers
x = evt.pageX;
y = evt.pageY;
}
this.tip.style.left = (x + this.offsetX) + "px";
this.tip.style.top = (y + this.offsetY) + "px";
};
enoxtip.show = function (evt,text) {
if (!this.tip) return;
this.trackmouse = true;
this.move(evt);
this.tip.innerHTML = '<img src="'+text+'">';
this.tip.style.display = "block";
};
enoxtip.hide = function (){
if (!this.tip || !this.trackmouse) return;
this.tip.innerHTML = "";
this.tip.style.display = "none";
this.trackmouse = false;
};
enoxtip.click = function (evt,text) {
if (!this.tip) return;
this.tip.innerHTML = '<div style="height:20px;cursor:pointer;background:#000;color:#FFF;text-align:right;border-bottom:1px solid #666" onclick="this.parentNode.style.display='+"'none'"+'">[Fermer]</div><img src="'+text+'">';
this.tip.style.display = "block";
this.trackmouse = false;
};
window.onload = function (){ enoxtip.init(); };
// -->
</SCRIPT>
ATTENTION :
Pour les forums qui vous font créer des fichiers javascript séparés (forumgratuit par exemple), il faudra enlever le début et la fin du script :
Commence par enlever les balises script qui sont au début et à la fin :<SCRIPT LANGUAGE="JavaScript"><!--
et
Xooit
Fonctionne mais est lent si conflit avec leur bidule wysiwyg d'édition de message
Ajouter code dans Admin>Thème>Modifier template>viewtopic_body.tpl puis insérer code a la fin
Forumprod
panneau d'administration, Configuration du forum, Ajouter un code dans l'en-tête du forum
Forumgratuit (forumactif, forumouf, forumpersos...)
panneau d'administration, bouton avancé, onglet modules, gestion des codes javascript, activer gestion javascript : oui, créer un nouveau code javascript, choisir un titre et les endroits ou le script est actif, copier le code (en pensant en supprimer le début et la fin comme indiqué précédemment) et valider
SMF 1.x
Modifier index.template.php puis insérer le code juste avant </head>. Attention il faut fermer la balise php avant de copier le code, et la réouvrir après
PhpBB
Ajouter le code dans le fichier OVERALL Header
forumavie
Ne fonctionne pas : pas trouvé d'endroit pour ajouter du code
FluxBB
Ajouter le script dans le fichier include/template/main.tpl, juste au dessus de la balise </head>
Autre...
Si vous installez ce script sur un autre forum, n'hésitez pas a poster ici votre manip pour aider la communauté

bbcode
Pour ceux qui désirent (et qui peuvent) définir leur propre balise bbcode sur leur forum, il faut ensuite remplacer la ligne
par
dans le code du script, cela évitera tout bug avec vos javascripts existants.
Pour le bbcode en lui meme nous vous conseillons :
balise [ lotro]
A remplacer par : <span class="lotrofr">
balise [/lotro]
A remplacer par : </span>