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] Temps écoulé sur nouveaux messages


3 participants

Page 2 sur 2 Précédent  1, 2

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

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

Messagephotoclic Lun 13 Avr 2020 - 15:53

Rappel du premier message :

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

Serai-t-il possible d'ajouter sur les nouveaux messages et peut-être aussi sur les sujets récents (voire même sur la liste des sujets) le temps écoulé entre l'heure actuelle et l'heure du post.

La variable de la date actuelle pourrait par exemple être récupérée ainsi:
Code:

var maDate = new Date();
var t1 = maDate.getTime();

La présentation pourrait être celle-ci:
[PHPBB3] Temps écoulé sur nouveaux messages - Page 2 Captur99


Merci pour votre aide.



Dernière édition par photoclic le Mer 15 Avr 2020 - 19:27, édité 1 fois

Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 14 Avr 2020 - 19:52

Re, tout est fonctionnel Serge.
J'ai modifié cette ligne:

Code:
   
var texte=$(this).find('.postbody .content div:not(.M14_reception_photos)').html();


De plus il faudrait le double agréage des messages car cela va provoquer des erreurs.
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 14 Avr 2020 - 19:55

Super Philippe. T'es génial!

Qu'appelles-tu le double agréage?

Tiens, bizarre Philippe, cette image que tu as pourtant exclue apparait marreordi
https://i.servimg.com/u/f58/18/97/96/21/man-wi10.png
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mar 14 Avr 2020 - 20:00

La compilation de messages d'un même membre comme ici:
https://photoclic.forum-pro.fr/t21822-inclassables-abstraction-confine-ajout#279525

Pour cette image, on rien exclut Serge, on importe le contenu du message.
Je file pour ma part.
Bonne soirée.
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 14 Avr 2020 - 20:04

OK. Bonne soirée Philippe et merci pour tout.

A demain.
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mar 14 Avr 2020 - 22:05

Milouze14 a écrit:
.....
De plus il faudrait le double agréage des messages car cela va provoquer des erreurs.


Il y est Philippe, le double agréage des messages.
Tu veux dire il faudrait retirer?


Milouze14 a écrit:
....
Pour cette image, on rien exclut Serge, on importe le contenu du message.
..

Ah ok, je croyais que tu la testais ici pour ne pas qu'elle y soit:
Code:
           //on supprime les images non désirées
            var notA="https://i.servimg.com/u/f58/18/97/96/21/man-wi10.png";
            $.get(topic, function(data){
            var img=$(data).find('div[class*="post--"]:first').find('.content div:not(.M14_reception_photos) img:not([longdesc]):not([src^="https://7img.net"],[src="'+notA+'"]):first').attr('src');
  

Pour info Philippe et pour décharger un peu, j'ai retiré l'import de la date.
Elle est redondante car elle apparait déjà dans la colonne "Derniers messages".

Sinon tout est ok Phil.
Je passe le sujet demain en résolu après t'avoir lu.

A moins que tu te lances dans ce que j'ai mis entre parenthèses là haut:  "mettre aussi le temps écoulé sur la liste des sujets", ici ou sur un autre post.
Si c'est trop lourd Phil, laisse tomber.

En tout cas, 2 énormes merci à toi et Arnaud pour ce développement très enrichissant.


Dernière édition par photoclic le Mar 14 Avr 2020 - 22:10, édité 1 fois
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 4:02

Hello Serge,

ah non , ici:
Code:
              //on supprime les images non désirées
                var notA="https://i.servimg.com/u/f58/18/97/96/21/man-wi10.png";
                $.get(topic, function(data){
                var img=$(data).find('div[class*="post--"]:first').find('.content div:not(.M14_reception_photos) img:not([longdesc]):not([src^="https://7img.net"],[src="'+notA+'"]):first').attr('src');
      

C'est l'importation de la première photo du premier message.


Pour moi, c'est ok Serge.
Tu veux parler du Widget Serge, dans ce cas ,
tu as activé le défilement et merci de me donner le template :mod_recent_topics s'il te plait.

Mais je sais pas ou l'on pourrait placer l'heure retenue!!
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 15 Avr 2020 - 7:10

Bonjour Philippe 

Ah ok,

Pour la suite je parlais des sous forums oú tu as récement mis les miniatures.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 8:47

Re Serge,
si c'est pour la page latest, c'est déjà en place normalement car la variable :
Code:

var page=$('h1.page-title:contains(Dernières discussions)').length;
Récupère cette dernière.
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 15 Avr 2020 - 10:28

Re Phil,

Oui, c'est bon sur la page latest.

Il s'agit des sous forums Philippe où tu m'as écrit ICI un joli script:

Code:

//Aperçu des miniatures sur forums C2 Les photos du clic et C1
            if (/\/?f\d+.*/.test(window.location.pathname)) {
            $(function () {
              $('a.topictitle.bis').each(function(){
            var a=$(this).closest('li').find('dd.posts span').text();

            //IMAGE SI UN MESSAGE
            var img1='https://i.servimg.com/u/f25/18/97/96/21/3101010.png';
            //var img1='https://i.servimg.com/u/f25/18/97/96/21/icon_e10.png ';  
            //IMAGE SI DEUX MESSAGES
            //var img2='https://i.servimg.com/u/f87/11/26/21/37/11010.png';
              var img2='https://i.servimg.com/u/f25/18/97/96/21/11011_10.png';
                
            //SI UN MESSAGE ON AFFICHE L ICONE CORRESPONDANT A UN MESSAGE
            if(a==0)
            {
            $(this).after( '<a href="#" style="margin-left: 5px;" class="preview_topic"><img src="'+img1+'" title="Voir le premier message" alt="Preview" style="cursor:pointer;padding-top: 6px;padding-left: 17px;"/></a>');
            }
            //AU DELA ON AFFICHE L ICONE CORRESPONDANT A DEUX MESSAGES ET ON CHANGE LA CLASS
            if(a>=1)
            {
            $(this).after( '<a href="#" style="margin-left: 5px;" class="preview_topicmore"><img src="'+img2+'" title="Voir le premier et le dernier message" alt="Preview" style="cursor:pointer;padding-top: 6px;padding-left: 17px;"/></a>');
            }});
            $('.preview_topic').click(function () {
            var url = this.previousSibling.href;
            $('body').prepend('
            <div id="topicCloseD" style="cursor:pointer;position: fixed;top: 140px;left: 72%;background-color: black;border-radius: 30px;z-index: 25;"><img src="https://i.servimg.com/u/f25/18/97/96/21/icon_e11.png"style="position: relative;z-index: 20;"title="Fermer"/>
                              <div id="topic_popup" class="popupWrapper" style="border:2px solid #CCC;border-radius:5px;left:24.5%;width: 50%;max-height: 75%;overflow: auto;position: fixed !important;top:135px;text-align: center;">                                          
                              <div id="topicPreviewing" style="max-height:800px;overflow-y:auto;"><center><span class="topicPreview-loading" style="font-weight:bold;font-size:18px;color:white;"> Chargement...</span></center></div></div></div>');
            $('#topic_popup').load(url + ' .M14_post:first', function () {
            $('#topicCloseD').click(function () {
            $('#topicCloseD, #topic_popup').remove();
            });});return false;});
            $('.preview_topicmore').click(function () {
            var url = this.previousSibling.href;
            $('body').prepend('
            <div id="topicCloseD" style="cursor:pointer;position: fixed;top: 140px;left: 72%;background-color: black;border-radius: 30px;z-index: 25;"><img src="https://i.servimg.com/u/f25/18/97/96/21/icon_e11.png"style="position: relative;z-index: 20;"title="Fermer"/>
                              <div id="topic_popup" class="popupWrapper" style="border:2px solid #CCC;border-radius:5px;left:24.5%;width: 50%;max-height: 75%;overflow: auto;position: fixed !important;top:135px;">                        
                              <div id="topicPreviewing" style="z-index:10010;max-height:1600px;overflow-y:auto;"><center><span class="topicPreview-loading" style="font-weight:bold;font-size:18px;color:white;"> Chargement...</span></center></div></div></div>');
            $('#topic_popup').load(url + ' .M14_post:first,.M14_post:last', function () {
            $('#topicCloseD').click(function () {
            $('#topicCloseD, #topic_popup').remove();                
            });});return false;});
            if (_userdata["user_id"] < (0)){$('a[class^="preview_to"]').hide();}});
            }

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 16:02

Ce script est bien positionné sur la liste des sujets ?
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 15 Avr 2020 - 16:10

Le script est sur les sous-forums.

Voici le template demandé Phil:

Code:

<!-- position widgets et flèches dans sujets et ClicExpress-->  
<style>
#content-container div#left {margin-top:339px;}  
.widget-arrow.isleft {margin-top: 373px;}
  
div#toolbar_list_name_ClicExpress {left: 50%;}
<!-- Fin position widgets et flèches dans sujets et ClicExpress-->  
</style>


<!-- BEGIN topics_list_box -->
<!-- BEGIN row -->
<!-- BEGIN header_table -->
 <!-- BEGIN multi_selection -->
 <script type="text/javascript">

 function check_uncheck_main_{topics_list_box.row.header_table.BOX_ID}()
 {
 alert('MAIN');

 var all_checked = true;

 for (i = 0; (i < document.{topics_list_box.FORMNAME}.elements.length) && all_checked; i++)
 {
 if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}')
 {
 all_checked = document.{topics_list_box.FORMNAME}.elements[i].checked;
 }
 }

 document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked = all_checked;
 }

 function check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}()
 {
 alert('ALL');

                  for (i = 0; i < document.{topics_list_box.FORMNAME}.length; i++)
 {
 if (document.{topics_list_box.FORMNAME}.elements[i].name == '{topics_list_box.FIELDNAME}[]{topics_list_box.row.header_table.BOX_ID}')
 {
 document.{topics_list_box.FORMNAME}.elements[i].checked = document.{topics_list_box.FORMNAME}.all_mark_{topics_list_box.row.header_table.BOX_ID}.checked;
 }
 }
 }

 </script>
 <!-- END multi_selection -->

<a id="M14"style="position: relative;top: -90px;"></a>

 <div class="forumbg announcement">
 <div class="inner"><span class="corners-top"><span></span></span>
 <ul class="topiclist topics">
 <li class="header">
 <dl class="icon">
 <dt>
 <!-- BEGIN multi_selection -->
 <input onclick="check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}();" type="checkbox" name="all_mark_{topics_list_box.row.header_table.BOX_ID}" value="0" />
 <!-- END multi_selection -->


 {topics_list_box.row.L_TITLE}
 </dt>
 <dd class="posts" style="padding-left:20px;">{topics_list_box.row.L_REPLIES}</dd>


<!--  on masque la colonne Vues <dd class="views">{topics_list_box.row.L_VIEWS}</dd>   -->

 <dd class="lastpost"><span>{topics_list_box.row.L_LASTPOST}</span></dd>
 </dl>
 </li>
 </ul>
 <ul class="topiclist topics bg_none">
<!-- END header_table -->

<!-- BEGIN header_row -->
 <strong>{topics_list_box.row.L_TITLE}</strong>
<!-- END header_row -->

 
    <!-- BEGIN topic -->

     <!-- BEGIN table_sticky -->
     </ul>
     <span class="corners-bottom"><span></span></span></div>
     </div>
     <div class="M14_forumbg forumbg">

 <div class="inner"><span class="corners-top"><span></span></span>
 <ul class="topiclist topics">
 <li class="header">
 <dl class="icon">
 <!--<dd class="dterm">-->
 <dd class="dterm" style="padding-left:0;">
 <!-- BEGIN multi_selection -->
 <input onclick="check_uncheck_all_{topics_list_box.row.header_table.BOX_ID}();" type="checkbox" name="all_mark_{topics_list_box.row.header_table.BOX_ID}" value="0" />
 <!-- END multi_selection -->

 {topics_list_box.row.topic.table_sticky.L_TITLE}
 </dd>
 <dd class="posts" style="padding-left:60px;">{topics_list_box.row.topic.table_sticky.L_REPLIES}</dd>
 <!-- <dd class="authors">{topics_list_box.row.L_AUTHOR}</dd> -->


<!--  on masque la colonne Vues  <dd class="views">{topics_list_box.row.topic.table_sticky.L_VIEWS}</dd>  -->


 <dd class="lastpost"><span>{topics_list_box.row.topic.table_sticky.L_LASTPOST}</span></dd>
 </dl>
 </li>
 </ul>
 <ul class="topiclist topics bg_none">
 <!-- END table_sticky -->

 <li class="row {topics_list_box.row.ROW_ALT_CLASS}"<!-- BEGIN line_sticky --> style="margin-top:5px;"<!-- END line_sticky --> >
 <dl class="icon" style="background-image:url('{topics_list_box.row.TOPIC_FOLDER_IMG}');">
 <dd class="dterm" title="{topicrow.TOPIC_FOLDER_IMG_ALT}" {topics_list_box.row.ICON}>
 <!-- BEGIN single_selection -->
 <input type="radio" name="{topics_list_box.FIELDNAME}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} />
 <!-- END single_selection -->
 {topics_list_box.row.NEWEST_POST_IMG}
 {topics_list_box.row.PARTICIPATE_POST_IMG} 

    <span class="M14_type_post">{topics_list_box.row.TOPIC_TYPE}</span>
 
     <div class="topic-title-container"><h2 class="topic-title hierarchy M14_anchor"><a class="topictitle" href="{topics_list_box.row.U_VIEW_TOPIC}">{topics_list_box.row.TOPIC_TITLE}</a></h2></div>

         <a class="M14_LoaD_ToPiCsConT" href="{topics_list_box.row.U_VIEW_TOPIC}"></a>
 
 <!-- BEGIN switch_description -->
 <br />
 {topics_list_box.row.topic.switch_description.TOPIC_DESCRIPTION}
 <!-- END switch_description -->
 <br />
 {topics_list_box.row.GOTO_PAGE_NEW}


 <span class="span-tab">{topics_list_box.row.L_BY} <strong>{topics_list_box.row.TOPIC_AUTHOR}</strong>
     <a class="topictitle bis" href="{topics_list_box.row.U_VIEW_TOPIC}"style="display:none;"></a>
 </span>

<!-- Script Enveloppe retiré
    <img class="M14_GetPosts"src="https://i.servimg.com/u/f62/18/97/96/21/images10.png"/>     -->


 <!-- BEGIN nav_tree -->{topics_list_box.row.TOPIC_NAV_TREE_NEW}<!-- END nav_tree -->
 </dd>
 <dd class="posts"><span>{topics_list_box.row.REPLIES}</span><dfn>{L_REPLIES}</dfn></dd>

      
<!--  on masque la colonne Vues   <dd class="views"><span>{topics_list_box.row.VIEWS}</span><dfn>{L_VIEWS}</dfn></dd> -->


 <dd class="lastpost">

 <!-- BEGIN avatar -->
 <span class="lastpost-avatar">{topics_list_box.row.topic.avatar.LAST_POST_AVATAR}</span>    
 <!-- END avatar -->
                  
                    <div style="float:left;">                  

 <span>{topics_list_box.row.LAST_POST_AUTHOR}&nbsp;<dfn>{L_LASTPOST}</dfn>
 {topics_list_box.row.LAST_POST_IMG}<br style="clear:left;" />{topics_list_box.row.LAST_POST_TIME}</span>

                  
                    </div>
                  
 </dd>
 <!-- BEGIN multi_selection -->
 <input onclick="javascript:check_uncheck_main_{topics_list_box.row.BOX_ID}();" type="checkbox" name="{topics_list_box.FIELDNAME}[]{topics_list_box.row.BOX_ID}" value="{topics_list_box.row.FID}" {topics_list_box.row.L_SELECT} />
 <!-- END multi_selection -->
 </dl>
 </li>
<!-- END topic -->
<!-- BEGIN no_topics -->
<li class="row row1">
 <dl>
 <dt><strong>{topics_list_box.row.L_NO_TOPICS}</strong></dt>
 </dl>
</li>
<!-- END no_topics -->

<!-- BEGIN bottom -->
</ul>
 <span class="corners-bottom"><span></span></span></div>
</div>
<!-- END bottom -->
<!-- BEGIN spacer --><br /><!-- END spacer -->
<!-- END row -->
<!-- END topics_list_box -->
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 16:18

J'avais édité mon message clin oeil .

Bref on va directement agir sur celui-ci, c'est bien plus simple :

Dans le template topics_list_box:
Affichage/Templates/Général/topics_list_box

Recherches ceci:
Code:
{topics_list_box.row.LAST_POST_TIME}

Supprimes et remplaces par:

Code:

<span class="M14_topics_list_box">{topics_list_box.row.LAST_POST_TIME}</span>
<span class="M14_topics_list_box_get"></span>


Puis le script sur les sous forums:
Code:
$(function(){
$('.M14_topics_list_box').each(function(){
    var $this=$(this);
    var date=$this.text();
    var r=/aujourd\D+(\d+):(\d{2})/i;
    var a=r.exec(date);
    if(a)
    {
     var d=new Date();
    d.setHours(a[1]);
    d.setMinutes(a[2]);
    var ec=new Date(Date.now()-d);
console.log('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');
    $this.hide().next().text('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');
    }});});


C'est ce span ayant la class:
Code:
M14_topics_list_box_get

Le script va rechercher si c'est un message posté le jour même et si c'est le cas:
Masquer le span ayant la class:
Code:
M14_topics_list_box

Attention à bien laisser les deux balises dans l'ordre donné Serge.
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Mer 15 Avr 2020 - 16:32

Merci Philippe pour l'efficacité et la rapidité.

C'est en place et ça marche Philippe super

Par contre, si cela est possible, j'aurais voulu gardé une présentation proche de ce qui a été fait hier.
C'est à dire garder l'affichage de la date et lheure, et ajouté à droite "il y a xx mn etc.", sur lequel si tu est passé sur mon forum, j'ai ajouté un fond ronge.

Sinon, je mettrais simplement un fond rouge sur les texte du jour.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 16:37

Recherches cette ligne:

Code:

$this.hide().next().text('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');

et remplaces la par:

Code:

$this.next().text('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');

Et hop, le span reste affichée impeccable .

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

Messagephotoclic Mer 15 Avr 2020 - 17:32

Merci Philippe, c'est bon  super

Je m'étais emmêlé les pinceaux :-)

Un autre truc si c'est possible sur le script précédent "Voir les derniers messages":
Tu as mis la class heure_exacte que j'utilise pour avoir un fond rouge.
Serait-il possible de garder ce fond rouge sur les message courants et retirer le fond rouge sur le message "Il y a plus d'une journée" que tu as défini dans le template ICI

Et mettre cette même classe sur ton dernier script sur les sous forums.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 17:57

Re Serge,
je te donne un exemple alors ici:
Code:

<span class="M14_times">{searchresults.LAST_POST_TIME}</span>
<span class="heure_exacte" style="float:right;">Il y a plus d'une journée</span>

Il na faut pas donner de background; il faut attribuer une class dans le script sur la condition:

Comme pour le script actuel:

Code:

$this.next().text('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');

Code:

$this.next().addClass('background').text('Il y a '+ec.getUTCHours()+'H '+ec.getUTCMinutes()+'min');
Code:

.heure_exacte.background
{
background: #9e0b10;
}


Et tu fais la même chose pour les autres hinhin .


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

Messagephotoclic Mer 15 Avr 2020 - 19:26

Magnifique Philippe, tout est ok.

vraiment ravi par tout ce travail. Un must.

Un grand merci à Arnaud et à toi l'ami pour votre patience et votre efficacité tape la
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Mer 15 Avr 2020 - 19:52

De rien Serge,
vi heureusement que notre ami Arnaud est intervenu car sans lui,
le topic serait surement corbeillé.


Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil



Page 2 sur 2 Précédent  1, 2

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