Portage MOD Introduciator + tutoriel

Aide aux auteurs d'extensions pour phpBB 3.2.x

Modérateur: Equipe

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

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 21 Fév 2018 à 22:47

Voici un lien vers l'extension en cours de dev :
Image
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Dehas » 17 Mar 2018 à 14:54

Ton ext est pas mal, j'en cherchais une depuis un moment, dommage que sur la page viewtopic, je me retrouve en Anglais alors que mon forum est en Français.
Dehas
Posteur néophyte
Posteur néophyte
 
Messages: 7
Enregistré le: 28 Oct 2007 à 07:55

Re: Portage MOD Introduciator + tutoriel

Messagepar galixte » 29 Mar 2018 à 21:36

Salut,

j’ai testé, cela fonctionne bravo. :)

Mais effectivement ton extension a les mêmes symptômes que d’autres extensions en développement. En effet, les langues anglaise et française sont mixées sur les pages de rédaction d’un nouveau message/sujet et peut-être sur d’autres pages (je n’ai pas tout testé).

Voir mon rapport à David Colón l’auteur d’une extension « Topic Title Colour » : https://www.phpbb.com/community/viewtop ... #p14801406.

J’ai aussi notifié ce même type de bogue à l’auteur de Satanasov l’auteur de l’extension « phpBB Gallery » : https://www.phpbb.com/customise/db/exte ... 51#p579651.

Un ticket sur le tracker de phpBB.com a été ouvert en ce sens : https://tracker.phpbb.com/browse/PHPBB3-15315. Lire les commentaires, des indications sont données, apparemment c’est le Wiki qui n’est pas à jour. Aussi, cette indication « … developers … should use later events when they need user data. ».
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10342
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Portage MOD Introduciator + tutoriel

Messagepar Sylveretour » 29 Mar 2018 à 22:13

Soir ici,

Oui galixte, il y a bien un problème de mélange des langues dans certaines extensions.
Pour ce qui concerne Topic Title Colour, c'est à cause de l'injection du fichier de langue dans la fonction modify_posting_parameters() dans event.
Il suffit de supprimer la ligne d'appel du fichier de langue et de créer un event setup
Code: Tout sélectionner
'core.user_setup' 					=> 'load_language_on_setup',

J'ai testé et cela supprime ce bug, à tester dans cette extension.
Avatar de l’utilisateur
Sylveretour
Roi des posts
Roi des posts
 
Messages: 754
Enregistré le: 21 Nov 2017 à 19:24
Localisation: West Coast

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 14 Mai 2018 à 16:36

Je n'avais pas vu que vous aviez répondu !
Mon forum est en cours de migration 3.0.x => 3.2.2 je vais en avoir besoin donc je vais avancer (quand j'aurais fini la migration de mon forum).
Toutefois, dans un des modes de fonctionnement de l'extension, on peut poster / éditer des messages alors que le sujet est en attente d'approbation : en gros le posteur peut éditer son message et les modérateurs peuvent répondrent.
Pourquoi ? Simplement, par exemple, si une présentation n'est pas correcte, pouvoir lui répondre et laisser modifier pour qu'une fois OK, on puisse la valider.
Or si une partie de ce système fonctionne correctement (même si je n'ai pas fini de tout implémenter), une partie permettant de faire des opérations sur un message en attente d'approbation n'est pas possible : il me manque au moins une callback pour détourner le fonctionnement classique de phpBB...
Il parait que l'on peut faire une demande...

Je n'ai pas tout compris concernant les mélanges anglais / français... Ni comment le résoudre...

Bon, ce qui me bloque actuellement c'est :
- user1 crée une présentation soumise à approbation
- admin la lit, veut répondre, poste son message et là phpBB répond "This topic has not been approved."
En fait, dans posting.php ligne 233n, on entre dans :
Code: Tout sélectionner
// Not able to reply to unapproved posts/topics
// TODO: add more descriptive language key
if ($auth->acl_get('m_approve', $forum_id) && ((($mode == 'reply' || $mode == 'bump') && $post_data['topic_visibility'] != ITEM_APPROVED) || ($mode == 'quote' && $post_data['post_visibility'] != ITEM_APPROVED)))
{
	trigger_error(($mode == 'reply' || $mode == 'bump') ? 'TOPIC_UNAPPROVED' : 'POST_UNAPPROVED');
}

Le but, ce serait d'ajouter une callback avant la ligne de test pour modifier $post_data et "faire croire" que c'est un message classique : quand c'est un message en attente d'approbation dans le forum de présentation mais que le celui qui répond est un modérateur ... C'est ce que je fais un peu partout et ça fonctionne bien...
Où doit-on demander une callback spécifique ? Si ça se trouve elle est déjà en cours de demande....

D'aileurs même si ça passe, fort possible qu'il en faille d'autres.... Je fais quoi ?
J'ajoute le code d'une callback pour voir et je continue le code pour voir s'il n'en manque pas d'autres ?
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Zoddo » 15 Mai 2018 à 00:06

Hello,

Réponse (très) rapide depuis le téléphone : les events (que tu appelles "callback") doivent être demandée par l'ouverture d'un ticket sur le bug tracker de phpbb.com.

Voir ce sujet pour la procédure : https://area51.phpbb.com/phpBB/viewtopi ... 26&t=47511
[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: 7029
Enregistré le: 16 Mar 2011 à 18:44
Localisation: Laval / Le Mans

Re: Portage MOD Introduciator + tutoriel

Messagepar galixte » 22 Aoû 2018 à 16:29

Salut, des nouvelles ?
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10342
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 13 Jan 2019 à 23:23

Bon, je m'y remet pour voir si la version 3.2.5 résout les problèmes d'event qu'il me manquait pour le faire fonctionner.
Je vous tient au courant...

Rien n'a changé, c'est chiant...
Il va falloir que j'aille voir : https://area51.phpbb.com/phpBB/viewtopi ... 26&t=47511
Mais j'ai pas tout compris...

Quelqu'un a déjà fait ce genre de demande ?
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Informpro » 14 Jan 2019 à 01:03

Perso non, et je sais aussi qu'avec la future venue de phpBB3.3, ils sont en train de resserer les regles pour ajouter de nouveaux events. J'ai pose la question dans le discord quand meme, on verra bien ce que ca donne.

EDIT: réponse sur le discord, comme deviné...
mrgoldy: I don't think that will be possible through an extension as it is, you'll have to create (multiple) events.
Informpro
Apprenti-posteur
Apprenti-posteur
 
Messages: 183
Enregistré le: 06 Aoû 2012 à 21:24

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 14 Jan 2019 à 03:59

Pas sur qu'il faille en créer tant que ça, je peux tenter de patcher le code de phpBB pour voir où ça m'emmène...
Peut-être pas si loin que ça....
EDIT : Il est où ton message ?

Bon, j'ai testé en ajoutant un event à moi et ça marche nickel...
Avec cet event je pourrais aller au bout de l'extension, pas la peine de faire une multitude d'events.

En gros :
Code: Tout sélectionner
/* Patch to add to posting.php (line 224) :
 * Search      : // Not able to reply to unapproved posts/topics
 * Add-Before  :  */
// Feneck91 - Patch
$vars = array(
	'post_data',
	'poll',
	'mode',
	'topic_id',
	'forum_id',
	'post_author_name',
);
extract($phpbb_dispatcher->trigger_event('core.posting_modify_databefore_patch', compact($vars)));

Avec ça je me débrouille pour savoir s'il faut ou pas autoriser à poster dans ce sujet en forçant $data['topic_visibility'] = ITEM_APPROVED.

Je ne sais même pas quel nom donner à cet event.
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Informpro » 14 Jan 2019 à 17:31

Hello, cette PR peut peut-être t'intéresser: #5222.
Informpro
Apprenti-posteur
Apprenti-posteur
 
Messages: 183
Enregistré le: 06 Aoû 2012 à 21:24

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 14 Jan 2019 à 17:45

Non c'est pas ça le problème.
Là j'ai déjà réussi à faire afficher le sujet par les modérateurs ET l'auteur du sujet en cours d"approbation.
Là, ce qui ne fonctionne pas avec cette version de phpBB c'est lorsque le modérateur (et aussi l'auteur du post) veut répondre dans le post non approuvé (l'auteur lui n'aura le droit QUE d'éditer son message) il n'a pas la droit car le post n'est pas encore approuvé => c'est ça que je veux contourner et avec l'event ça passe tranquille.
Modifié en dernier par Feneck91 le 16 Jan 2019 à 04:13, modifié 2 fois.
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 16 Jan 2019 à 00:11

Je ne comprend pas pourquoi le chargement de la langue ne fonctionne pas.
Voilà ma version de dev :
Image

Pour faire fonctionner : éditer le fichier posting.php
Avant : // Not able to reply to unapproved posts/topics
Ajouter :
Code: Tout sélectionner
// Feneck91 - Patch
$vars = array(
	'post_data',
	'poll',
	'mode',
	'topic_id',
	'forum_id',
	'post_author_name',
);
extract($phpbb_dispatcher->trigger_event('core.posting_modify_databefore_patch', compact($vars)));


Le mode qui pose problème c'est "Approbation avec édition".
Il suffit que paul créer une présentation
Pierre (modérateur) répond à la présentation encore en cours d'appobation.
Pierre (modérateur) n'a pas le droit de supprimer le premier message (si option "Autorise l’extension à vérifier la suppression du premier message d’un sujet dans le forum de présentation") est cochée... D'ailleurs même si non cochée, je devrais interdire de supprimer le 1er message d'une présentation tant qu'elle n'est pas approuvée...

Pour charger la langue je fais :
Code: Tout sélectionner
	/**
	 * Load language into user if needed.
	 *
	 * @param $user The user informations
	 */
	public function load_language_if_needed($user)
	{
		if (empty($user->lang['RETURN_FORUM']))
		{
			$user->setup(array('feneck91/introduciator' => 'introduciator'));	// Setup & Add lang
		}
		else
		{
			$user->add_lang_ext('feneck91/introduciator', 'introduciator');	// Add lang
		}
	}

Sitôt que cette fonction est appelée, toute la page est en anglais... Bizarre...
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

Re: Portage MOD Introduciator + tutoriel

Messagepar galixte » 16 Jan 2019 à 01:20

Regarde ce message https://www.phpbb.com/community/viewtop ... #p14976141. Aussi, un ticket en ce sens avait été ouvert : https://tracker.phpbb.com/browse/PHPBB3-15315 dont on peut lire un commentaire :
I agree! The WIKI should really really be updated! This is just one of other examples that can kill a Developer to do anything with phpBB (Don't know if its intended by phpBB team or not lol)

Another example is this: https://tracker.phpbb.com/browse/PHPBB3-15541

On all events we load a language like this:
3.1: $user->add_lang_ext('author/extensionname', 'extensionname');

3.2: $this->language->add_lang('extensionname', 'author/extensionname');

But on user_setup event we need to load differently from the rest:

$lang_set_ext = $event['lang_set_ext'];
$lang_set_ext[] = array( 'ext_name' => 'author/extensionname', 'lang_set' => 'extensionname', );
$event['lang_set_ext'] = $lang_set_ext;

This should appear on the Event page! On a tooltip wtv... orelse we'll have language problems like the one on the link above.

And maybe there is more events like this one that needs special treatment. And it should be present on the wiki.
Modifié en dernier par galixte le 17 Jan 2019 à 02:41, modifié 1 fois.
Communau EzCom
Image
« Traductions d’extensions & styles pour phpBB 3.1.x & 3.2.x ».
ImageListes de toutes les extensions recensées pour phpBB 3.1.x & 3.2.x.
ImageListes de tous les styles recensés pour phpBB 3.1.x & 3.2.x.

Image Tu as un forum et tu veux aussi un site web ? Regarde par ici.
Avatar de l’utilisateur
galixte
Floodeur universel
Floodeur universel
 
Messages: 10342
Enregistré le: 08 Mar 2004 à 02:40
Localisation: Sud de la France.

Re: Portage MOD Introduciator + tutoriel

Messagepar Feneck91 » 18 Jan 2019 à 16:07

Bon là je galère un poil…
Dans Template/events, j'ai créé viewtopic_body_contact_fields_after.html

Donc je sais qu'il faut que je place mon code pour ajouter les boutons de redirection vers les présentations à cet endroit.
J'ai détourné les deux events : core.viewtopic_modify_post_data et core.viewtopic_post_row_after pour remplir les informations pour le Template.

J'ai écris :
Code: Tout sélectionner
	public function on_viewtopic_post_row_after($event)
	{
		$data_introduciator = $event['user_poster_data']['datas_introduciator'];
		
		$this->template->assign_block_vars('postrow', array(
				'S_INTRODUCIATOR_DISPLAY'	=> $data_introduciator['display'],
				'U_INTRODUCIATOR_URL'		=> $data_introduciator['url'],
				'T_INTRODUCIATOR_TEXT'		=> $data_introduciator['text'],
				'T_INTRODUCIATOR_CLASS'		=> $data_introduciator['class'],
			));
	}
Mais ça n'a pas l'air de lui plaire, je perde le bloc "contact".

En plus je voulais faire un bouton tel qu'il était dans le MOD d'origine mais tout a changé maintenant.
De quel css dériver (buttons.css ?)
Comment l'inclure ?
Que définir ? Comment lier avec mes images…
Je suis tout proche de finir cette extension mais là je bloque sur de conneries... Si quelqu'un peu de donner un petit d'aide ou de conseil ça serait le bienvenue.

PS : Le code de ces parties c'est en chantier !

Merci.


Lien GitHub : https://github.com/Feneck91/Introduciator
Feneck91
Maître-posteur
Maître-posteur
 
Messages: 424
Enregistré le: 31 Déc 2007 à 13:02
Localisation: Essonne (91)

PrécédenteSuivante

Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

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