Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PHPBB3] Masquer annonce paramétrable

Voir le sujet précédent Voir le sujet suivant Aller en bas

avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Dim 8 Nov 2020 - 23:06

  • Version du forum :
    PHPBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour à tous les milouziens,

Philippe m'a fait ce développent pour permettant à un modérateur de créer simplement des annonces:
https://www.milouze14.com/t32774-resoluphpbb3-annonce-parametrable

Le script a été adapté ainsi pour que le modérateur puisse mettre jusqu'à 4 annonces, et pour cela 4 sujets contenant les annonces ont été crées:
Code:

<div class="AnnonceModerat">
                  
</div>
 <script>
       jQuery(function(){
       //LE LIEN DU MESSAGE AVEC L ANCRE
       var topic="/t15-Texte 1";
       jQuery.get(topic, function(data){
       var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
       jQuery('.AnnonceModerat').html('<div class="M14_importe_annonce_moder">'+texte+'</div>');
       });
           });
</script>  
<div class="AnnonceModeratbis">
                                                                
</div><script>
    jQuery(function(){
    //LE LIEN DU MESSAGE AVEC L ANCRE
    var topicbis="/t24-2ieme-annonce";
jQuery.get(topicbis, function(data){
var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
jQuery('.AnnonceModeratbis').html('<div class="M14_importe_annonce_moderbis">'+texte+'</div>');
});
    });
</script>
<div class="AnnonceModeratter">
                  
</div>
 <script>
       jQuery(function(){
       //LE LIEN DU MESSAGE AVEC L ANCRE
       var topic="/t53-Texte 3";
       jQuery.get(topic, function(data){
       var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
       jQuery('.AnnonceModeratter').html('<div class="M14_importe_annonce_moderter">'+texte+'</div>');
       });
           });
</script>  
<div class="AnnonceModeratquatre">
                                                                
</div><script>
    jQuery(function(){
    //LE LIEN DU MESSAGE AVEC L ANCRE
    var topicbis="/t54-4ieme-annonce";
jQuery.get(topicbis, function(data){
var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
jQuery('.AnnonceModeratquatre').html('<div class="M14_importe_annonce_moderquatre">'+texte+'</div>');
});
    });
</script>

Le css:
Code:

/*Fond annonces défilantes*/
#fa_ticker_container {background: #9ca5a9;}

/*Texte annonces défilantes*/
.M14_importe_annonce_moder, .M14_importe_annonce_moderbis, .M14_importe_annonce_moderter, .M14_importe_annonce_moderquatre{
 background: #8c3c3c;
 color: #fff;
 font-family: Tahoma;
 font-size: 1.8em;
 line-height: 28px;
 padding: 10px;
 text-align: center;
   width: 150%;
}
    /*couleur annonces défilantes */
.M14_importe_annonce_moderbis, .M14_importe_annonce_moderquatre {background: #63abcf !important;}
.M14_importe_annonce_moderter {background: #3885ab !important;}

Ce code fonctionne parfaitement.

Y aurait-il une astuce pour masquer une annonce le cas échéant.
C'est à dire n'en afficher que 2 ou 3 parmi les 4 quand on n'a pas besoin des 4, sans faire de trou entre les annonces restantes.

Par exemple en remplaçant le texte de l'annonce par le texte "Rien" ou autre quand on ne veut pas l'afficher.

le script est sur mon forum test ici:
https://whoroot.forumactif.com/forum

Merci pour votre aide
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 9 Nov 2020 - 15:52

Hello Serge,
hum, à part déplacer le sujet en question et remplacer les scripts présents dans les annonces.
Comme ceci:

On met directement le texte que l'on souhaite dans la div:
Aucune annonce actuellement

Code:
    <div class="AnnonceModerat">
                      <div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>
    </div>
    <script>
          jQuery(function(){
          //LE LIEN DU MESSAGE AVEC L ANCRE
          var topic="/t15-Texte 1";
          jQuery.get(topic, function(data){
          var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
if(!texte)return;
          jQuery('.AnnonceModerat').html('<div class="M14_importe_annonce_moder">'+texte+'</div>');
          });
              });
    </script>


J'ai donc ajouté ceci:
Code:
if(!texte)return;


Avant l'importation dans la div, ce qui signifie si pas de texte alors on oublie.


Pour les quatre divs:
Code:
  <div class="AnnonceModerat">
                      <div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>
    </div>
    <script>
          jQuery(function(){
          //LE LIEN DU MESSAGE AVEC L ANCRE
          var topic="/t15-Texte 1";
          jQuery.get(topic, function(data){
          var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
if(!texte)return;
          jQuery('.AnnonceModerat').html('<div class="M14_importe_annonce_moder">'+texte+'</div>');
          });
              });
    </script> 
    <div class="AnnonceModeratbis">
                  <div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>                                                 
    </div><script>
        jQuery(function(){
        //LE LIEN DU MESSAGE AVEC L ANCRE
        var topicbis="/t24-2ieme-annonce";
    jQuery.get(topicbis, function(data){
    var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
if(!texte)return;
    jQuery('.AnnonceModeratbis').html('<div class="M14_importe_annonce_moderbis">'+texte+'</div>');
    });
        });
    </script>
    <div class="AnnonceModeratter">
                      <div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>
    </div>
    <script>
          jQuery(function(){
          //LE LIEN DU MESSAGE AVEC L ANCRE
          var topic="/t53-Texte 3";
          jQuery.get(topic, function(data){
          var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
if(!texte)return;
          jQuery('.AnnonceModeratter').html('<div class="M14_importe_annonce_moderter">'+texte+'</div>');
          });
              });
    </script> 
    <div class="AnnonceModeratquatre">
    <div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>                                                             
    </div><script>
        jQuery(function(){
        //LE LIEN DU MESSAGE AVEC L ANCRE
        var topicbis="/t54-4ieme-annonce";
    jQuery.get(topicbis, function(data){
    var texte= jQuery(data).find('.postbody:first .content div:not(.M14_reception_photos):first ').text();
if(!texte)return;
    jQuery('.AnnonceModeratquatre').html('<div class="M14_importe_annonce_moderquatre">'+texte+'</div>');
    });
        });
    </script>
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Lun 9 Nov 2020 - 17:15

Bonjour Philippe,

Merci pour ton aide.

Pas bien compris Phil.

Le lien du message est indiqué dans la variable topic avec ....... /txx-.......

Donc si je déplace par exemple le sujet dans la corbeille, son lien ne change pas et le texte est toujours présent.

Je ne peux pas non plus éditer et supprimer le contenu du message car celui-ci pour être posté doit obligatoirement contenir un minimum de caractères.

C'est pour cela que j'avais imaginé remplacer le texte de l'annonce par "Rien" ou un autre texte qui serait testé ensuite.

Tel que tu as envisagé la chose, autant mettre directement comme texte dans l'annonce "Aucune annonce actuellement".


Mais ce que j'avais en tête était de tout bonnement ne pas faire apparaitre la ligne de l'annonce supprimée et avoir par exemple 3 annonces contigües quand j'en supprime une.
Mais cela n'est peut-être pas envisageable.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 9 Nov 2020 - 17:43

Donc si je déplace par exemple le sujet dans la corbeille, son lien ne change pas et le texte est toujours présent.

C'est purement impossible Serge avec cette condition:
Code:
if(!texte)return;
Si pas de sujet alors on laisse cette div:
Code:
<div class="M14_importe_annonce_moder">Aucune annonce actuellement</div>


Mais ce que j'avais en tête était de tout bonnement ne pas faire apparaitre la ligne de l'annonce supprimée et avoir par exemple 3 annonces contigües quand j'en supprime une.
Mais cela n'est peut-être pas envisageable.

C'est une évidence Serge.

On ne peut rien faire d'autre mon ami, il ne faut pas oublier que ce sont les modos qui agissent et non un admin( gestion des scripts).
Donc on est très restreint sur ce point là.



avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Lun 9 Nov 2020 - 18:52

OK. Pas grave Phil.

Direction la corbeille donc pour cette demande, et merci pour ton investissement l'ami.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 9 Nov 2020 - 18:53

Désolé Serge et sans rancune et à bientôt donc Merci
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Lun 9 Nov 2020 - 19:03


Hello


Entraide corbeillée

Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum