[RC] [3.2.9][3.3.x]LMDI Glossary 3.0.18

Pour les extensions destinées à phpBB 3.2.x et 3.3.x

Modérateur : Équipe

Règles du forum
A lire impérativement : Règlement de phpBB-fr.com
Répondre
Zeuhl
Apprenti-posteur
Apprenti-posteur
Messages : 121
Enregistré le : 23 avr. 2012 à 16:30

Re: [3.1][3.2]LMDI Glossary 1.4.1

Message par Zeuhl »

pierredu a écrit :
Cette extension tourne sur mon forum (voir ma signature) depuis toujours.
Même si le code peut être amélioré, je ne pense pas qu'il y ait le moindre risque à l'utiliser.

Tu me rassures. J'aime beaucoup ce que tu fais dans ton domaine, tant pour ce glossaire que pour les liens (autolinks). Je vais faire des essais sur mon forum test :wink:
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.3

Message par pierredu »

Je viens de mettre une nouvelle version sur github (1.4.3).
Une petite correction qui faisait qu'un terme n'était pas reconnu après un autre.
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.4

Message par pierredu »

Nouvelle version ce matin.
Correction d'un problème de variantes des termes.
Avatar du membre
ABDev
Programmationateur
Programmationateur
Messages : 15850
Enregistré le : 12 mai 2005 à 23:54

Re: [3.1][3.2]LMDI Glossary 1.4.4

Message par ABDev »

Je suis étonné que tu ne corriges pas ton "problème" d'optimisation.
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 du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.4

Message par pierredu »

J'ai intégré les modifications que tu as proposées.
Skouat
Resp. Traducteurs
Resp. Traducteurs
Messages : 15223
Enregistré le : 02 avr. 2008 à 20:47
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.4

Message par Skouat »

Hello,

dans acp_gloss_body.html, tu te compliques la tâche pour gérer les boutons radio (qui au passage sont mals gérés).
Pourquoi ne pas faire comme c'est fait partout sur phpBB ?

Ta version

Code : Tout sélectionner

	<dl>
		<dt><label>{L_ALLOW_FEATURE}{L_COLON}</label><br />
		<span>{L_ALLOW_FEATURE_EXPLAIN}</span></dt>
		<dd>
		<label><input type="radio" id="lmdi_gloss_acp" name="lmdi_gloss_acp"
		value="1" class="radio" {ALLOW_FEATURE_YES}/>{L_YES}</label>
		<label><input type="radio" id="lmdi_gloss_acp" name="lmdi_gloss_acp"
		value="0" class="radio" {ALLOW_FEATURE_NO}/>{L_NO}</label>
		</dd>
	</dl>
primo, tu déclares deux fois les id et il n'y a pas de déclaration de for
secundo, du côté PHP tu génère une quantité de ternaire pour rien.

Donc remplace par

Code : Tout sélectionner

    <dl>
        <dt><label for="lmdi_gloss_acp">{L_ALLOW_FEATURE}{L_COLON}</label><br /><span>{L_ALLOW_FEATURE_EXPLAIN}</span></dt>
        <dd><label><input type="radio" class="radio" id="lmdi_gloss_acp" name="lmdi_gloss_acp" value="1" <!-- IF S_ALLOW_FEATURE --> checked<!-- ENDIF -->/>{L_YES}</label>
            <label><input type="radio" class="radio" name="lmdi_gloss_acp" value="0" <!-- IF S_ALLOW_FEATURE --> checked<!-- ENDIF -->/>{L_NO}</label>
        </dd>
    </dl>
Côté PHP ca donne

Code : Tout sélectionner

        $template->assign_vars (array(
            'C_ACTION'        => $action_config,
            'S_ALLOW_FEATURE_NO'    => $config['lmdi_glossary_acp'],
 
ou

Code : Tout sélectionner

        $template->assign_vars (array(
            'C_ACTION'        => $action_config,
            'S_ALLOW_FEATURE_NO'    => $config['lmdi_glossary_acp'] ? true : false,
 
au lieu de

Code : Tout sélectionner

		$template->assign_vars (array(
			'C_ACTION'		=> $action_config,
			'ALLOW_FEATURE_NO'	=> $config['lmdi_glossary_acp'] == 0 ? 'checked="checked"' : '',
			'ALLOW_FEATURE_YES'	=> $config['lmdi_glossary_acp'] == 1 ? 'checked="checked"' : '',
En faisait ainsi tu évites l'utilisation de 4 ternaires.

Autres points... Factorise !
Rien que dans le fichier gloss_module j'ai noté au minimus deux portions de code qui sont très similaires et cela correspond à environ 80% du code du fichier.
Dans contoller\main.php
tu dois t'assurer de ne pas inclure inutilement les 3 fichiers que tu inclus

Code : Tout sélectionner

		include($this->phpbb_root_path . 'includes/functions_user.' . $this->phpEx);
		include($this->phpbb_root_path . 'includes/functions_module.' . $this->phpEx);
		include($this->phpbb_root_path . 'includes/functions_display.' . $this->phpEx);
Puis à quoi cela te servent ces inclusions de fichiers ?
Ta classe "main" ne semble ni être utilisée en tant qu'abstract, ni en tant qu'extends
Donc je ne vois pas trop l'utilité de ces inclusions.

Dans le même genre, pourquoi charger la mémoire avec des instanciations au niveau du constructeur alors que tu pourrais alléger le tout en les instanciant au niveau du switch / case
Vu que c'est long et fastidieux de faire le topo ici, voici ton fichier modifié avec ce dont je parle :https://gist.github.com/Skouat/4fc7f7bb ... d69074f6d4
Note : ce n'est pas la version finale du fichier, ce que je suggère peux encore être optimisé/factorisé.

Les variables suivantes sont déclarées mais ne sont jamais utilisées.

Code : Tout sélectionner

		$action = $this->request->variable('action', '');
		$code   = $this->request->variable('code', '-1');
donc à quoi bon les déclarer ?

Dans core/glossaire.php

Je ne vois pas trop l'intéret de déclarer des clés de langues dans des variables qui ne sont utilisées qu'une seule fois dans l'ensemble du code.

Code : Tout sélectionner

		$str_terme  = $this->user->lang['GLOSS_ED_TERM'];
		$str_defin  = $this->user->lang['GLOSS_ED_DEF'];
		$str_illus  = $this->user->lang['GLOSS_ED_PICT'];

		$corps  = '<table class="deg"><tr class="deg">';
		$corps .= '<th class="deg0">' . $str_terme . '</th>';
		$corps .= '<th class="deg0">' . $str_defin . '</th>';
		$corps .= '<th class="deg1">' . $str_illus . '</th></tr>';
A remplacer simplement par

Code : Tout sélectionner

		$corps  = '<table class="deg"><tr class="deg">';
		$corps .= '<th class="deg0">' . $this->user->lang['GLOSS_ED_TERM'] . '</th>';
		$corps .= '<th class="deg0">' . $this->user->lang['GLOSS_ED_DEF'] . '</th>';
		$corps .= '<th class="deg1">' . $this->user->lang['GLOSS_ED_PICT'] . '</th></tr>';
Tu es trop linéaire dans ton code.
On a l'impression que tu développes un programme en language BASIC :shock:

Dans core/glossaire.php

tu déclares

Code : Tout sélectionner

		$abc_links = "";
		$illustration = "";
		$corps = "";
		$biblio = "";
Et tu n'appelles ces variables qu'à ce moment-là

Code : Tout sélectionner

		$this->template->assign_vars (array (
			'TITRE'			=> $titre,
			'ABC'			=> $abc_links,
			'ILLUST'		=> $illustration,
			'CORPS'			=> $corps,
			'BIBLIO'		=> $biblio,
			));
Entre la déclaration et l'utilisation des variables, ces dernières ne subissent aucune modification.
Et au passage, inutile d'inititier la variable $corps, vu qu'elle l'est à la ligne 92

Donc autant écrire :

Code : Tout sélectionner

		$this->template->assign_vars (array (
			'TITRE'			=> $titre,
			'ABC'			=> '',
			'ILLUST'		=> '',
			'CORPS'			=> $corps,
			'BIBLIO'		=> '',
			));

Bon je m'arrête ici car je n'en suis qu'au 4ème fichier analysé et j'ai déjà écrit un roman. :?

Revois ton code, essaies de factoriser et de supprimer ce qui ne sert à rien.
Fait de la Programation Orientée Objet.
Je pense t'avoir déjà suggéré cela, si ce n'est pas la cas alors je te le suggère maintenant… passe ton code à la moulinette de "Scrutinizer-ci".
Ce n'est aucunement une solution miracle, mais perso ca ma permis de déceler pas mal d'erreurs de code.
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.4

Message par pierredu »

Eh oui, j'ai appris à coder en Basic et en Assembleur...
Je me souviens encore de l'émerveillement devant le Turbo Pascal, puis le Turbo C.
Alors, on va garder tout cela comme vestige, comme relique d'une période passée.
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 1.4.10

Message par pierredu »

J'ai installé une nouvelle version (1.4.10) sur github.

Changements :
- Fermeture de la fenêtre surgissante d'un clic sur la fenêtre (n'importe où) quand il n'y a pas de lien externe dans la rubrique de glossaire affichée. Sinon, fermeture uniquement sur la case de fermeture.
- Événement utilisé sous 3.2.0 : retour à core.viewtopic_post_rowset_data pour éviter de devoir traiter tous les éléments de texte affichés (et pas seulement les messages) et pour éviter d'accrocher sur les termes utilisés dans le stylage des messages (par exemple, style est un terme technique en entomologie).
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 2.1.2

Message par pierredu »

Je viens de placer une version 2.1.2 sur github.
Correction d'un problème syntaxique dans un fichier de migration.
Correction d'une erreur logique dans la production des données placées dans le cache.
Je pense que, ce coup-ci, mon extension va passer les contrôles de Paul et consorts.
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.1][3.2]LMDI Glossary 2.1.2

Message par pierredu »

Je m'aperçois que je n'ai pas suivi ici le développement de cette extension.
Nous en sommes à la version 3.0.18 (version disponible sur github, voir le premier message de ce sujet).
Actuellement, l'évolution vers les versions plus récentes de MySQL et de PHP nécessite un peu de travail.

Cependant, il faut noter que l'extension fonctionne depuis des mois et des années sur mon forum.

Donc, je n'attends pas de grosses surprises.
Skouat
Resp. Traducteurs
Resp. Traducteurs
Messages : 15223
Enregistré le : 02 avr. 2008 à 20:47
Contact :

Re: [3.2.9][3.3.x]LMDI Glossary 3.0.18

Message par Skouat »

Hello,

Tu l'as soumise chez .com ?
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.2.9][3.3.x]LMDI Glossary 3.0.18

Message par pierredu »

Oui, mais je ne sais plus où j'en suis.
Je voudrais bien que cette extension passe leur examen (parce que c'est un gros gabarit), mais j'ai été détourné de mon objectif par le covid et bien d'autres choses. Après, il est difficile de revenir en n'ayant pas répondu correctement (ou du moins, en n'ayant pas répondu tout court) aux différentes observations.
Avatar du membre
stone23
Maître-posteur
Maître-posteur
Messages : 467
Enregistré le : 31 mai 2008 à 13:50
Localisation : Entre la chaise et le clavier
Contact :

Re: [3.2.9][3.3.x]LMDI Glossary 3.0.18

Message par stone23 »

Salut,
Ben... En tout cas, sur phpBB.com, tu as bien répondu aux miennes et apparemment elle fonctionne pas mal.
Mon forum
Version forum : 3.3.4
Version php : 8.0.3
Avatar du membre
Auteur
pierredu
Resp. Extensions
Resp. Extensions
Messages : 1461
Enregistré le : 29 mai 2011 à 06:49
Localisation : Paris
Contact :

Re: [3.2.9][3.3.x]LMDI Glossary 3.0.18

Message par pierredu »

C'est une grosse extension. Pour moi, c'était un développement absolument indispensable pour mon forum lors du passage de 3.0 à 3.1 et j'y ai appris les quelques choses que je sais sur le développement des extensions.
Skouat
Resp. Traducteurs
Resp. Traducteurs
Messages : 15223
Enregistré le : 02 avr. 2008 à 20:47
Contact :

Re: [3.2.9][3.3.x]LMDI Glossary 3.0.18

Message par Skouat »

Après si tu veux un retour d'analyse, tu peux soumettre sur -fr.com (même si l'analyse de .com sera à mon avis plus pertinente) ;)
Répondre

Retourner vers « Extensions en développement »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités