[Beta] LMDI Multilinks 2.0.0

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
Partager sur FacebookPartager sur TwitterPartager sur Google+

[Beta] LMDI Multilinks 2.0.0

Messagepar pierredu » 24 Jan 2017 à 12:53

  • Titre : LMDI Mulitlinks
  • Description : Extension offrant la possibilité de créer dans le panneau d'administration des liens qui s'intègrent dans la barre de navigation.
  • Version : 2.0.0
  • Auteur : Pierre Duhem

Copie d'écran :
Image

Je me suis mis au travail sur l'extension permettant d'ajouter des liens multiples à la barre de navigation, mais à partir du panneau d'administration.

Les premiers éléments sont en place.
Un dépôt a été créé sur github : https://github.com/pierrdu/lmdi_multilinks

Pour le moment, je bute sur une sottise : mon formulaire de configuration dans le panneau d'administration est refusé (formulaire invalide). J'ai pourtant bien l'élément S_FORM_TOKEN qui est à la fin du formulaire, comme je l'ai toujours fait dans le même genre de situation.
Maintenant, je commence à avoir les yeux qui me piquent.

Est-ce que quelqu'un peut regarder acp/multilinks_module.php et adm/styles/acp_multilinks_body.php avec des yeux frais ?
Merci d'avance.

P.S.
Je crois que j'ai compris.
Dans une page (par exemple dans le panneau d'administration) comportant un ou plusieurs formulaires, qui aboutissent tous à la page acp/*module.php, fonction main, l'appel de la fonction check_form_key, alors même que chaque formulaire possède les éléments cachés <input type="hidden" name="creation_time" value="1485273039" /> et <input type="hidden" name="form_token" value="d2cf14747f1f2f467f12515ec7790ec8ac2ad08e" /> échoue si l'appel de la fonction main n'a pas été déclenché par un bouton submit. Ce qui est par exemple le cas si l'on clique sur le bouton vert d'édition (engrenage) ou sur le bouton de suppression (croix rouge).

Moralité, le mécanisme de contrôle du formulaire d'envoi, qui est destiné à éviter les formulaires bidons qui ne seraient pas envoyés par le forum, et dont on dit qu'il sert notamment pour protéger le forum des opérations non autorisées sur la base de données, ne fonctionne pas sur les opérations qui sont exécutées dans l'interface utilisateur par du code ajax mais que l'on doit exécuter réellement dans la base.

Bon, ben yapluka.

PPS
J'ai installé une version 1.0.3 sur github.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Skouat » 24 Jan 2017 à 22:14

Salut,

Dans acp/multilinks_module.php

  • Vire les variables globales qui ne sont pas utilisées
    • $db
    • $cache
    • $config
    • $phpbb
  • ne déclare que $phpbb_container en tant que variable globale, le reste du instancie via $phpbb_container->get('la_variable')
  • $user->lang['LANG_KEY'] n'est plus compatible 3.2 et $user->lang('LANG_KEY') sont obsolètes.
    Donc préfère l'utilisation de la nouvelle classe $language
    A lire : https://www.phpbb.com/community/viewtop ... &t=2349131


Concernant ton problème de formulaire, c'est dû au fait que tu vérifies la validité du formulaire dans n'importe quelle situation, alors qu'il doit être vérifié lors de l'action "submit".

Voici le fichier corrigé : https://gist.github.com/Skouat/4e2295af ... 5cfd876068
Et le différenciel entre ta version et mes corrections : https://gist.github.com/Skouat/4e2295af ... /revisions
(j'ai fait aussi une correction des espacements et indentations)




Au niveau du fichier html associé, recherche name="ml_blank" remplace par id="ml_blank"



Dans event/listener.php

Remplacer user->lang[''] par language->lang('')



Dans les fichiers de langue
target=\'_blank\' à remplacer par target="_blank"
et \'phpBB\' par « phpBB » (en FR) et “phpBB” (en EN)



Dans composer.json
"php": ">=5.3.3", <-- c'est 5.4 le mini pour phpBB 3.2
"phpbb/phpbb": ">=3.1.0" <-- 3.2.0 ?

A ce jour phpBB n'est pas en mesure de s'appuyer sur le contenu du fichier composer.json pour prendre en compte les prérequis. Donc il faut utiliser le fichier ext.php et y créer une méthode nommée is_enableable()
voir exemple : https://github.com/Skouat/ext_paypal_do ... hp#L35-L40
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13218
Enregistré le: 02 Avr 2008 à 20:47

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 24 Jan 2017 à 22:28

Merci pour tout ce que tu as fait.
Je vais intégrer ça demain.

Pour l'aspect 'submit', c'est effectivement la conclusion à laquelle j'étais arrivé.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Skouat » 24 Jan 2017 à 22:52

N'hésites pas à faire analyser ton code par des outils tel que scrutinizer ou codeclimate.
C'est gratuit et ca s'intègre avec Github.

N'oublie pas aussi, que phpBB à un guide de bonne pratique
https://area51.phpbb.com/docs/dev/32x/index.html
Et que l'ensemble du code peut être mis en forme selon la base énoncée ici
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13218
Enregistré le: 02 Avr 2008 à 20:47

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 25 Jan 2017 à 10:05

Merci encore pour tes remarques.

L'extension est compatible 3.1.x et 3.2.x, donc je ne peux pas changer de mécanisme de gestion des langues.
D'une manière générale, le code était largement à l'état d'ébauche et certaines expressions n'était pas encore codées, même si la place était réservée.

Pour le contrôle du code, je ne connais pas ces outils. J'utilise travis cl au moment du téléchargement du code sur github.

Je viens de télécharger une version 1.0.4 sur github.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Manard » 25 Jan 2017 à 10:29

Bonjour Pierre,

Je viens de tester ta dernière version, ça plante mon forum de test avec cette erreur :

Code: Tout sélectionner
Catchable fatal error: Argument 3 passed to lmdi\multilinks\event\listener::__construct() must be an instance of phpbb\config\db_text, instance of phpbb\template\twig\twig given in C:\wamp\www\phpBB3-2-test\ext\lmdi\multilinks\event\listener.php on line 30


J'ai remarqué que tu as laissé tes liens externes dans tes deux fichiers de style overall_header_navigation_append.html et overall_header_navigation_prepend.html

Merci pour cette nouvelle extension et bonne résolution de cette erreur

Bernard
Manard
Roi des posts
Roi des posts
 
Messages: 897
Enregistré le: 31 Mar 2012 à 09:24

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 25 Jan 2017 à 11:51

Merci pour le signalement.
C'est corrigé (un problème de mise à jour du dossier où je conserve les versions téléchargées sur github).
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Manard » 25 Jan 2017 à 14:46

Bonjour Pierre,

Je viens de télécharger la dernière version, il n'y a plus de plantage, par contre tu as créé deux liens "test" que l'on ne peut n'y supprimer, ni éditer depuis la "roue dentée", J'ai pu en créer un nouveau qui s'est inscrit en dessous les deux tiens, mais pareil je ne peux l'éditer ou le supprimer, il est opérationnel, j'ouvre bien la page déclarée dans ce lien.

Bonne après-midi

Bernard
Manard
Roi des posts
Roi des posts
 
Messages: 897
Enregistré le: 31 Mar 2012 à 09:24

Re: LMDI Multilinks 1.0.0

Messagepar Skouat » 25 Jan 2017 à 17:49

Bonjour Bernard,

Le code de l'extension de Pierre contient du code de test. d'où les diverses erreurs.
L'extension est en status alpha et porte bien le status

@Pierre : tu ne devrais pas utiliser la même branche Github pour la partie dev/test et la partie code que tu publies.
La branche master doit être la branch qui contient le code le plus propre possible.
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13218
Enregistré le: 02 Avr 2008 à 20:47

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 26 Jan 2017 à 13:19

Le code de github est du code à l'essai.
On en est à alpha, rien de plus.

@Bernard :
Je ne comprends pas d'où peuvent venir ces éléments. Historiquement, ce sont des fichiers d'une autre extension.
Essaie de désinstaller l'extension et de supprimer les données, puis de réinstaller.
Vérifie la date des deux fichiers *.html dans styles/all, etc.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Skouat » 26 Jan 2017 à 13:28

pierredu a écrit:L'extension est compatible 3.1.x et 3.2.x, donc je ne peux pas changer de mécanisme de gestion des langues.

D'un autre côté une extension en alpha, qui est encore en état embryonnaire, autant ne pas restreindre le code pour une compatibilité 3.1 et la rendre full compatible 3.2.

Après as you want... Ce n'est que mon point de vue.

++
Mes MODS

Ultima-World Hébergé par phpBB-Services
Code parrainage : 1241646554
Skouat
Traducteur
Traducteur
 
Messages: 13218
Enregistré le: 02 Avr 2008 à 20:47

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 26 Jan 2017 à 14:16

C'est une extension de confort, parce que la solution existe déjà dans mon autre extension (links) et dans d'autres exemples de code. Donc il vaut mieux la laisser accessible au plus grand nombre. On ne sait pas à quelle vitesse va se faire la transition de 3.1.x à 3.2.x.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Manard » 26 Jan 2017 à 14:39

Bonjour Pierre,

As-tu mis ce post pour que nous testions et te remontions nos essais ?

Concernant mes tests précédents je n'avais pas effacé les données avant la réactivation de ta dernière version, d'où des restes de liens.

Là je peux créer un nouveau lien, mais une fois créé je ne peux ni l'éditer ni le supprimer. Quand je clique sur la croix de suppression, la ligne s'efface, mais si je réactualise la page, le lien est toujours présent sur l'onglet de personnalisation ainsi que dans la barre de navigation

Bonne après-midi

Bernard
Manard
Roi des posts
Roi des posts
 
Messages: 897
Enregistré le: 31 Mar 2012 à 09:24

Re: LMDI Multilinks 1.0.0

Messagepar pierredu » 26 Jan 2017 à 14:56

Je vais regarder ce qui se passe.
Il s'agissait d'une situation où il y avait un lien unique ?
Je n'ai pas testé ce cas particulier.
Avatar de l’utilisateur
pierredu
Extensions
Extensions
 
Messages: 894
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Multilinks 1.0.0

Messagepar Manard » 26 Jan 2017 à 16:18

Bonjour Pierre,

Ça le fait quelque soit le nombre de liens créés, là j'en ai mis deux, le comportement est identique. Il n'y a pas de fenêtre qui demande la confirmation de la suppression, est-ce prévu ?

Je te remercie pour ce développement

Bernard
Manard
Roi des posts
Roi des posts
 
Messages: 897
Enregistré le: 31 Mar 2012 à 09:24

Suivante

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é