Automerge Postări duble

Vezi subiectul anterior Vezi subiectul urmator In jos

Automerge Postări duble Empty Automerge Postări duble

Mesaj Scris de Mihai Mier Iun 17, 2020 4:30 am

Aceasta este o caracteristică pe care am folosit-o în forumul meu: când un utilizator realizează mai multe postări la rând, acestea sunt afișate ca parte a aceleiași postări, cu o linie subțire care separă conținutul lor. Combinarea este aplicată pe căsuța postală, iar profilul și semnătura sunt afișate o singură dată, dar butoanele de ofertă / editare / etc, titlul și data postării, sistemul de reputație / similar și textul de editare sunt încă afișate în fiecare separat , din motive evidente.

Exemplu:
Automerge Postări duble Multipost-test

Nu este vorba doar de postări duble, dacă există 15 posturi la rând, se vor aplica pe toate în aceeași manieră (și probabil ar trebui să interzici acel utilizator, lol).

L-am testat doar pe phpBB3, dar este destul de de bază și ar trebui să funcționeze și în altele, poate cu câteva modificări ... O să apreciez feedback despre asta Foarte fericit

1. Javascript

Adăugați acest lucru pe lista Javascript, cu opțiunea de poziție „În subiecte”.

Cod:
/*
* -- Automerge Double Posts --
* Version: 1.0 EN (2020-06-11) [phpBB3]
* Author: Wecoc
* Description: When a user makes multiple posts in a row, they are displayed as part of the same post,
* with a thin line that seperates their content.
*/
 
$(function() {
  var posts = $(".post");
  if (posts.length < 2) return;
  for(var i=0; i<posts.length; i++ ) {
    var post = posts[i], author = post.querySelector(".author a");
    if (author == null) break;
    author = author.innerText;
    if (i > 0) {
      var prev_post = posts[i-1], prev_author = prev_post.querySelector(".author a");
      if (prev_author == null) break;
      prev_author = prev_author.innerText;
      if (author == prev_author) {
        $(post).addClass("has_prev");
      }
    }
    if (i < (posts.length - 1)) {
      var next_post = posts[i+1], next_author = next_post.querySelector(".author a");
      if (next_author == null) break;
      next_author = next_author.innerText;
      if (author == next_author) {
        $(post).addClass("has_next");
        post.appendChild(next_post);
      }
    }
  }
});

2. CSS

Cod:
/* Hide the signature on multiposts */
.post.has_next > .inner > .postbody > .signature_div { display: none; }
 
/* Hide the profile on multiposts */
.post.has_next .post .postprofile { display: none; }
 
/* Hide the scroll buttons on multiposts */
.post.has_next > .inner > div.clear, .post.has_next > .inner > p.right { display: none; }
 
/* Change the basic format of the multiposts and add a border line to separate them */
.post.has_next .post {
  border: none;
  box-shadow: none;
  float: left;
  margin-top: 10px;
  padding-top: 10px;
  width: 100%;
  border-top: 2px solid #313131 !important;
  border-radius: 0 !important;
}

Scris de: Wecoc
Topic original: Automerge Double Posts
Și tradus de @Mihai
Mihai

Mihai
Administrator
Administrator

Mesaje : 1463
Varsta : 23
Localizare : București, România
Data înscrierii : 25/09/2014
Mulțumiri : 87
Pachetul Premium Google Chrome phpBB3

http://fgsuport.forumgratuit.ro
Mihai a fost mulțumit de autorul acestui subiect.

Vezi subiectul anterior Vezi subiectul urmator Sus


Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum