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

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

Messagepar pierredu » 26 Nov 2015 à 18:02


Dépôt sur github : https://github.com/pierrdu/lmdi_gloss
Archive zippée : https://github.com/pierrdu/lmdi_gloss/archive/master.zip

J'avais déjà travaillé quelques jours/semaines au début de l'année sur ce projet, qui est le portage sous 3.1.x d'un MOD appelé Lexicon/Acronym qui a eu une histoire mouvementée, mais qui constitue un outil très intéressant pour les forums à caractère technique. L'extension comporte trois volets :

1) Un affichage statique qui affiche le contenu de la table phpbb3_glossary (voir le fichier lisez.moi pour la structure de la table et deux exemples d'enregistrements bidons). Tous les termes du glossaire sont affichés, avec éventuellement un lien vers une page de visualisation quand l'enregistrement possède une illustration.

2) Une fonction d'édition qui est réservée aux administrateurs du site et qui permet de modifier les enregistrements et d'en créer de nouveaux. Rien de bien révolutionnaire.

3) Une fonction de balisage dans les sujets du forum. Quand un terme est reconnu comme faisant partie du glossaire, il est affiché avec un style différent et un curseur en point d'interrogation. Un clic affiche une fenêtre surgissante avec le terme, sa définition et éventuellement son illustration. À noter que si l'on ne donne pas d'illustration, le code affiche une image blanche d'un pixel.

Installation :
L'installation principale est celle d'une extension, donc je ne commente pas.

Problèmes :
Néant pour le moment.

Sinon, je suis naturellement preneur de vos remarques, suggestions et critiques.
Merci d'avance.
Modifié en dernier par pierredu le 22 Mar 2016 à 14:58, modifié 26 fois.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.0.0

Messagepar Zoddo » 28 Nov 2015 à 20:21

Salut,

Les pages ne doivent pas être appelés directement depuis le dossier ext. Pour créer de nouvelles pages, il faut utiliser le système de contrôleur (phpBB va porter petit à petit toutes ses pages vers ce système).

Pour un exemple, regarde ces deux fichiers de l'extension boardrules (ici & ici).
Le principe est plutôt simple. On indique dans le fichier routing.yml une URI et le nom d'une méthode à appeler pour charger la page (sous la forme service:methodservice est un service défini dans services.yml).

La méthode du contrôleur doit alors retourner le résultat de return $this->helper->render('template.html', 'translated_page_title');.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6313
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: LMDI Glossary 1.0.0

Messagepar ABDev » 28 Nov 2015 à 20:49

Bonsoir.
Pas très respectueux des conventions PHP et des coding guidelines de phpBB ce code ...
Pour se payer le luxe d'être feignant, il faut sans cesse faire travailler ses méninges ! (Korben)

On clique sur le bouton Répondre plutôt que le bouton Citer ...
Un problème avec une extension ? Pas de lien vers celle-ci ? Sujet ignoré !
Avatar de l’utilisateur
ABDev
Programmationateur
Programmationateur
 
Messages: 15695
Enregistré le: 12 Mai 2005 à 23:54

Re: LMDI Glossary 1.0.0

Messagepar pierredu » 28 Nov 2015 à 22:05

Merci pour vos remarques.
Je m'y plonge.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.0.0

Messagepar pierredu » 29 Nov 2015 à 22:28

Bonsoir,

Après une journée studieuse sur cette extension, sur la base des remarques que vous avez bien voulu formuler, je baisse les bras.
Effectivement, le schéma indiqué par Zoddo fonctionne dans le principe.

Sauf que :

La page principale (glossaire.php + glossaire.html) comporte des liens vers une page d'administration (glossedit.php + glossaire.html) ainsi que vers des pages d'affichage (glossview.php + glossaire.html) avec retour par un javascript (javascript:history.go(-1);).

La page générale d'administration (réservée aux administrateurs ou éventuellement à un autre groupe d'utilisateurs, cela reste à définir quand j'aurai bien compris les permissions) pointe vers des pages d'édition/création individuelles (glossedit.php + glossaire.html) qui ramènent à la page générale par des ancres sur l'initiale (quand on supprime) ou vers la rubrique (quand on édite ou on crée).

Pour ce qu'il me semble, le mécanisme
Code: Tout sélectionner
$this->helper->render('template.html', 'translated_page_title')
ne permet pas de placer des ancres sur la ligne de commande.

Bref, je me sens d'humeur à prendre le maquis...
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.0.0

Messagepar Zoddo » 29 Nov 2015 à 22:53

Code: Tout sélectionner
$this->helper->render('template.html', 'translated_page_title'); 
est équivalent à
Code: Tout sélectionner
page_header('translated_page_title');
$template->set_filenames (array (
    'body' => 'template.html',
));
page_footer(); 


Il n'y a donc aucune notion d'ancre là-dedans. Les ancres sont dans les liens que tu génères.
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6313
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: LMDI Glossary 1.0.0

Messagepar pierredu » 30 Nov 2015 à 09:58

Ben oui, mais j'ai besoin de mettre des ancres...
Quand mon formulaire envoie des données, je les traite dans une partie du fichier php et je renvoie par un header(location:...) sur le code d'affichage avec une ancre.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.0.0

Messagepar Zoddo » 30 Nov 2015 à 17:55

Dans ce cas, il suffit d'exécuter la redirection à l'aide la fonction redirect() à la place du return $this->...
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6313
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: LMDI Glossary 1.1.1

Messagepar pierredu » 06 Déc 2015 à 11:49

Bonjour,

J'ai tout réécrit à partir d'un modèle que l'on m'a fourni et dans lequel j'ai réussi à retrouver mes marques.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.1.1

Messagepar Zoddo » 06 Déc 2015 à 12:49

l'exit après l'appel à redirect() n'est pas nécessaire, c'est déjà fait en interne dans la fonction :)
[Doc] Installer une extension - [Extension] Post Models - [Recrutement] Équipe des Extensions
Si vous considérez votre requête comme résolue, merci d'ajouter l'attribut de sujet [Réglé]
Zoddo
Equipe site
Equipe site
 
Messages: 6313
Enregistré le: 16 Mar 2011 à 18:44
Localisation: /root/

Re: LMDI Glossary 1.1.1

Messagepar pierredu » 06 Déc 2015 à 13:03

OK, merci, je vais corriger.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.1.6

Messagepar pierredu » 15 Déc 2015 à 16:35

Une version 1.1.6 a été téléchargée sur le dépôt de github.
Modifications :
Résolution du problème d'interclassement de la table, dans le fichier de migration.
Purge du cache après les opérations d'édition/création de nouvelles rubriques.
Cela fait deux semaines que ça tourne sur mon forum, je n'attends plus de surprises.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.2.0

Messagepar pierredu » 17 Déc 2015 à 18:52

Nouvelle version installée sur le dépôt sur github.
Changements : création d'un groupe chargé de la gestion du glossaire. Codage de permissions pour les administrateurs et pour les membres de ce groupe (à définir par les administrateurs).
Bien comprendre les rôles, les permissions, les groupes, etc. n'est pas très facile.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.2.4

Messagepar pierredu » 23 Déc 2015 à 11:57

J'ai pas mal travaillé sur les rôles/modèles, avec un rôle d'administrateur et un rôle d'éditeur, puis création optionnelle d'un groupe de chacune des catégories. Cela apparaît plus logique.

Cependant, il me reste un problème : après création du groupe, je ne parviens pas à lui attribuer le rôle/modèle.

J'ai trouvé du code à https://www.phpbb.com/support/docs/en/3.1/kb/article/permission-system-overview-for-mod-authors-part-two/, mais je ne suis pas parvenu à le faire fonctionner.

Quelqu'un a déjà fait ça (attribuer un rôle à un groupe) ?
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

Re: LMDI Glossary 1.2.4

Messagepar pierredu » 28 Déc 2015 à 09:54

Bonjour,

J'ai trouvé la solution, qui consiste à écrire une ligne dans la table acl_groups. Voir pour plus d'explications le sujet https://www.phpbb.com/community/viewtopic.php?f=461&t=2350061.

Par ailleurs, j'ai rajouté le paramétrage de la langue et le téléchargement des images d'illustration.

Le code a étémis à jour sur github.
Avatar de l’utilisateur
pierredu
Resp. Extensions
Resp. Extensions
 
Messages: 1033
Enregistré le: 29 Mai 2011 à 06:49
Localisation: Paris

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é