Membres connectés récemment
[PHPBB3] Cacher un sujet à un membre qui n'a pas encore poster dedans
2 participants
Page 1 sur 1
- Version du forum :PHPBB3
- Templates modifiés :non
- Navigateur :Chrome
Bonjour,
L'idée serait de pouvoir cacher un sujet aux membres qui n'aurait pas encore posté de message dedans. Cependant, ils doivent avoir la possibilité lire le premier message du fil.
Dès qu'un message est posté, son auteur peut lire tout le sujet.
Merci
L'idée serait de pouvoir cacher un sujet aux membres qui n'aurait pas encore posté de message dedans. Cependant, ils doivent avoir la possibilité lire le premier message du fil.
Dès qu'un message est posté, son auteur peut lire tout le sujet.
Merci
Hello Bruno,
alors ta demande est très particulière :
Il faut imaginer que tu peux avoir une dizaine de pages sur le sujet donc des requêtes importantes en fonction des pages pour trouver si le membre a déjà posté!!
Et de toutes façons peut être contourné, vu que l'on agit pas sur le serveur...
Ceci sera pratiquement impossible a réaliser Bruno.
L'idéal est de placer un la balise hide dans le premier message qui agit directement sur le serveur donc impossible a gruger.
Cette balise masque le contenu tant qu'une personne n'a pas répondu au sujet.
Le visu reste accessible aux admins il me semble..
alors ta demande est très particulière :
L'idée serait de pouvoir cacher un sujet aux membres qui n'aurait pas encore posté de message dedans
Il faut imaginer que tu peux avoir une dizaine de pages sur le sujet donc des requêtes importantes en fonction des pages pour trouver si le membre a déjà posté!!
Et de toutes façons peut être contourné, vu que l'on agit pas sur le serveur...
Cependant, ils doivent avoir la possibilité lire le premier message du fil.
Ceci sera pratiquement impossible a réaliser Bruno.
L'idéal est de placer un la balise hide dans le premier message qui agit directement sur le serveur donc impossible a gruger.
Cette balise masque le contenu tant qu'une personne n'a pas répondu au sujet.
Le visu reste accessible aux admins il me semble..
Salut Bruno,
alors peux tu tester ceci:
Si le membre n'a pas répondu, il verra le premier message mais pas les suivants.
Dans le template viewtopic_body:
Affichage/Templates/Général/viewtopic_body
Recherches ceci:
Remplaces par:
Penser a enregistrer puis à valider en cliquant respectivement sur puis
Une class a été ajouté au pseudo.
Ensuite je vais importer tous les membres dans une div (qui sera masquée via la C.S.S )ayant posté dans le sujet quelque soit le nombre de page.
Le style a déposer:
Dans la feuille de style:
Affichage/Images et Couleurs/Couleurs/Feuille de style
Ajouter ceci:
Penser a cliquer sur le bouton
Puis le script:
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Cocher Sur les sujets
Déposer ceci:
Penser a cliquer sur le bouton
Il est impératif d'activer la Toolbar Bruno pour le fonctionnement de ce script.
Le résultat imagé:
La capture montre le pseudo du membre dans la toolbar et si ce dernier est absent dans la liste , il recevra le tag.
Le tag incitera le membre (avec son pseudo) a répondre car il aura le lien direct dans le tag du sujet (aussi mentionné).
Si tu désires désactiver le tag pour les admins, ce sera ce script:
Si tu désires désactiver le tag pour les modos, ce sera ce script:
Et voilou.
alors peux tu tester ceci:
Si le membre n'a pas répondu, il verra le premier message mais pas les suivants.
Dans le template viewtopic_body:
Affichage/Templates/Général/viewtopic_body
Recherches ceci:
- Code:
{postrow.displayed.POSTER_AVATAR}
<br /><strong style="font-size:1.2em">{postrow.displayed.POSTER_NAME}</strong>
Remplaces par:
- Code:
{postrow.displayed.POSTER_AVATAR}
<br /><strong style="font-size:1.2em" class="M14_user">{postrow.displayed.POSTER_NAME}</strong>
Penser a enregistrer puis à valider en cliquant respectivement sur puis
Une class a été ajouté au pseudo.
Ensuite je vais importer tous les membres dans une div (qui sera masquée via la C.S.S )ayant posté dans le sujet quelque soit le nombre de page.
Le style a déposer:
Dans la feuille de style:
Affichage/Images et Couleurs/Couleurs/Feuille de style
Ajouter ceci:
- Code:
/*ON MASQUE L IMPORTATION DES MEMBRES*/
.M14_importeUsEr{display:none;}
/*DEBUT DU TAG*/
/*LE CONTENEUR*/
.M14_no_post
{
background-color:white;
border:1px solid black;
border-radius:2px;
padding:8px 12px;
}
/*LA BALISE P DANS LE CONTENEUR*/
.M14_no_post p
{
display:inline;
position:relative;
top:1px;
color:darkred;
font-size:12px;
}
/*LE LIEN DANS LE CONTENEUR*/
.M14_no_post a[href]
{
color:darkred;
font-size:12px;
font-weight:bold;
font-style=italic;
}
Penser a cliquer sur le bouton
Puis le script:
Modules/HTML&JAVASCRIPT/Gestion des codes Javascript/Créer un nouveau Javascript
Mettre un titre explicite.
Cocher Sur les sujets
Déposer ceci:
- Code:
$(function(){
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
$('p.pagination:first span').find('a[href^="/t"]:not(.pag-img)').each(function(){
var link=$(this).attr('href');
$.get(link, function(data){
$(data).find('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var hpseudo=$(this).text();
$this.append('<strong class="page M14_user_id">'+hpseudo+'</strong><br />');
});});});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test){$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');}});
Penser a cliquer sur le bouton
Il est impératif d'activer la Toolbar Bruno pour le fonctionnement de ce script.
Le résultat imagé:
La capture montre le pseudo du membre dans la toolbar et si ce dernier est absent dans la liste , il recevra le tag.
Le tag incitera le membre (avec son pseudo) a répondre car il aura le lien direct dans le tag du sujet (aussi mentionné).
Si tu désires désactiver le tag pour les admins, ce sera ce script:
- Code:
$(function(){
if(_userdata["user_level"] ==1)return;
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
$('p.pagination:first span').find('a[href^="/t"]:not(.pag-img)').each(function(){
var link=$(this).attr('href');
$.get(link, function(data){
$(data).find('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var hpseudo=$(this).text();
$this.append('<strong class="page M14_user_id">'+hpseudo+'</strong><br />');
});});});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test){$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');}
});
Si tu désires désactiver le tag pour les modos, ce sera ce script:
- Code:
$(function(){
if(_userdata["user_level"] ==1||_userdata["user_level"] ==2)return;
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
$('p.pagination:first span').find('a[href^="/t"]:not(.pag-img)').each(function(){
var link=$(this).attr('href');
$.get(link, function(data){
$(data).find('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var hpseudo=$(this).text();
$this.append('<strong class="page M14_user_id">'+hpseudo+'</strong><br />');
});});});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test){$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');}
});
Et voilou.
En jetant un œil, je n'ai pas repéré l'endroit ou je devais définir le sujet qui doit être caché.
Tel que le code est fait, il va cacher tous les sujets du forum ou le membre n'a pas posté. Mais comme il faut que cela se fasse uniquement sur un sujet que l'on aura déterminé, je suppose qu'il faut le préciser dans le script et que ça se passe au niveau de ces deux lignes;
Tel que le code est fait, il va cacher tous les sujets du forum ou le membre n'a pas posté. Mais comme il faut que cela se fasse uniquement sur un sujet que l'on aura déterminé, je suppose qu'il faut le préciser dans le script et que ça se passe au niveau de ces deux lignes;
- Code:
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
Salut Bruno,
j'étais partis sur tous les sujets en fait ...
Ce sera ce script alors:
Il faut remplacer dans le script:
Je vais voir a trouver quelque chose de plus simple Bruno.
j'étais partis sur tous les sujets en fait ...
Ce sera ce script alors:
Il faut remplacer dans le script:
- Code:
/t203-test-nouveau-sujet
- Code:
$(function(){
//le sujet
var sujet=$('h1.page-title a[href="/t203-test-nouveau-sujet"]').length;
if(sujet)
{
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
$('p.pagination:first span').find('a[href^="/t"]:not(.pag-img)').each(function(){
var link=$(this).attr('href');
$.get(link, function(data){
$(data).find('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var hpseudo=$(this).text();
$this.append('<strong class="page M14_user_id">'+hpseudo+'</strong><br />');
});});});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test)
{
$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');
}
}
});
Je vais voir a trouver quelque chose de plus simple Bruno.
Effectivement, lorsque qu'il y a plusieurs page, à partir de la seconde, le script n'agit plus. Dans mon cas, ce n'est pas gênant, car le fil qui sera visé n'aura jamais plus d'une page.
Pour aller un poil plus loin, si je veux que le script agisse sur tout un forum, je suppose que je dois modifier cette ligne de code:
Pour aller un poil plus loin, si je veux que le script agisse sur tout un forum, je suppose que je dois modifier cette ligne de code:
- Code:
//le sujet
var sujet=$('h1.page-title a[href="/t203-test-nouveau-sujet"]').length;
if(sujet)
{
- Code:
//le forum
var forum=$('h1.page-title a[href="/f15-mairie-election-isoloir"]').length;
if(forum)
{
Alors , si c'est que pour une seule page il faut simplifier le script afin qu'il n'agisse que sur la page en cours et j'ai aussi modifié la structure afin que cela soit plus fiable:
Pour un sujet, il faut trouver le nombre du sujet et le placer
dans la variable entre les doubles guillemets:
Ensuite pour tout un forum:
Il faut repérer le chiffre ou le nombre du forum comme le montre cette capture:
En bas à gauche tu découvres le chiffre ou le nombre, pour le script ce sera le chiffre quatre qu'il faut retenir:
Il faudra le reporter ici et bien penser a mettre le trait d'union à la suite:
Car admettons que tu ais un forum "4" et "41" et si tu oublies de mettre ce trait d'union , tu risques d'avoir des ennuis Bruno.
Exemple avec le forum 1
Exemple avec le forum 352
Le script complet:
Pour un sujet, il faut trouver le nombre du sujet et le placer
dans la variable entre les doubles guillemets:
- Code:
var num="447";
- Code:
$(function(){
var num="447";
var btn=$('input[type="hidden"][name="t"]').val();
if(btn==num)
{
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test)
{
$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');
}
}
});
Ensuite pour tout un forum:
Il faut repérer le chiffre ou le nombre du forum comme le montre cette capture:
En bas à gauche tu découvres le chiffre ou le nombre, pour le script ce sera le chiffre quatre qu'il faut retenir:
Il faudra le reporter ici et bien penser a mettre le trait d'union à la suite:
Car admettons que tu ais un forum "4" et "41" et si tu oublies de mettre ce trait d'union , tu risques d'avoir des ennuis Bruno.
- Code:
if($('a.nav[href^="/f4-"]').length) {
Exemple avec le forum 1
- Code:
if($('a.nav[href^="/f1-"]').length) {
Exemple avec le forum 352
- Code:
if($('a.nav[href^="/f352-"]').length) {
Le script complet:
- Code:
$(function(){
if($('a.nav[href^="/f4-"]').length) {
var y= _userdata["username"];
$('h1.page-title').before('<div class="M14_importeUsEr"></div>');
var $this=$('.M14_importeUsEr');
$('div[class*="post--"]').find('.M14_user a[href^="/u"]').each(function(){
var pseudo=$(this).text();
$this.append('<strong class="actuel M14_user_id">'+pseudo+'</strong>');
});
//LE LIEN DE L IMAGE DANS LE TAG
var img="https://i.imgur.com/b8PNmbE.png";
// LE TITRE DU SUJET
var topic=$('h1.page-title a[href^="/t"]').text();
// LIEN DU SUJET
var reply=$('a[href$="mode=reply"]:first').attr('href');
var message ='<img style="margin-right:6px;vertical-align: middle;" src="'+img+'" /><p>Bonjour '+y+' , <br />pour voir la suite de ce sujet [ '+topic+' ] ,<br /> vous devez <a href="'+reply+'" title="Cliquez ici pour répondre">répondre en cliquant ici.</a> </p>';
var test=$('.M14_user_id:contains('+y+')').length;
if(!test)
{
$('.post:eq(0)').nextAll().find('.content').html('<div class="M14_no_post">'+message+'</div>');
}
};
});
Hello
Si ton sujet est résolu, merci de suivre la procédure suivante:
Un tag précédent ton premier message est présent.
Il te suffira de cliquer sur ce dernier pour mettre ton sujet en résolu.
Comme le mentionne le règlement.
Si ton sujet est résolu, merci de suivre la procédure suivante:
Un tag précédent ton premier message est présent.
Il te suffira de cliquer sur ce dernier pour mettre ton sujet en résolu.
Comme le mentionne le règlement.
Sujets similaires
» [PHPBB3] Remplacer un bouton poster sur sujet
» [PHPBB3] Permettre au membre de mettre le sujet en résolu
» [AwesomeBB] Enlever bonton "Poster un nouveau sujet" sur les sujets d'un forum
» Cacher les boutons citer et multi-citation pour un membre spécifique
» [PHPBB3] Passer un sujet en note ou normal sans éditer le sujet
» [PHPBB3] Permettre au membre de mettre le sujet en résolu
» [AwesomeBB] Enlever bonton "Poster un nouveau sujet" sur les sujets d'un forum
» Cacher les boutons citer et multi-citation pour un membre spécifique
» [PHPBB3] Passer un sujet en note ou normal sans éditer le sujet
Créer un compte ou se connecter pour répondre
Vous devez être membre pour répondre.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum