Page 1 sur 2
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : lun. 6 juin 2016 17:31
par Kevicar
Hello,
Connaissez-vous une extension qui permet de cacher la réponse dans un post si un membre n'a pas répondu à la question ?
Je voudrais poster des énigmes sur un forum et que les membres puissent voir la réponse uniquement lorsqu'ils ont répondu !
Ou alors un autre système pour que tout le monde puisse participer sans voir les réponses à l'avance ..
Merci pour votre aide
Message modifié par : « Raphaël ».
Raison : Harmonisation du titre et ajout d’une icône de sujet.
RECHERCHE : Masquer la réponse dans un message
Posté : mar. 7 juin 2016 04:54
par Kevicar
J'ai trouvé cela [ [RC] Hide BBcode ] :
https://www.phpbb.com/community/viewtop ... &t=2279486Encore en développement et des problème apparemment de compatibilité avec certaines extensions, mais je pense que je devrais pouvoir faire quelque chose avec !
RECHERCHE : Masquer la réponse dans un message
Posté : mar. 7 juin 2016 11:17
par Kevicar
Le système fonctionne pour ce que je veux faire ... c'est a dire, cacher la réponse dans le premier post tant que le membre n'a pas répondu !
Mais ensuite, il y a t'il une extension qui permette de cacher toutes les réponses tant que les membres n'ont pas participé au sujet ??? Car lorsque un membre à participé ... on voit sa réponse en dessous ... et pour les autres membres, il n y a plus d intérêt !
Merci pour votre aide.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : jeu. 9 juin 2016 12:49
par Raphaël
Salut Kevicar,
quand tu dis : « c'est a dire, cacher la réponse dans le premier post tant que le membre n'a pas répondu ! », la formulation n’est pas bonne ce n’est pas une réponse mais un message si il s’agit du premier post/message du sujet. J’ai modifié le titre du sujet en conséquence.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : sam. 11 juin 2016 16:32
par Kevicar
Oui c est un double problème avec une double question en fait !
Le premier problème est résolu car il cache bien la réponse dans le premier post.
Maintenant, je cherche à cacher toutes les réponses du sujet aux membres qui n'ont pas répondu.De façon a ne plus voir les réponses des membres et ainsi résoudre les énigmes facilement.
TUTO : Masquer le contenu du message à certains utilisateurs | BBCode HIDE for phpBB 3.1.x & 3.2.x
Posté : dim. 24 sept. 2017 16:50
par Raphaël
Salut,
le BBCode HIDE
n’étant plus fonctionnel sous phpBB 3.2.x, voici une solution fonctionnelle sous phpBB 3.1.x & 3.2.x pour disposer de la même fonctionnalité. La démarche consiste à modifier le comportement du BBCode HIDDEN
provenant de l’extension présentée sur le viewtopic.php?f=11&t=49 :
► Pour interdire la lecture du message mis entre les balises du BBCode HIDDEN
aux robots, aux invités (comportement par défaut de ce BBCode) plus à certains groupes :
Ouvrir : ./ext/vse/abbc3/core/bbcodes_parser.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
if ($this->user->data['user_id'] == ANONYMOUS || $this->user->data['is_bot'])
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
Remplacer par :
remplacer les lignes de code précédemment trouvées par celles ci-dessous. Code : Tout sélectionner
if ($this->user->data['user_id'] == ANONYMOUS || $this->user->data['is_bot'] || $this->user->data['group_id'] == 5 || $this->user->data['group_id'] == 4)
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
Ainsi, les invités, les robots ainsi que les membres des groupes ayant les ID 4
et 5
ne pourront pas lire le message mis entre les balises du BBCode HIDDEN
. Cependant, tous les membres des autres groupes (n’ayant pas les ID 4
et 5
) pourront lire le message mis entre les balises du BBCode HIDDEN
.► Pour interdire la lecture du message mis entre les balises du BBCode HIDDEN
uniquement à certains groupes :Ouvrir : ./ext/vse/abbc3/core/bbcodes_parser.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
if ($this->user->data['user_id'] == ANONYMOUS || $this->user->data['is_bot'])
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
Remplacer par :
remplacer les lignes de code précédemment trouvées par celles ci-dessous. Code : Tout sélectionner
if ($this->user->data['group_id'] == 5 || $this->user->data['group_id'] == 4)
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
Ainsi, les membres des groupes ayant les ID 4
et 5
ne pourront pas lire le message mis entre les balises du BBCode HIDDEN
. Cependant, les robots, les invités ainsi que les membres des tous les autres groupes (n’ayant pas les ID 4
et 5
) pourront lire le message mis entre les balises du BBCode HIDDEN
.► Pour autoriser la lecture du message mis entre les balises du BBCode HIDDEN
uniquement à certains groupes :Ouvrir : ./ext/vse/abbc3/core/bbcodes_parser.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
if ($this->user->data['user_id'] == ANONYMOUS || $this->user->data['is_bot'])
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
Remplacer par :
remplacer les lignes de code précédemment trouvées par celles ci-dessous. Code : Tout sélectionner
if ($this->user->data['group_id'] == 5 || $this->user->data['group_id'] == 4)
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_OFF'),
$matches[1],
'hidebox_visible',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN_EXPLAIN'),
'hidebox_hidden',
);
}
Ainsi, les membres des groupes ayant les ID 4
et 5
pourront lire le message mis entre les balises du BBCode HIDDEN
. Cependant, les robots, les invités ainsi que les membres des tous les autres groupes (n’ayant pas les ID 4
et 5
) ne pourront pas lire le message mis entre les balises du BBCode HIDDEN
.
Pour connaitre l’ID d’un groupe :
- se rendre dans le PCA ;
- dans l’onglet « MEMBRES ET GROUPES » ;
- sur la page « Gérer les groupes » ;
- survoler avec la souris le bouton « Paramètres » correspondant à un groupe ;
- le lien se termine par
g=3
où 3
est l’ID du groupe dans cet exemple.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : sam. 21 oct. 2017 18:02
par Raphaël
Salut,
pour disposer de deux BBCodes HIDDEN
(provenant de l’extension « Advanced BBCode Box »), pour lesquels, par exemple, le premier ayant le comportement par défaut de l’extension et le second ayant le comportement de l’une des possibilités exposées dans le précédent viewtopic.php?p=3804#p3804, suivre la démarche suivante.
► Au préalable il est nécessaire d’effectuer des modifications avant d’installer l’extension présentée sur le viewtopic.php?f=11&t=49 (test réalisé sur la version 3.1.4). Dans cet exemple, deux BBCodes HIDDEN
seront créés sur le forum par l’extension, l’un nommé HIDDEN
pour masquer le message aux invités & robots et un autre nommé HIDDEN2
pour autoriser la lecture uniquement à certains groupes de membres.- si l’extension « Advanced BBCode Box 3 » est installée (quelle soit activée ou désactivée) :
Désactiver : l’extension (si activée)
Supprimer : ses fichiers sur son espace FTP
Poursuivre : à l’étape 2.a.
- si l’extension « Advanced BBCode Box 3 » n’est pas installée (ni activée, ni désactivée), passer à l’étape suivante :
- Télécharger une archive originale de cette extension ;
Ouvrir : ./ext/vse/abbc3/core/bbcodes_parser.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière.Code : Tout sélectionner
$text = preg_replace_callback('#<!-- ABBC3_BBCODE_HIDDEN -->(.*?)<!-- ABBC3_BBCODE_HIDDEN -->#s', array($this, 'hidden_pass'), $text);
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
$text = preg_replace_callback('#<!-- ABBC3_BBCODE_HIDDEN2 -->(.*?)<!-- ABBC3_BBCODE_HIDDEN2 -->#s', array($this, 'hidden_pass2'), $text);
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière.Code : Tout sélectionner
return vsprintf('<div class="hidebox %3$s"><div class="hidebox_title %3$s">%1$s</div><div class="%3$s">%2$s</div></div>', $replacements);
}
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
/**
* Convert Hidden BBCode into its final appearance
*
* @param array $matches
* @return string HTML render of hidden bbcode
* @access protected
*/
protected function hidden_pass2($matches)
{
if ($this->user->data['group_id'] == 4 || $this->user->data['group_id'] == 5)
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN2_OFF'),
$matches[1],
'hidebox_visible',
);
}
else
{
$replacements = array(
$this->user->lang('ABBC3_HIDDEN_ON'),
$this->user->lang('ABBC3_HIDDEN2_EXPLAIN'),
'hidebox_hidden',
);
}
return vsprintf('<div class="hidebox %3$s"><div class="hidebox_title %3$s">%1$s</div><div class="%3$s">%2$s</div></div>', $replacements);
}
Ouvrir : ./ext/vse/abbc3/language/fr/abbc3.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
'ABBC3_HIDDEN_OFF' => 'Contenu caché (accès aux membres seulement)',
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
'ABBC3_HIDDEN2_OFF' => 'Contenu caché (accès à certains membres seulement)',
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
'ABBC3_HIDDEN_EXPLAIN' => 'Vous devez être inscrit et connecté sur ce forum pour voir le contenu caché.',
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
'ABBC3_HIDDEN2_EXPLAIN' => 'Vous devez être inscrit, connecté sur ce forum et faire partie de certains groupes pour voir le contenu caché.',
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
'ABBC3_HIDDEN_HELPLINE' => 'Masquer aux invités : [hidden]text[/hidden]',
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
'ABBC3_HIDDEN2_HELPLINE' => 'Masquer à tous sauf certains groupes : [hidden2]text[/hidden2]',
Ouvrir : ./ext/vse/abbc3/migrations/v310_m4_install_data.php
Trouver :
peut correspondre à un résultat partiel dans une ligne de code ou à une ligne de code entière. Code : Tout sélectionner
'bbcode_tpl' => '<!-- ABBC3_BBCODE_HIDDEN -->{TEXT}<!-- ABBC3_BBCODE_HIDDEN -->',
),
Ajouter après :
ajouter ce code sur une nouvelle ligne, située après les lignes de code précédemment trouvées. Code : Tout sélectionner
'hidden2' => array(
'bbcode_helpline' => 'ABBC3_HIDDEN2_HELPLINE',
'bbcode_match' => '[hidden2]{TEXT}[/hidden2]',
'bbcode_tpl' => '<!-- ABBC3_BBCODE_HIDDEN2 -->{TEXT}<!-- ABBC3_BBCODE_HIDDEN2 -->',
),
Ouvrir : ./ext/vse/abbc3/images/icons/
Trouver & copier : le fichier. hidden.gif
Renommer : le fichier. hidden2.gif
Transférer : les fichiers de l’extension modifiée sur son espace FTP
Ainsi, les membres des groupes ayant les ID 4
et 5
pourront lire le message mis entre les balises du BBCode HIDDEN2
. Cependant, les robots, les invités ainsi que les membres des tous les autres groupes (n’ayant pas les ID 4
et 5
) ne pourront pas lire le message mis entre les balises du BBCode HIDDEN2
.
C’est à l’étape n°2.f. que l’on détermine quels sont les groupes auxquels on souhaite attribuer la lecture du contenu mis entre les balises du BBCode HIDDEN2
. À modifier en conséquence en fonction des ID de groupes à autoriser.
Pour connaitre l’ID d’un groupe :
- se rendre dans le PCA ;
- dans l’onglet « MEMBRES ET GROUPES » ;
- sur la page « Gérer les groupes » ;
- survoler avec la souris le bouton « Paramètres » correspondant à un groupe ;
- le lien se termine par
g=3
où 3
est l’ID du groupe dans cet exemple.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : dim. 22 oct. 2017 13:00
par Beaware
Bonjour Raphaël,
Je viens de tester en suivant la procédure à la lettre, j'ai un joli plantage :
Code : Tout sélectionner
( ! ) Parse error: syntax error, unexpected 'protected' (T_PROTECTED) in E:\wamp64\www\ext\vse\abbc3\core\bbcodes_parser.php on line 115
Call Stack
# Time Memory Function Location
1 0.0020 262912 {main}( ) ...\index.php:0
2 3.3372 22084792 phpbb\user->setup( ) ...\index.php:31
3 3.3372 22100704 phpbb\event\dispatcher->trigger_event( ) ...\user.php:219
4 3.3372 22100992 phpbb\event\dispatcher->dispatch( ) ...\dispatcher.php:46
5 3.3372 22100992 Symfony\Component\EventDispatcher\EventDispatcher->dispatch( ) ...\dispatcher.php:60
6 3.3372 22100896 Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->getListeners( ) ...\EventDispatcher.php:45
7 3.3372 22100896 Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->lazyLoad( ) ...\ContainerAwareEventDispatcher.php:128
8 3.3712 24680224 Symfony\Component\DependencyInjection\ContainerBuilder->get( ) ...\ContainerAwareEventDispatcher.php:183
9 3.3712 24680576 Symfony\Component\DependencyInjection\ContainerBuilder->createService( ) ...\ContainerBuilder.php:476
10 3.3712 24681312 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:905
11 3.3712 24681968 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:990
12 3.3712 24682048 Symfony\Component\DependencyInjection\ContainerBuilder->get( ) ...\ContainerBuilder.php:993
13 3.3712 24682320 Symfony\Component\DependencyInjection\ContainerBuilder->createService( ) ...\ContainerBuilder.php:476
14 3.3722 24683920 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:905
15 3.3742 24968896 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:990
16 3.3742 24968992 Symfony\Component\DependencyInjection\ContainerBuilder->get( ) ...\ContainerBuilder.php:993
17 3.3742 24969296 Symfony\Component\DependencyInjection\ContainerBuilder->createService( ) ...\ContainerBuilder.php:476
18 3.3772 25259040 newInstanceArgs ( ) ...\ContainerBuilder.php:936
19 3.3772 25259376 phpbb\textformatter\s9e\parser->__construct( ) ...\ContainerBuilder.php:936
20 5.1243 30265608 phpbb\event\dispatcher->trigger_event( ) ...\parser.php:69
21 5.1243 30265896 phpbb\event\dispatcher->dispatch( ) ...\dispatcher.php:46
22 5.1243 30265896 Symfony\Component\EventDispatcher\EventDispatcher->dispatch( ) ...\dispatcher.php:60
23 5.1243 30265800 Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->getListeners( ) ...\EventDispatcher.php:45
24 5.1243 30265800 Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->lazyLoad( ) ...\ContainerAwareEventDispatcher.php:128
25 5.1243 30265800 Symfony\Component\DependencyInjection\ContainerBuilder->get( ) ...\ContainerAwareEventDispatcher.php:183
26 5.1243 30266136 Symfony\Component\DependencyInjection\ContainerBuilder->createService( ) ...\ContainerBuilder.php:476
27 5.1243 30266952 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:905
28 5.1243 30267688 Symfony\Component\DependencyInjection\ContainerBuilder->resolveServices( ) ...\ContainerBuilder.php:990
29 5.1243 30267784 Symfony\Component\DependencyInjection\ContainerBuilder->get( ) ...\ContainerBuilder.php:993
30 5.1243 30268088 Symfony\Component\DependencyInjection\ContainerBuilder->createService( ) ...\ContainerBuilder.php:476
31 5.1243 30268848 __construct ( ) ...\ContainerBuilder.php:934
32 5.1243 30269136 spl_autoload_call ( ) ...\ContainerBuilder.php:934
33 5.1253 30269504 phpbb\class_loader->load_class( ) ...\ContainerBuilder.php:934
PS : J'ai pas posté sur phpbb-fr.com car il n'y a pas 24H, mais j'ai modifié ma réponse. Sur quel forum on peu continuer la discussion ?
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : dim. 22 oct. 2017 19:46
par Raphaël
Salut Beaware,
je n'ai pas encore de boule de cristal, quel est ton sujet sur -fr ? Tu peux continuer ici, il n’y a pas de problème.
Envoie moi ton fichier ./ext/vse/abbc3/core/bbcodes_parser.php
car il semble contenir une erreur/un oubli.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : dim. 22 oct. 2017 20:02
par Beaware
Pas de boule de cristal pour un programmeur comme toi ?
.
Non sérieusement, le sujet est ici :
http://forums.phpbb-fr.com/message1650041.html#p1650041Le fichier joint (je l'ai compressé en RAR, le forum prend pas le fichier en php directe
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : lun. 23 oct. 2017 03:46
par Raphaël
Voilà qui est corrigé :
Tu n’as pas respecté l’étape 2.e. qui indique deux lignes de code à trouver dont la seconde est :
C’est après celle-ci, sur une nouvelle ligne, qu’il faut copier le code indiqué à l’étape 2.f. dont tu n’as pas respecté aussi le contenu car tu as omis le code suivant à la fin :
Bref, relis-toi la prochaine fois, cela évitera de te faire perdre du temps inutilement.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : lun. 23 oct. 2017 19:34
par Beaware
Franchement un grand merci Raphael, ça fonctionne nickel. Je n'ai pas été assez concentré pour faire cette modif. Je comprend pas ce que j'ai pu bouiner
.
J'en ai profité pour rajouté un groupe de plus dans la balise [Hidden] de base.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : mer. 16 mai 2018 17:23
par gipi69
Bonjour
Il serait sage de définir les groupes car pour moi 4 ou 5 il faut que je cherche.
Ce n'est pas que j'aime le boulot trop mâché mais c'est comme les sites abrégés il suffit de rajouter des parenthèses et mettre les groupes concernés en clair.
Comme ça les petits comme moi ou les débutants comprennent mieux
En attendant merci pour votre formidable travail
Gipi69
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : ven. 18 mai 2018 04:57
par Raphaël
Salut
gipi69,
si tu veux connaitre l’ID du groupe auquel tu souhaites attribuer le BBCode, regarde en fin de message l’indication « Pour connaitre l’ID d’un groupe : ».
Bonne continuation.
RECHERCHE : Masquer le ou les messages dans les sujets
Posté : dim. 28 oct. 2018 12:41
par Beaware
Bonjour,
Je viens de faire la mise à jour de cette extension (de 3.1.4 => 3.2.1) la balise Hidden 2 ne fonctionne plus du coup. Le fichier modifié "./ext/vse/abbc3/core/bbcodes_parser.php" n'existe plus. Il y a une technique pour palier à ça ?
Merci d'avance.