[RC] [3.1][3.2]LMDI Glossary 1.4.10

Pour les extensions destinées à phpBB 3.1.x

Modérateur: Equipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 21 Fév 2016 à 19:18

J'ai eu ce cadre vide hier au soir et j'y ai passé pas mal de temps, sans vraiment comprendre, parce que le code qui fait le boulot (core/lexicon.php) quand on l'appelle avec un numéro (lexicon.php?id=1, par exemple), retourne bien le contenu de la fenêtre popup (voir avec CTRL U).
Sur mon forum de production, la solution a été de réinstaller tout. Mais je n'aime pas cette situation où je ne comprends pas pourquoi.

D'autre part, ce code est hérité d'un certain nombre d'intervenants qui ont entre-temps disparu. Quand on le regarde, il est clair que cela ne correspond plus aux normes de codage actuelles.

On va certainement me faire les gros yeux sur la technique de renvoi d'une chaîne de caractères (appel par jquery.lexicon.js).
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 21 Fév 2016 à 19:20

Dakin Quelia a écrit:Mais bon, ça me semble un peu bizarre de ne pas pouvoir utiliser simplement la fonction de création de groupe pour ce qui est du type de groupe. ;)


Je vais tester si ça fait une différence.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.6

Messagepar Dakin Quelia » 21 Fév 2016 à 21:23

J'ai fait un PR pour ton fichier. J'ai pas mal fait de petits changements. Maintenant, il faut tester.
____________

Allez, on continue pour l'analyse du code !

Ouvre le fichier « lmdi/gloss/core/lexicon.php ».

Cherche :
Code: Tout sélectionner
$id = $request->variable ('id', '0');

Remplace par :
Code: Tout sélectionner
$id = $request->variable ('id', 0);

Dans le cas présent, on veut un entier et non une chaîne de caractère. Les guillemets sont donc inutiles.

Cherche :
Code: Tout sélectionner
    $sql = "SELECT * FROM " . GLOSSARY_TABLE .
        " WHERE term_id = '$id' LIMIT 1; ";
    $result = $db->sql_query($sql);

Remplace par :
Code: Tout sélectionner
    $sql = "SELECT * FROM " . GLOSSARY_TABLE . 
            WHERE term_id = "
 . (int) $id;
    $result = $db->sql_query_limit($sql, 1);
J'ai mis le (int) par sécurité même s'il est déjà géré par la requête plus haut; cela forcera le type.

La fonction « sql_query_limit() » permet justement d'indiquer une limite.

Je pense également que tu devrais regarder comment est gérée la popup des smilies pour reprendre le système. Tu pourrais dès lors créer un fichier template (html) pour le lexicon et du côté php ainsi gérer les données à récupérer. Toujours du côté php, appeler ton fichier template. Et dans le fichier template du glossaire, appeler la popup comme ça :

Code: Tout sélectionner
<a href="{U_LEXICON}" onclick="popup(this.href, 750, 350, '_lexicon'); return false;">{L_LEXICON}</a>

La variable « {U_LEXICON} » serait le lien de la page « lexicon.php ». Mais du coup, elle ne devrait plus être dans le répertoire « core » mais à la racine de ton extension.

Concernant le fichier template du lexicon, tu peux simplement utiliser le simple header et le simple footer. Voici un exemple de fichier template avec l'en-tête et le pied de page :

Code: Tout sélectionner
<!-- INCLUDE simple_header.html -->

TON CODE ICI

<a href="#" onclick="window.close(); return false;">{L_CLOSE_WINDOW}</a>

<!-- INCLUDE simple_footer.html -->

Ainsi tu inclus ton tableau avec tes valeurs d'où l'utilité d'avoir les variables séparées et pas tout en un seul block.

Bon, pour le moment c'est tout ! Il y aurait encore à redire je pense sur certaines choses. Il reste encore pas mal de fichiers à voir. Mais je verrai plus tard. ;)
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21337
Enregistré le: 31 Oct 2006 à 19:33
Localisation: Belgique

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 22 Fév 2016 à 09:48

Je regarde tout ça.
Je ne sais pas ce qui s'est passé avec une de tes PR, mais elle est restée coincée et github ne veut plus de mon dépôt local. Je vais être obligé de le supprimer et de le recréer, je le crains.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.6

Messagepar Dakin Quelia » 22 Fév 2016 à 12:37

Ah mince. A cause du test travis. -_-

Désolé, en fait il n'a pas aimé la constante ! Bizarre. :?
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21337
Enregistré le: 31 Oct 2006 à 19:33
Localisation: Belgique

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 22 Fév 2016 à 12:39

soda a écrit:Mais cela reste étrange de ne pas pouvoir récupérer la clé primaire après création du groupe


En initialisant $group_id à 0 et pas à une chaîne vide, le mécanisme fonctionne.
Donc on peut écrire
Code: Tout sélectionner
group_create($group_id, $group_type, $group_name, $group_desc, $group_attributes);
// Mark group hidden
$sql = "UPDATE {$prefix}groups SET group_type = 2  WHERE group_id = $group_id";
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.6

Messagepar Dakin Quelia » 22 Fév 2016 à 12:49

Ce serait mieux comme ça :
Code: Tout sélectionner
        // Mark group hidden
        $sql = 'UPDATE ' . GROUPS_TABLE . ' SET group_type = ' . GROUP_HIDDEN . '
                WHERE group_id = '
 . (int) $group_id;

Justement la constante gère elle-même déjà le préfixe de la table. ;)

ps: J'ai un peu jeté un oeil sur le Github refait, tu n'as pas encore pris en compte les modifications que je t'ai soumises.
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21337
Enregistré le: 31 Oct 2006 à 19:33
Localisation: Belgique

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 22 Fév 2016 à 13:20

J'ai du mal à comprendre ce que tu suggères pour le mécanisme de la fenêtre popup.
Un terme du glossaire détecté par la fonction insertion_glossaire (dans listener.php) se présente sous la forme suivante dans le HTML : <acronym class="id312" title="">ocelles</acronym>
Quand on clique, du javascript appelle lexicon.php, qui retourne les éléments du bloc à afficher, qui apparaissent dans la fenêtre.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.6

Messagepar Dakin Quelia » 22 Fév 2016 à 14:12

D'accord.

Après réflexion, de l'Ajax serait plus adapté. :)
Aucun support par mail, MP ou msn.
Mes MODs: ici | Mon blogue: Mon blogue | DeviantArt: cliquez ici
Dakin Quelia
Floodeur universel
Floodeur universel
 
Messages: 21337
Enregistré le: 31 Oct 2006 à 19:33
Localisation: Belgique

Re: LMDI Glossary 1.3.6

Messagepar pierredu » 22 Fév 2016 à 21:23

En fait, si on analyse le code, on n'est pas loin d'un mécanisme Ajax. La seule différence est que, comme j'ai une fenêtre popup, je ne dispose pas des éléments me permettant de renseigner les éléments de la fenêtre en utilisant un getElementsByName.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.10

Messagepar pierredu » 25 Fév 2016 à 15:54

Sur le forum phpBB.com, un utilisateur a remarqué qu'une photo ne se chargeait pas dans la fenêtre popup et qu'il fallait lui attribuer un 0644 pour que cela fonctionne.
En recherchant dans les extensions qu font du téléchargement (notamment les drapeaux nationaux), j'ai vu une ligne qui corrigeait spécifiquement les droits d'accès (alors que normalement le code de téléchargement de phpBB le fait déjà).

Si quelqu'un a eu ce problème, pouvez-vous tester la différence avec la version que je viens de télécharger ? Merci d'avance ?

[Édition : correction orthographique.]
Modifié en dernier par pierredu le 25 Fév 2016 à 21:56, modifié 1 fois.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.10

Messagepar vinula » 25 Fév 2016 à 18:54

Top ! :D
Marche super chez moi, affiche bien les images (j'avais le problème), rapide et efficace ^^
A corriger: si la photo est grande, dans le glossaire elle est coupée, dans la popup elle dépasse.
vinula
Posteur néophyte
Posteur néophyte
 
Messages: 97
Enregistré le: 31 Déc 2015 à 19:32

Re: LMDI Glossary 1.3.10

Messagepar pierredu » 25 Fév 2016 à 21:55

Merci pour le retour d'information.

Pour que je puisse faire des essais, quelles sont les dimensions de la photo qui présente ce problème ?
Peut-être aussi la résolution de l'écran d'affichage, je ne sais pas si cela peut être pertinent.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.3.10

Messagepar vinula » 25 Fév 2016 à 23:40

bonsoir pierredu !
J'ai essayé 2 images. Une de 250x250px et une autre de 1050x1050px.
Je suis en 1600x900 en résolution, mais je pense pas que ça change quelque chose.
vinula
Posteur néophyte
Posteur néophyte
 
Messages: 97
Enregistré le: 31 Déc 2015 à 19:32

Re: LMDI Glossary 1.3.10

Messagepar pierredu » 26 Fév 2016 à 10:20

Merci pour ces données.

Il existe dans le code de téléchargement une option pour limiter la taille (en pixels) de l'image téléchargée, mais il semble que cela ne marche pas. J'avais mis comme paramètre 500 pixels sur le grand côté, mais les images plus grandes passent.

Je vais essayer de comprendre ce qui se passe.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1051
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

PrécédenteSuivante

Retourner vers Extensions en développement

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron