Forum gratuit: forum de suport al utilizatorilor
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

Vedeți următorul eveniment din indexul forumului

Vezi subiectul anterior Vezi subiectul urmator In jos

Tutorial Vedeți următorul eveniment din indexul forumului

Mesaj Scris de Mihai Dum Mai 10, 2020 11:39 pm

Vedeți următorul eveniment din indexul forumului


Următorul tutorial vă permite să postați pe indexul forumului următorul eveniment care va veni. Funcționează pe toate versiunile pe forum (inclusiv versiunea pentru mobil), și solicită activarea sistemului de evenimente în prealabil.

Vedeți următorul eveniment din indexul forumului Events10

Crearea de forumuri


Panoul de administrare  General  Forum - Categorii și forumuri

După cum puteți vedea în exemplul de mai sus, ideea este să înlocuiți un sub-forum indicând numărul de evenimente existente, precum și următorul eveniment care va veni. În plus, link-ul forumului este înlocuit de link-ul paginii de afișare a evenimentelor.

Deci, trebuie să creați un nou forum unde doriți să vedeți evenimente. Pentru a afla cum să creați un nou forum, citiți acest tutorial. Puteți să o numiți după cum doriți, chiar dacă numele "Evenimente" pare să fie cel mai consecvent.

Odată ce forumul a fost creat, reveniți la indexul forumului dvs. și faceți clic pe forumul pe care tocmai l-ați creat:

Vedeți următorul eveniment din indexul forumului Events11

Apoi, în bara de adrese, găsiți numărul care apare în URL-ul acestui forum, este identificatorul acestui sub-forum. În exemplul nostru, aceasta este 5. Amintiți-vă această cifră, aceasta ar trebui să fie utilizat în pasul următor.

Vedeți următorul eveniment din indexul forumului Events12

Crearea de scripturi


Panoul de administrare  Module  HTML & JAVASCRIPT - Javascript Code Management

Asigurați-vă că gestionarea codului JavaScript este activată, apoi creați un nou javascript numit "ultimul eveniment" și pentru plasarea "Indexul forumului".

Introduceți următorul cod:
Cod:
$(function() {
  $.get( "/events", function( data ) {
  
    var f_id = 3;
  
    var version = $('.bodylinewidth')[0] ? 0 :
      document.getElementById('phpbb') ? 1 :
      $('.pun')[0] ? 2 :
      document.getElementById('ipbwrapper') ? 3 :
      document.getElementById('modernbb') ? 4 :
      document.getElementById('mpage-body-modern') ? 5 :
      'badapple';
 
    var vdata = {
      ev_item : ['.EV_Row', '.EV_Item', '.EV_Item', '.EV_Item', '.EV_Item', ''][version],
      f_closest : ['tr', 'li.row', 'tr', 'tr', 'li.row', '.forum-content'][version],
      f_content_class : ['gensmall', 'eventInForum', 'eventInForum', 'eventInForum', 'eventInForum', 'eventInForum'][version],
      f_infos_splitter : [' ', ' ', '<i class="ion-calendar"></i> ', '<i class="ion-calendar"></i> ', '<i class="ion-calendar"></i>', ''][version],
      f_child_topics : ['td.row3', 'dd.topics', 'td.tc2', 'td:eq(1)', 'dd.topics', ''][version],
      f_child_posts : ['td:eq(3)', 'dd.posts', 'td.tc3', 'td:eq(2)', 'dd.posts', '.forum-statistics'][version],
      f_child_lastposts : ['td.row3.over', 'dd.lastpost', 'td.tcr', 'td.row1:not(.centered)', 'dd.lastpost', '.forum-lastpost-time'][version],
      separator : ['<br />', '<br />', '<br />', '<br />', '<br />', ''][version]
    };
 
    if( $('.EV_List', data).length ) {
      var count_future = 0,
          count_past = 0,
          nextEvent = "Aucun",
          date = '',
          location = '';
    
      if( $( ".EV_List[id*='new']", data ).length ) {
        var future = $( ".EV_List[id*='new']", data ),
            next = $(vdata.ev_item + ' .EV_ItemTitle:first', future).find('a'),
            infos = $(vdata.ev_item + ' .EV_ItemTitle:first', future).find('p').html();
      
        if( version != 5 ) { /* not displayed on mobile version */
          if( infos.search( vdata.f_infos_splitter ) != '-1' ) {
            var infos = infos.split( vdata.f_infos_splitter ),
                date = infos[1].replace(/ /g, ''),
                location = infos[0].replace(/&nbsp;/g, '');
          } else {
            var date = infos,
                location = '';
          }
        }
      
        var count_future = $('.EV_ItemTitle', future).length,
            nextEvent = '<a href="' + next.attr('href') +'">' + next.text() + '</a>' + vdata.separator + date + vdata.separator + location;
      }
 
      if( $( ".EV_List[id*='old']", data ).length ) {
        var past = $( ".EV_List[id*='old']", data );
        var count_past = $('.EV_ItemTitle', past).length;
      }
 
      if( $('a[href^="/f'+ f_id +'-"]').length ) {
        var t_forum = $('a[href^="/f'+ f_id +'-"]'),
            t_closest = t_forum.closest( vdata.f_closest );
      
      if( version == 5) {
         t_forum.attr('href', '/events');
         t_forum.find( vdata.f_child_posts ).html('<span class="'+ vdata.f_content_class +'">' + count_future + ' à venir</span>');
         t_forum.find( vdata.f_child_lastposts ).html('<span class="'+ vdata.f_content_class +'">Prochain : ' + nextEvent + '</span>');
      } else {
         t_forum.attr('href', '/events');
         t_closest.find( vdata.f_child_topics ).html('<span class="'+ vdata.f_content_class +'">' + count_past + ' passé' + ((count_past > 1) ? "s" : "") +'</span>');
         t_closest.find( vdata.f_child_posts ).html('<span class="'+ vdata.f_content_class +'">' + count_future + ' à venir</span>');
         t_closest.find( vdata.f_child_lastposts ).html('<span class="'+ vdata.f_content_class +'">Prochain : ' + nextEvent + '</span>');
      }
      } else {
        console.log('%c Error : Forum '+ f_id +' doesn\'t exist.', 'background: #E54732; color: white; display: block;');
      }
    } else if(data.search('afficher pour le moment') != '-1') {
      console.log('%c Error : There is no event created yet.', 'background: #E54732; color: white; display: block;');
    }
  }).fail(function() {
    console.log('%c Error : The events aren\'t activated. If you are the forum administrator, please check in your administration panel.', 'background: #E54732; color: white; display: block;');
  });
});

Apoi găsiți linia 4:
Cod:
var f_id = 3;

Și înlocuiți 3 cu numărul obținut anterior la crearea forumului, adică de identificatorul forumului care va servi drept poster al ultimului eveniment. În exemplul nostru, a fost forumul 5.

Vedeți următorul eveniment din indexul forumului 3572709691

Comentarii



  • Acest truc este funcțional pe toate versiunile de forum,


  • Locația este afișată, evident, numai dacă evenimentul o indică,


  • Diferitele erori care pot apărea sunt afișate în consola browserului dvs.: evenimentele nu au fost activate, nu există eveniment existent, forumul a fost inexistent etc.


Mihai

Mihai
Administrator
Administrator

Mesaje : 1551
Varsta : 26
Localizare : București, România
Data înscrierii : 25/09/2014
Mulțumiri : 101
Google Chrome phpBB3

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

Vezi subiectul anterior Vezi subiectul urmator Sus

- Subiecte similare

Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum