Topic simili - manca autore

3 partecipanti


In corso Topic simili - manca autore

Messaggio Da gandalf77 Gio 20 Gen 2022 - 17:19

Buongiorno.
Ho inserito i codici javascript e CSS suggeriti in questo vostro tutorial: https://aiuto.forumattivo.it/t20091-argomenti-simili-durante-la-creazione-di-un-topic?highlight=topic+simili
Di funzionare funziona, ma non viene riportato nè l'autore, nè l'argomento ospite:

Topic simili - manca autore Immagi13

Cosa fare?

In alternativa: qual'è il codice messo su questo forum per suggerire allo stesso modo gli argomenti su un unica riga?
avatar
gandalf77
****

Messaggi : 221

Visualizza il profilo https://www.passionetennis.com/
gandalf77 è stato ringraziato dall'autore di questo topic.

In corso Re: Topic simili - manca autore

Messaggio Da Niko Gio 20 Gen 2022 - 18:41

Ciao,

prova a fare un tentativo sostituendo il codice javascript con questo :bene:


Codice:
          /* The following code is DOM-dependent. It may not work if you modify the posting structure in the forum templates */
     
            var FLRX = FLRX || {};
     
            FLRX.similarTopics = (function () {
     
                'use strict';
     
                let settings = { // default settings
                    forums : [],
                    searchIn : false,
                    maxTopics : 5,
                    wordMinLength: 4,
     
     
                    autocomplete: false, // disable browser autocomplete from subject input
     
                    /* Advanced settings */
                    excludedCharacters : new RegExp(/[.,\/#!$%\^&\*¿?!¡;:{}\\=\-_`~"«“‘’”»()\[\]]/, 'g'), // The ignored characters from the topic title.
                    dom : { // default settings (should work if left like this with unmodified templates)
     
                        /* Search page */
                        topicscontainer : '.forabg',
                        topic          : 'dd.dterm',
                        infocontainer  : '.span-tab',
                        titlelink      : '.topic-author a',
                        userlink        : 'a[href*="/u"]',
                        forumlink      : '.topic-author a[href*="/f"]',
                        topicicon      : 'dl.icon',
     
                        /* structure */
                        visible        : 'visible',
     
                        /* posting page */
                        titleinput      : '#postingbox input[name="subject"]',
                        inputcontainer  : 'dl',
     
                        /* created elements */
                        maincontainer  : $('<div />', { id : 'similarTopics' }),
                        similartopiccont : $('<div />', { class : 'topic-container' }),
                        loadingelm      : $('<div />', { class : 'spinner' })
                                            .append($('<div/>', { class:'double-bounce1' }))
                                            .append($('<div/>', { class:'double-bounce2' })),
                        topicelmcont    : $('<div />', { class: 'topic' }),
                        topicelmtitle  : $('<div />', { class: 'topic-title' }),
                        topicdatacont  : $('<div />', { class: 'topic-data' }),
                        topicflags      : $('<div />', { class: 'topic-flags' }),
                        topiciconcont  : $('<div />', { class: 'topic-icon' }),
                        topicstatus    : $('<div />', { class: 'topic-status' }),
                        topicelminfo    : $('<div />', { class: 'topic-info' }),
                        topicauthor    : $('<span />', { class: 'topic-author', text: 'by ' }),
                        topicforum      : $('<span />', { class: 'topic-forum', text: ' in ' }),
                        similarstitle  : $('<h4 />', { class: 'similarTopics-title', text: 'You may be interested in checking this topics before opening a new one' }),
     
                    },
                },
     
                structure = {},
     
                request,
     
                debounce = function(cb, delay) {
                    let timeout;
                    return function(...a) {
                        clearTimeout(timeout);
                        timeout = setTimeout( _ arrow { timeout = null;  cb.call(this, ...a);  }, delay);
                    };
                },
     
                /* transforms a UTF8-encoded URI into Windows-1252 */
                sanitizeURI = function(uri) {
     
                    /* For some reason Forumotion uses Windows-1252 encoding in search URIs.
                    This workaround will only fix issues with Spanish characters */
     
                    return uri.replace(/%C3%91/g, '%D1') // Ñ
                        .replace(/%C3%B1/g, '%F1') // ñ
                        .replace(/%C3%81/g, '%C1') // Á
                        .replace(/%C3%89/g, '%C9') // É
                        .replace(/%C3%8D/g, '%CD') // Í
                        .replace(/%C3%93/g, '%D3') // Ó
                        .replace(/%C3%9A/g, '%DA') // Ú
                        .replace(/%C3%9C/g, '%DC') // Ü
                        .replace(/%C3%A1/g, '%E1') // á
                        .replace(/%C3%A9/g, '%E9') // é
                        .replace(/%C3%AD/g, '%ED') // í
                        .replace(/%C3%B3/g, '%F3') // ó
                        .replace(/%C3%BA/g, '%FA') // ú
                        .replace(/%C3%BC/g, '%FC'); // ü
                },
     
                /* returns an object array (representation of topics) from a search URL synchronously */
                searchTopics = function(url, cb) {
                    $.ajax({
                        url : url,
                    }).done(function(data) {
                        let relatedTopics = [],
                            $forabg = $(settings.dom.topicscontainer, data);
                        if($forabg.length) {
                            $forabg.find(settings.dom.topic).slice(0, settings.maxTopics).each(function() {
                         
                                let $this = $(this),
                                $topictitle = $this.find(settings.dom.titlelink),
                                $spantab = $this.find(settings.dom.infocontainer),
                                $forumlink = $spantab.find(settings.dom.forumlink),
                                $userlink = $spantab.find(settings.dom.userlink),
                                $topicicon = $this.closest(settings.dom.topicicon);
     
                                relatedTopics.push({
                                    title  : $topictitle.text().trim(),
                                    url    : $topictitle.attr('href'),
                                    icon  : $this.css('background-image').slice(4, -1),
                                    status : $topicicon.css('background-image').length
                                                ? $topicicon.css('background-image').slice(4, -1)
                                                : false,
                                    forum  : {
                                        name : $forumlink.text(),
                                        url  : $forumlink.attr('href'),
                                    },
                                    user  : {
                                        name : $userlink.text(),
                                        url  : $userlink.attr('href'),
                                    },
                                });
                            });
                        }
     
                        cb.call(this, relatedTopics);
                    }).fail(_ arrow {let up; throw up || false});
                },
     
                /* returns an array with the words of a string that fulfil conditions of settings.excludedCharacters */
                getWords = function(str) {
                    return str.trim().replace(settings.excludedCharacters, '').split(' ').filter(elm arrow elm.length >= settings.wordMinLength);
                },
     
                /* updates the similar topics DOM structure with the ones in the input array */
                updateDOM = function(arr) {
     
                    structure.topiccontainer.empty();
     
                    if(arr.length) {
                        let docfrag = document.createDocumentFragment();
                        $.each(arr, function(index, topic) {
     
                            let $topicTitle = settings.dom.topicelmtitle.clone(),
                            $topicContainer = settings.dom.topicelmcont.clone(),
                            $topicInfo      = settings.dom.topicelminfo.clone(),
                            $topicauthor    = settings.dom.topicauthor.clone(),
                            $topicstatus    = settings.dom.topicstatus.clone(),
                            $topicforum    = settings.dom.topicforum.clone(),
                            $topicflags    = settings.dom.topicflags.clone(),
                            $topicdata      = settings.dom.topicdatacont.clone(),
                            $topicicon      = settings.dom.topiciconcont.clone(),
     
                            /* link creation */
                            $topicLink  = $('<a />', { href: topic.url, text: topic.title }),
                            $forumlink  = $('<a />', { href: topic.forum.url, text: topic.forum.name }),
                            $authorlink = $('<a />', { href: topic.user.url, text: topic.user.name });
     
                            $topicicon.css('background-image', `url('${ topic.icon }')`);
                            topic.status && $topicstatus.css('background-image', `url('${ topic.status }')`);
     
                            $topicauthor.append($authorlink);
                            $topicforum.append($forumlink);
                            $topicTitle.append($topicLink);
                            $topicInfo.append($topicauthor, $topicforum);
                            $topicdata.append($topicTitle, $topicInfo);
                            $topicflags.append($topicstatus, $topicicon);
                            $topicContainer.append($topicflags, $topicdata);
     
                            docfrag.append($topicContainer[0]);
     
                        });
                        structure.topiccontainer[0].appendChild(docfrag);
                 
                    } else
                        structure.maincontainer.removeClass(settings.dom.visible);
                 
                },
     
                setLoadingStatus = function() {
                    structure.loadingcontainer.addClass(settings.dom.visible);
                    structure.recentstitle.removeClass(settings.dom.visible);
                    structure.topiccontainer.removeClass(settings.dom.visible);
                },
                topicsRetrieved = function (){
                    structure.loadingcontainer.removeClass(settings.dom.visible);
                    structure.recentstitle.addClass(settings.dom.visible);
                    structure.topiccontainer.addClass(settings.dom.visible);
                },
     
                searchAlgorithm = function(words, cb) {
                    let params = {
                        search_where    : settings.searchIn || `f${/\?f=(\d+)/.exec(location.search)[1]}`,
                        show_results    : 'topics',
                        sort_by        : 0,
                        sort_dir        : 'DESC',
                        search_terms    : 'all',
                        search_keywords : words.join(' '),
                    };
     
                    searchTopics(`/search?${sanitizeURI($.param(params))}`, function(arr) {
                        let relatedTopics = arr;
     
                        if(relatedTopics.length < settings.maxTopics) {
                            params.search_terms = 'any';
                            searchTopics(`/search?${sanitizeURI($.param(params))}`, function(arr) {
                                let searchAnyWord = arr,
                                neededElms = settings.maxTopics - relatedTopics.length;
                                searchAnyWord = searchAnyWord.filter(elm arrow relatedTopics.find(e arrow e.url == elm.url) === undefined); // Ignore duplicates
                                relatedTopics = [...relatedTopics, ...searchAnyWord.slice(0, neededElms)];
     
                                cb.call(this, relatedTopics);
     
                            });
                        }
                 
                        cb.call(this, relatedTopics);
     
                    });
     
                },
     
                /* main function */
                searchSimilarTopics = function($title) {
                    let words = getWords($title.val());
             
     
                    if(words.length == 0)
                        return;
     
                    // for the first time, if it was hidden
                    structure.maincontainer.addClass(settings.dom.visible);
     
                    setLoadingStatus();
     
                    searchAlgorithm(words, function(arr) {
                        updateDOM(arr);
                        topicsRetrieved();
                    });
     
                },
                generateStructure = function($title) {
                    let $similarTopics = settings.dom.maincontainer.clone(),
                    $spinner = settings.dom.loadingelm.clone(),
                    $topicsContainer = settings.dom.similartopiccont.clone(),
                    $recentsTitle = settings.dom.similarstitle.clone();
             
                    structure = {
                        maincontainer    : $similarTopics,
                        loadingcontainer : $spinner,
                        topiccontainer  : $topicsContainer,
                        recentstitle    : $recentsTitle,
                    };
     
                    $similarTopics.append($spinner, $recentsTitle, $topicsContainer);
     
                    $title.closest(settings.dom.inputcontainer).after($similarTopics);
                },
                init = function(options) {
                    $.extend(true, settings, options);
     
                    let timeout,
                    $title = $(settings.dom.titleinput);
     
                    if(!settings.autocomplete)
                        $title.attr('autocomplete', 'off');
     
                    // append the basic dom structure (should be hidden by default with CSS)
                    generateStructure($title);
     
                    $title.on('keypress', debounce(function(e) {
                        if(e.which !== 0)
                            searchSimilarTopics($title);
                    }, 500));
     
                };
     
     
                /* API :-) */
                return {
                    init : init,
                };
     
            })();
     
     
            !function() {
     
                const settings = {
                    forums : [1,2,3,4,5,6,7], // Forum IDs (separated by comma) where the "Similar Topics" feature will be enabled. Set to true to enable the feature everywhere (not recommended).
                    searchIn : '-1', // Where the searches will take place. Use -1 to search everywhere. If not set, it will search the forum where the topic is being created
                    maxTopics : 5, // Maximum amount of topics shown
                };
     
     
                location.pathname == '/post' &&
                location.search.indexOf('&mode=newtopic') > -1 &&
                (settings.forums === true || settings.forums.some(id arrow location.search.indexOf(`?f=${id}`) > -1)) &&
                $(function() {
                    FLRX.similarTopics.init(settings);
                });
     
            }();

Se non dovesse ancora funzionare fammelo sapere che provo a registrarmi sul tuo forum e valutare Topic simili - manca autore 3706843607

A presto :thanks:
Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 25
Messaggi : 8845
Località : Provincia di Varese

Visualizza il profilo https://www.fmcodes.net/
Niko è stato ringraziato dall'autore di questo topic.

In corso Re: Topic simili - manca autore

Messaggio Da gandalf77 Mar 25 Gen 2022 - 18:40

Con questo non funziona proprio......ho rimesso quello di prima.
avatar
gandalf77
****

Messaggi : 221

Visualizza il profilo https://www.passionetennis.com/
gandalf77 è stato ringraziato dall'autore di questo topic.

In corso Re: Topic simili - manca autore

Messaggio Da Niko Mar 25 Gen 2022 - 22:57

Il tuo forum che versione utilizza?

In ogni caso prova a vedere se l'aggiunta al tutorial fa al caso tuo, altrimenti devo scervellarmi un attimo per vedere bene sul tuo forum perchè non funziona Embarassed

https://aiuto.forumattivo.it/t20091-argomenti-simili-durante-la-creazione-di-un-topic#148525
Niko
Niko
Moderatore
Moderatore

Sesso : Maschio
Età : 25
Messaggi : 8845
Località : Provincia di Varese

Visualizza il profilo https://www.fmcodes.net/
Niko è stato ringraziato dall'autore di questo topic.

In corso Re: Topic simili - manca autore

Messaggio Da jessy Mer 26 Gen 2022 - 21:07

Se non sbaglio dovresti completarlo con dei dati del tuo forum.controlla un attimo forse mi sbaglio.

https://asistencia.foroactivo.com/t152394-sugerencia-de-temas-ya-publicados-en-la-creacion-de-nuevos-temas
jessy
jessy
*****

Sesso : Femmina
Età : 23
Messaggi : 624
Località : Roma

Visualizza il profilo http://ilgiornaledibordo.forumattivo.com
jessy è stato ringraziato dall'autore di questo topic.

Visualizza l'argomento precedente Visualizza l'argomento successivo Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.