IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

[phpBB] Modification du MOD acronyms


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut [phpBB] 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://www.site.com/image.jpg">
    et j'ai également testé celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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.

  2. #2
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 425
    Points
    425
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\'", "''", htmlspecialchars($description))
    - Remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace("\'", "''", $description)
    A faire 2 fois dans le fichier

    - Ouvrir
    acronyms_edit_body.tpl

    - Trouver:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="description" value="{DESCRIPTION}" class="post" maxlength="255"/>
    - Remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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:

    infobulle.js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="bulle" class="infobulle"></div>
    - Ouvrir
    bbcode.php

    - Trouver:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			$repl[] = '<acronym title="' . $acronyms[$i]['description'] . '">' . $acronyms[$i]['acronym'] . '</acronym>';
    - Remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 425
    Points
    425
    Par défaut
    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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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

  7. #7
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 425
    Points
    425
    Par défaut
    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

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       var chaine="Ceci est un texte";
       var maj=chaine.toUpperCase();
       var min=chaine.toLowerCase();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 425
    Points
    425
    Par défaut
    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

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    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:
    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???

  12. #12
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 195
    Points : 425
    Points
    425
    Par défaut
    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é

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FluxBB] [punBB] Transfert de mod phpBB sous punBB
    Par fk1000 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 02/10/2006, 17h43
  2. [phpBB] Installation d'un mod
    Par baltimore dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 21/11/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo