[TUTORIAL] Tópicos similares

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[TUTORIAL] Tópicos similares

Mensagem por Hancki em 11/07/14, 06:10 am



Tópicos similares

Quando entramos em tópicos, as vezes queremos buscar tópicos similares. Com base nesse código e no tutorial podemos buscar tópicos similares, e realizando uma busca avançada, sem precisar ficar buscando pelo search.


--> Tutoriais, dicas e astúcias <--
Tópicos similares



- Código a ser utilizado:
Código:
if ($('#wrap').length) { // Verifica a existência em phpBB3
    // Kyo Panda & Hancki
    // Tópicos similares
    // phpBB3
    $(function () {
        var title, url, limit;
        limit = 5;
        url = location.pathname.replace(/^(\/t\d+)p\d+/, '$1');
        title = location.pathname.split('-').slice(1).join('+');
        $('<div>').load('/search?search_keywords=' + title + ' .forabg', function () {
            var self, rows;
            self = $(this);
            self.attr('id', 'similar').find('dt').text('Tópicos Similares');
            rows = self.find('.topiclist > .row');
            rows.filter(function (index) {
                return $('.topictitle', this).attr('href').split('?').shift() === url;
            }).remove();
            rows.slice(limit + 1, rows.length).remove();
            if (rows.length > 1) {
                self.insertAfter('.topic-actions:last');
            }
        });
    });
} else if ($('.pun').length) { // Verifica a existência em PunBB
    // Kyo Panda & Hancki
    // Tópicos similares
    // PunBB
    $(function () {
        if (location.href.indexOf('/t') !== -1) {
            var title, similar, topics, url, limit;
            limit = 5;
            url = /.*(\/t\d+[^#\?]*)/g.exec(location.href)[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3');
            title = $.trim($('.posthead h2 a').text());
            similar = $('<div id="similar-topics" class="main"></div>');
            similar.load('/search?search_keywords=' + encodeURIComponent(title) + ' .frm-form', function () {
                var rows;
                similar.find('> form').children().appendTo(similar);
                similar.find('>:not(.main-head):not(.main-content)').remove();
                similar.find('.page-title').text('Tópicos Similares');
                rows = similar.find('.statused tr');
                rows.filter(function (index) {
                    return /(\/t\d+[^#\?]*)/g.exec($('.topictitle', this).attr('href'))[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3') === url;
                }).remove();
                rows.slice(limit + 1, rows.length).remove();
                if (similar.find('.statused tr').length) {
                    similar.insertBefore('#pun-info');
                }
            });
        }
    });
} else if ($('td.bodyline').length) { // Verifica a existência em phpBB2
    // Kyo Panda & Hancki
    // Tópicos similares
    // phpBB2
    $(function () {
        if (location.href.indexOf('/t') !== -1) {
            var title, similar, topics, url, limit;
            limit = 5;
            url = /.*(\/t\d+[^#\?]*)/g.exec(location.href)[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3');
            title = $.trim($('h1.cattitle').text());
            similar = $('<div id="similar-topics"></div>');
            similar.load('/search?search_keywords=' + encodeURIComponent(title) + ' .forumline:first-child', function () {
                var rows;
                similar.find('h1.cattitle').text('Tópicos Similares');
                rows = similar.find('tr:nth-child(n+3):not(:last-child)');
                rows.filter(function (index) {
                    return /(\/t\d+[^#\?]*)/g.exec($('.topictitle', this).attr('href'))[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3') === url;
                }).remove();
                rows.slice(limit + 1, rows.length).remove();
                if (similar.find('tr:nth-child(n+3):not(:last-child)').length) {
                    similar.insertAfter('#page-body .forumline:last');
                }
            });
        }
    });
} else if ($('#ipbwrapper').length) { // Verifica a existência em Invision
    // Kyo Panda & Hancki
    // Tópicos similares
    // Invision
    $(function () {
        if (location.href.indexOf('/t') !== -1) {
            var title, similar, topics, url, limit;
            limit = 5;
            url = /.*(\/t\d+[^#\?]*)/g.exec(location.href)[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3');
            title = $.trim($('.postbody-head h3 a').text());
            similar = $('<div id="similar-topics"></div>');
            similar.load('/search?search_keywords=' + encodeURIComponent(title) + ' .borderwrap', function () {
                var rows;
                similar.find('.maintitle h1').text('Tópicos Similares');
                rows = similar.find('.ipbtable.search > tbody > tr');
                rows.filter(function (index) {
                    return /(\/t\d+[^#\?]*)/g.exec($('.topictitle', this).attr('href'))[1].replace(/(\/t\d+)(p\d+)?(.*)/g, '$1$3') === url;
                }).remove();
                rows.slice(limit + 1, rows.length).remove();
                if (similar.find('.ipbtable.search > tbody > tr').length) {
                    similar.appendTo('#main-content');
                }
            });
        }
    });
}


- Aplicando código JS:
As páginas javascript ativas em seu fórum possibilita inserir scripts e jquery para personalizar seu fórum, contudo é importante saber que qualquer script encontrado na internet acabam por não surgir efeito nos fóruns.

Painel de controle >> Módulos >> HTML & JavaScript >> Gestão dos códigos JavaScripts >>
Seta Título Correspondente ao nome da página JavaScript/jQuery que será criada.
Seta Localização- São destinados os devidos locais para onde você aplicará os efeitos do JavaScript nos fóruns. No nosso caso, aplicaremos Em todas as páginas.
Seta Código JavaScript Campo destinado para receber os códigos JavaScript e jQuery.
Seta Habilitar o gerenciamento dos códigos JavaScript Ao selecionar a opção sim, estará ativando a função páginas Javascript no seu fórum. Se selecionar não, as páginas serão desabilitadas no fórum.

  • Resultado:




© Fórum dos Fóruns


Se tiver alguma dúvida relacionada com este tópico crie um tópico com o seguinte título:
[Dúvida] Tópicos similares
avatar

Hancki
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 03/10/2009
Mensagens : 8048
Pontos Ativos : 12033

Ver perfil do usuário http://programacaoweb.forumeiros.com/ https://www.facebook.com/djtomoficial https://www.facebook.com/djtomoficial

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum