Précédent   Forum des professionnels en informatique > PHP > Scripts > Forum > phpBB
phpBB Avant de poster -> Cours phpBB, FAQ phpBB et Sources phpBB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2007, 19h56   #1
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Par défaut Aide pour modification du MOD acronyms

Bonjour,
J'ai installé le Mod Acronyms avec pour objectif de le modifier afin d'y intègrer une image plutôt qu'une définition.
Voir ce post:
http://forums.phpbb-fr.com/viewtopic...987&highlight=

Comme cela ne fonctionne pas, j'ouvre cette demande de support.
J'ai mis dans la base de données le code suivant:
Code :
<img src="http://www.site.com/image.jpg">
et j'ai également testé celui-ci:
Code :
<img src=http://www.site.com/image.jpg>
Dans les deux cas, dans le panneau d'administration, l'image apparaît dans la liste des acronymes.
En revanche, dans le premier cas la fenêtre texte du post affiche de même que dans le post le code apparait devant le mot... Ex: ">toto
Dans le deuxième cas le mot n'a pas d'ajout et la fenêtre texte affiche le code en entier...
Dans les deux cas, pas d'images...

Si quelqu'un pouvait m'aider à le modifier ou me proposer un MOD qui corresponde à ma démarche.
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 17h23   #2
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Salut,

Désolé, je n'avais pas tester le mod et j'ai regardé le mauvais fichier
Voila ce que j'ai fait:
- Ouvrir
admin_acronyms.php

- Trouver:
Code :
str_replace("\'", "''", htmlspecialchars($description))
- Remplacer par:
Code :
str_replace("\'", "''", $description)
A faire 2 fois dans le fichier

- Ouvrir
acronyms_edit_body.tpl

- Trouver:
Code :
<input type="text" name="description" value="{DESCRIPTION}" class="post" maxlength="255"/>
- Remplacer par:
Code :
<textarea name="description" class="post" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3">{DESCRIPTION}</textarea>
- Ouvrir
overall_header.tpl

Utiliser ce script:

Citation:
infobulle.js
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
    var xOffset=6
    var yOffset=5
    var affiche = false; // La variable i nous dit si le bloc est visible ou non
    var w3c=document.getElementById && !document.all;
    var ie=document.all;
    if (ie||w3c) {
    var laBulle
    }
    function ietruebody(){ // retourne le bon corps...
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    }
    function deplacer(e) {
    if(affiche){
    var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
    var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;
    var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
    var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;
    var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
    var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;
    var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000
    // modifier la largeur de l'objet s'il est trop grand...
    if(laBulle.offsetWidth > winwidth / 3){
    laBulle.style.width = winwidth / 3
    }
    // si la largeur horizontale n'est pas assez grande pour l'info bulle
    if(rightedge < laBulle.offsetWidth){
    // bouge la position horizontale de sa largeur à gauche
    laBulle.style.left = curX - laBulle.offsetWidth + "px"
    } else {
    if(curX < leftedge){
    laBulle.style.left = "5px"
    } else{
    // la position horizontale de la souris
    laBulle.style.left = curX + xOffset + "px"
    }
    }
    // même chose avec la verticale
    if(bottomedge < laBulle.offsetHeight){
    laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px"
    } else {
    laBulle.style.top = curY + yOffset + "px"
    }
    }
    }
    function montre(text) {
    if (w3c||ie){
    laBulle = document.all ? document.all["bulle"] : document.getElementById ? document.getElementById("bulle") : ""
    laBulle.innerHTML = text; // fixe le texte dans l'infobulle
    laBulle.style.visibility = "visible"; // Si il est cachée (la verif n'est qu'une securité) on le rend visible.
    affiche = true;
    }
    }
    function cache() {
    if (w3c||ie){
    affiche = false
    laBulle.style.visibility="hidden" // avoid the IE6 cache optimisation with hidden blocks
    laBulle.style.top = '-1000px'
    laBulle.style.backgroundColor = ''
    laBulle.style.width = ''
    }
    }
    document.onmousemove = deplacer; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
exemple.htm
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    <html>
    <head>
    <script src="infobulle.js"></script>
    <style type="text/css">
    .infobulle{
    color: #FFFFFF;
    position: absolute;
    visibility : hidden;
    border: 2px solid #B1DBF3;
    padding: 10px;
    font-family: Trebuchet MS;
    align: center;
    font-size: 10pt;
    background-color: #000000;
    }
    </style><div id="bulle" class="infobulle"></div>
    <table width="100%" height="100%" border="1">
    <tr>
    <td onmouseover="montre('Ce texte est trop grand c\'est pourquoi il devrait dépasser de l\'ecran si on ne redimmensionne pas le cadre de l\'infobulle');" onmouseout="cache();"> Youhou trop grand </td><td></td>
    <td onmouseover="montre('Une simple info-bulle');" onmouseout="cache();"> Youhou petit</td><td></td>
    </tr>
    </table>
    </body>
    </html>
Placer l'appel du js, et le div

- Trouver:
- Ajouter après:
Code :
<div id="bulle" class="infobulle"></div>
- Ouvrir
bbcode.php

- Trouver:
Code :
			$repl[] = '<acronym title="' . $acronyms[$i]['description'] . '">' . $acronyms[$i]['acronym'] . '</acronym>';
- Remplacer par:
Code :
1
2
$info = "onmouseover=\"montre('".$acronyms[$i]['description']."')\" onmouseout=\"cache();\"";
			$repl[] = "<acronym ".$info." title=\"\">".$acronyms[$i]['acronym']."</acronym>";
Testé sous IE et FF a toi d'adapter les css du code pour l'afficher comme tu le souhaite

Pour l'utlisaiton du HTML il faut faire comme ça:
Code :
<img src=\'tonimage.gif\' />
Ce qui est important c'est le bout de code en rouge sinon le script ne fonctionnera pas

Cordialement,
Darkenshin (Oyo sur phpBB-fr)
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 00h39   #3
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Darkenshin,
Je suis bluffé!!!!

Sincèrement, j'espérais beaucoup trouver une réponse à ma demande mais je n'y croyais pas trop.
Je viens de tester (après moult recherches pour savoir ce que voulait dire DIV et appel ), c'est énorme!
Exactement ce que je voulais.
BRAVO!
Enthousiasme total à la maison Marco

Il y aura certainement quelques petites bidouilles pour l'améliorer genre souligner l'acronyme sous IE (ok pour FF) plus 2/3 bricoles secondaires à envisager.
Sinon d'enfer!

Il faut avoir installé Java sur sa machine ou le fait d'avoir IE ou FF suffit?
Est ce que cela marchera sur toutes les conf'?
Désolé de mes questions de novice.

Encore un grand merci

Marco
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 11h30   #4
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Salut idamarco,

Comme dit, c'est de ma faute je n'avais pas testé le mod quand tu as posté ta question sur -fr.

Je ne dis pas le contraire, j'ai fait ça vite fait au taff entre 2 projets , normalement il n'y a pas forcement besoin de Java sur la machine ^^ puisqu'on ne sert pas de java mais de javascript c'est totalement différent

Ici, c'est du js, ça fonctionne sous toute les configs encore faut-il que l'utilisateur est activé le javascript

Cordialement,
Oyo
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 19h54   #5
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Pas de conf' particulière, bonne nouvelle!
Bon, je vais mettre cela en place sur mon forum.
Ca va nous être super utile!

Je vais quand même peut être avoir besoin de 2/3 trucs au fur et à mesure que j'exploiterai le script et que j'en découvrirais les besoins et les nuances d'utilisation.

Par exemple (excuse mes questions de novices...)

1) Est-ce que l'utilisation du javascript peut ouvrir des failles?

2) Sais tu comment faire pour que le mot soit souligné sur IE comme il l'est déjà sur FFox.

3) Est ce que cela peut ralentir notablement le trafic du forum?
La taille de la base jouera t elle sur cette vitesse?

4) Bien que cela me semble répondre parfaitement à mon besoin, y vois tu la possibilité d'une évolution?

Merci encore Oyo, j'ai eu du mal à m'endormir tant j'étais enthousiaste!


Marco
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2007, 22h51   #6
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Well...
Tout marche nickel sauf le soulignement donc et un petit truc que je n'avais pas encore testé:
si il y a une majuscule la fonction ne marche plus.
Est il possible de faire en sorte que l'acronyme marche dans tous les cas, exemple:

mot
Mot
MOT
moT
mOt
etc...

Merci pour ton aide Oyo, je vais tacher de mon côté de plonger dans les codes Javascript ...

Marco
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 11h34   #7
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Salut,

Je ne suis pas un pro ^^ mais je vais essayer de répondre à tes quesitons peut-être qu'on me reprendra.

1) Oui et non, il me semble que ça dépend si tes membres y ont accès ou pas
2) Non je ne sais pas, je n'ai pas regarder comment faire
3) Aucune idée
4) Certainement, oui

Il me semble que même avec le mod original, si tu changes l'orthographe du mot cela ne fonctionne plus.
Je ne vois pas trop de solution mise à part enregister les mots avec toute les orthographes possibles :/ ou passer par la censure pour que le mot soit toujours bien écrit
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2007, 22h58   #8
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Citation:
Envoyé par Darkenshin
Salut,

Je ne suis pas un pro ^^ mais je vais essayer de répondre à tes quesitons peut-être qu'on me reprendra.

Mouais, ben félicitences quand même pour le script!!


1) Oui et non, il me semble que ça dépend si tes membres y ont accès ou pas
Les membres n'ont pas accès aux fichiers en tout cas.

2) Non je ne sais pas, je n'ai pas regarder comment faire
Ah..
Ca faut que je trouve, je vai svoir de ce pas si on en parle kekpart car les utilisateurs ayant en majorité IE ce serait ennuyeux car ils ne seraient pas que des mots sont associés à des images...


3) Aucune idée
Je suis parti sur une base d'image de 60 ko max...

4) Certainement, oui
Lesquelles?

Il me semble que même avec le mod original, si tu changes l'orthographe du mot cela ne fonctionne plus.
Je ne vois pas trop de solution mise à part enregister les mots avec toute les orthographes possibles :/ ou passer par la censure pour que le mot soit toujours bien écrit
Censure peut être mais pas l'autre hypothèse, je l'ai testé, il me dit que l'enregistrement existe déjà.

J'ai trouvé des code JS sur le net du genre:
Code :
1
2
3
4
 
   var chaine="Ceci est un texte";
   var maj=chaine.toUpperCase();
   var min=chaine.toLowerCase();
Code :
1
2
3
4
5
   function nompropre(mot) {
      var m=mot.charAt(0).toUpperCase() +
       mot.substring(1).toLowerCase();
      return m;
   }
Il fait quoi le programme?
Il épluche tout les mots de la page et les cherche dans la base?
Dans ce cas, il suffirait de ceonvertire la page en mini avant la recherche et de ne saisir des enregistrement dans la base qu'en minuscule...
Une hypothèse...


Sinon la censure oui... J'ai pas encore testé

Merci et à pllus Oyo.

Marco
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2007, 00h13   #9
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Il ya toujours possibilité d'évolution, tout depend de ce que tu cherche

Le code que tu a trouver te permet de changer la chaîne c'est à dire soit tout en minuscule soit tout en majuscule.

Je n'ai pas trop le temps de regader plus avant
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 01h15   #10
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Citation:
Envoyé par Darkenshin
Il ya toujours possibilité d'évolution, tout depend de ce que tu cherche

Le code que tu a trouver te permet de changer la chaîne c'est à dire soit tout en minuscule soit tout en majuscule.

Je n'ai pas trop le temps de regader plus avant
Ok Oyo.
Merci du coup de main.
Je vais faire mes recherches et je te tiendrais au courant.

Marco

Si quelqu'un sait répondre à ces questions...
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 02h36   #11
Membre du Club
 
Inscription : octobre 2006
Messages : 227
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 227
Points : 50
Points : 50
Le truc me semble être le suivant:
Il faut passer le texte en majuscule avec la commande UPPER et définir tout mes acronyms en majuscule...
Vu sur le net:
Citation:
Les majuscules et les minuscules sont interprétés différemment.
Par exemple 'Vertigo' est considéré comme différent de 'vertigo' ou 'VERTIGO'.
Pensez-y en faisant des sélections ! Un moyen d'éviter les probèmes est
d'utiliser la fonctions UPPER qui met tout en majuscule. Par exemple :

select * from film where UPPER(titre) = 'VERTIGO';
Mais où placer ce code???
idamarco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 12h15   #12
Membre actif
 
Étudiant
Inscription : octobre 2005
Messages : 193
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2005
Messages : 193
Points : 176
Points : 176
Envoyer un message via MSN à Darkenshin Envoyer un message via Skype™ à Darkenshin
Salut,

Dans le code du mod tu ne peux pas utiliser la fonciton UPPER puisqu'il n'y a pas de recherche dans les sql mais via des regex dans php.

Il faudrait peu être remplacer dans bbcode.php:
$acronyms[$i]['acronym']
par
strtoupper($acronyms[$i]['acronym'])
Ceci dit je n'ai pas testé
Darkenshin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h05.


 
 
 
 
Partenaires

Hébergement Web