[AddOn] Últimos assuntos de fóruns específicos

+2
Shaman
Daemon
6 participantes

Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty [AddOn] Últimos assuntos de fóruns específicos

Mensagem por Daemon 01.06.15 0:57


Últimos assuntos de fóruns específicos
Este código irá criar um elemento que irá exibir últimos assuntos de fóruns pré-definidos.
Características e aplicação
Criador: @Daemon
Versão: 1.223052018
Versão: Todas as versões
Resultado da aplicação
[AddOn] Últimos assuntos de fóruns específicos MaEVCLM
Local de instalação
A instalação é única, e pode ser feita apenas criando um novo javascript. Para isso, acesse Painel de Controle ->> Módulos >> HTML e Javascript >> Gestão dos códigos Javascript >> Criar um novo javascript >> Investimento >> No índice.
Código:
/*
 *  Application: Recent topics from specific forums
 *  Date: 23/05/2018
 *  Version: 1.223052018
 *  Copyright (c) 2018 Daemon <bestskins.forumeiros.com>
 *  This work is free. You can redistribute it and/or modify it
 */
(function() {
    recentPosts = {
        initialize: function() {
            $(function() {
                recentPosts.setupRecentPosts();
            });
        },
        forums: [
            {
                active: true, // Selecionado como ativo
                forum_name: 'Tutoriais',
                forum_id: 2
            },
            {
                forum_name: 'Utilitários Gunbound',
                forum_id: 14
            }
        ],
        loading: 'Carregando...',
        by: 'Por',
        comments: 'Comentários',
        views: 'Visualizações',
        loadingImg: 'https://imgur.com/oBkwUIV.gif',
        numberPosts: 7,  // Número de posts para exibir
        recent: $("<div>", {
            id: 'recent-topics'
        }).html(
        '<ul class="recent-tabs"></ul>' +
        '<div class="loaded-recent">' +
        '    <ul class="loaded-topics"></ul>' +
        '</div>'
        ),
        myCSS: '<style type="text/css">' +
            '* {' +
            '  -webkit-box-sizing: border-box;' +
            '  -moz-box-sizing: border-box;' +
            '  box-sizing: border-box;' +
            '}' +
            '#recent-topics {' +
            '  background-color: #428bca;' +
            '  margin: 11px 0;' +
            '  padding: 5px;' +
            '  display: -webkit-box;' +
            '}' +
            '#recent-topics, .loaded-recent, .loaded-topics {' +
            '  border-radius: 4px;' +
            '}' +
            '.recent-tabs {' +
            '  margin-top: 5px;' +
            '  list-style-type: none;' +
            '  float: left;' +
            '  width: 18%' +
            '}' +
            '#recent-topics:after, #recent-topics:before, .recent-tabs:after, .recent-tabs:before, .loaded-recent:after {' +
            '  display: table;' +
            '  content: " ";' +
            '}' +
            '.recent-tabs li, .recent-tabs li a {' +
            '  display: block;' +
            '  position: relative;' +
            '}' +
            '.recent-tabs li a {' +
            '  padding: 10px 15px;' +
            '  text-decoration: none;' +
            '  color: #fff !important;' +
            '  cursor: pointer;' +
            '  border-radius: 4px 0 0 4px;' +
            '}' +
            '.recent-tabs li a:hover {' +
            '  background-color: rgba(0,0,0,0.3);' +
            '}' +
            '.recent-tabs li a.active {' +
            '  background-color: #fefefe;' +
            '  font-weight: 600;' +
            '  color: #428bca !important;' +
            '}' +
            '.loaded-recent {' +
            '  position: relative;' +
            '  min-height: 1px;' +
            '  background-color: #fefefe;' +
            '  padding: 10px;' +
            '  float: left;' +
            '  width: 82%;' +
            '}' +
            '.loaded-recent:after {' +
            '  clear: both;' +
            '}' +
            '.loaded-topics {' +
            '  background-color: #fff;' +
            '  border: 1px solid #ddd;' +
            '  list-style-type: none;' +
            '}' +
            '.loaded-recent li {' +
            '  border-bottom: 1px dashed #ddd;' +
            '  line-height: 30px;' +
            '  text-align: left;' +
            '}' +
            '.loaded-recent li:last-child {' +
            '  border-bottom: 0;' +
            '}' +
            '.loaded-recent li .topictitle {' +
            '  font-weight: 600;' +
            '  margin: 0 0 0 15px;' +
            '  text-decoration: none;' +
            '}' +
            '.recent-tabs li a, .loaded-topics, .loaded-recent li .topictitle {' +
            '  font-size: 13px;' +
            '}' +
            '.loaded-recent li .recent-author {' +
            '  float: right;' +
            '  padding: 0 10px;' +
            '}' +
            '</style>',
        load: function(a) {
            $.ajax({
                type: "GET",
                url: "/f" + a + "-?change_version=punbb",
                beforeSend: function(obj) {
                    recentPosts.recent.find(".loaded-topics").html(
                    '<center>' +
                    '    <br>' + recentPosts.loading + '<br><img src="' + recentPosts.loadingImg + '" style="height:100px" alt>' +
                    '</center>'
                    );
                },
                success: function(data) {
                    recentPosts.recent.find(".loaded-topics").html("");
                    $("#main-content .table:last a.topictitle:lt(" + recentPosts.numberPosts + ")", data).each(function() {
                        var oThis = $(this),
                            blog = oThis.closest("tr").find(".blog_comments"),
                            topicLink = oThis.prop("outerHTML"),
                            author = oThis.closest("tr").find("td.tcl a[href^='/u']").prop("outerHTML"),
                            numberAnswers = oThis.closest("tr").find("td.tc2").text(),
                            numberViewers = oThis.closest("tr").find("td.tc3").text(),
                            blogNumbers = blog.text().match(/\d+/g),
                            href = null;
                        if (blog.length) {
                            numberAnswers = blogNumbers[0];
                            numberViewers = blogNumbers[1];
                        }
                        recentPosts.recent.find(".loaded-topics").append(
                        '<li>' +
                        '    <span class="recent-author">' + recentPosts.by + ' ' + author + ' - ' + recentPosts.comments + ': ' + numberAnswers + ' - ' + recentPosts.views + ': ' + numberViewers + '</span>' + topicLink + '</a>' +
                        '</li>'
                        );
                        recentPosts.recent.find("a").each(function() {
                            href = $(this).attr("href").split(/(&change|\?change)/g)[0];
                            $(this).attr("href", href);
                        });
                    });
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    console.log(textStatus, errorThrown);
                }
            });
        },
        request: function(a) {
            recentPosts.recent.find(".active").removeClass("active"); // Remove class active
            $(a).addClass("active"); // Add class active
            // Picking the selected tab id
            a = $(a).attr("attr-data");
            recentPosts.load(a);
        },
        setupRecentPosts: function() {
            $(recentPosts.myCSS).appendTo("head");
            $(recentPosts.recent).prependTo("#main-content");
            var activeMenu = "";
            for (var i in recentPosts.forums) {
                var item = recentPosts.forums[i];
                if (item.active) {
                    activeMenu = " active";
                    recentPosts.load(item.forum_id);
                } else {
                    activeMenu = "";
                }
                recentPosts.recent.find(".recent-tabs").append(
                '<li>' +
                '    <a href="javascript:void(0)" onclick="recentPosts.request(this)" class="request-topics' + activeMenu + '" attr-data="' + item.forum_id + '">' + item.forum_name + '</a>' +
                '</li>'
                );
            }
        }
    };
    recentPosts.initialize()
})();

Importante: As instruções estão no próprio código.


Última edição por Daemon em 06.07.18 12:40, editado 4 vez(es)
Daemon
Daemon
Super Membro

Membro desde : 02/03/2012
Mensagens : 1132
Pontos : 1825

http://bestskins.forumeiros.com/

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por Shaman 01.06.15 1:09

Por isso que eu te amo kkkk muito bom @Daemon obrigado mesmo pelo código! Rindo
Shaman
Shaman
Super Membro

Membro desde : 30/01/2014
Mensagens : 1787
Pontos : 2448

http://brasilplayvicio.com.br

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por JScript 01.06.15 1:11

Eu imaginei o seguinte:

-> Que o código pegaria os últimos assuntos/tópicos de cada categoria pré-definida, aleatória ou de apenas uma...

Isso pelo fato de já existir um widget com as mesmas informações, ficando duplicado! Sem contar com a requisição que é dada...!
Outro detalhe é que esta parte .module:contains("Últimos assuntos") precisa ser universalizada em matéria de idiomas.

Edit: Falta a versão phpBB2!

JS
JScript
JScript
Super Membro

Membro desde : 15/03/2013
Mensagens : 1449
Pontos : 1901

http://jscript.forumeiros.com/

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por DeeW. 19.06.15 10:59

Perfeito!
Testei, e funcionou corretamente! Muito feliz
Parabéns, emo.
REP+

[]'s
DeeW.
DeeW.
****

Membro desde : 27/05/2014
Mensagens : 271
Pontos : 389

http://webpixel.forum-pro.net https://www.facebook.com/headbanger.d

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por PrisoN†BreaK 26.11.15 13:39

Eu não estou conseguindo coloca isso em meu fórum http://tatudm.forumeiros.com/forum tem alguma versão dele que pegue na Versão PhpBB2?
PrisoN†BreaK
PrisoN†BreaK
Super Membro

Membro desde : 23/10/2015
Mensagens : 1243
Pontos : 1753

http://brasilplayfreedomofc.forumeiros.com/forum

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por Shek 26.11.15 13:49

PrisoN†BreaK escreveu:Eu não estou conseguindo coloca isso em meu fórum http://tatudm.forumeiros.com/forum tem alguma versão dele que pegue na Versão PhpBB2?
Boa tarde!

Por gentileza, crie uma nova dúvida em: https://ajuda.forumeiros.com/-f22 Muito feliz
Shek
Shek
Principal Contribuidor
Principal Contribuidor

Membro desde : 11/04/2009
Mensagens : 19006
Pontos : 22969

https://shiftactive.blogspot.com/ https://www.facebook.com/ShiftActif https://twitter.com/ShiftActif

Ir para o topo Ir para baixo

[AddOn] Últimos assuntos de fóruns específicos Empty Re: [AddOn] Últimos assuntos de fóruns específicos

Mensagem por Daemon 06.07.18 12:48

Atualizado para a versão: 1.223052018 Estilo cool
Daemon
Daemon
Super Membro

Membro desde : 02/03/2012
Mensagens : 1132
Pontos : 1825

http://bestskins.forumeiros.com/

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos