[AddOn] Últimos assuntos personalizado

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

  • 0

[AddOn] Últimos assuntos personalizado

Mensagem por Daemon em 31/05/15, 08:57 pm


Últimos assuntos personalizado
Este código irá clonar o widget de últimos assuntos, e será exibido de outra maneira.
Características e aplicação
Criador: @Daemon
Versão: 1.0
Versão: PunBB/PhpBB3/Invision
Resultado da aplicação
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:
$(function() {
 $('head').append(
 '<style type="text/css">' +
 '.recentTopics .main-content {' +
 '  font-family: helvetica, arial, sans-serif !important;' +
 '  line-height: 15px;' +
 '  padding: 0;' +
 '}' +
 '.recentTopics ul {' +
 '  padding-left: 0 !important;' +
 '}' +
 '.mini_photo {' +
 '  margin-right: 5px;' +
 '}' +
 'li.recentPost {' +
 '  min-height: 50px;' +
 '  padding: 1em 1em 0.5em 1em;' +
 '  list-style-type: none;' +
 '  border-bottom: 1px solid #f3f3f3;' +
 '}' +
 '.recentPost a[href^="/t"] {' +
 '  font-size: 14px;' +
 '  text-decoration: none;' +
 '  font-weight: bold;' +
 '}' +
 '.recentInline {' +
 '  min-width: 30%;' +
 '  font-size: 12px;' +
 '  float: right;' +
 '}' +
 '.small_links {' +
 '  display: table;' +
 '  margin-top: 10px;' +
 '}' +
 '.local {' +
 '  font-size: 0;' +
 '}' +
 '.local a:after {' +
 '  content: " → ";' +
 '}' +
 '.local a:last-child:after {' +
 '  content: "";' +
 '}' +
 '.small_links, .small_links a {' +
 '  color: #a4a4a4 !important;' +
 '  font-size: 12px !important;' +
 '  text-decoration: none !important;' +
 '}' +
 '.creator_post:before {' +
 '  content: "Tópico iniciado por ";' +
 '}' +
 '.creator_post:after {' +
 '  content: ", Em: ";' +
 '}' +
 '.recentTopics {' +
 '  margin: 15px 0;' +
 '}' +
 '</style>'
 );

 var jModuleRecentPosts = $('.module:contains("Últimos assuntos")');

 jModuleRecentPosts
 .clone() // Clonando widget de últimos assuntos
 .prependTo('#main-content') // Inserindo no main-content
 .addClass('recentTopics') // Adicionando nova classe
 .removeClass('module'); // Removendo classe existente

 $('.recentTopics').each(function() {
      $(this).html(
              $(this).html()
                .replace(/\»/g, '')
                .replace(/\<a href="\/t(.*?)\-/g,'<li class="recentPost"><a href="/t$1-')
                .replace(/\<\/a\><br\>/g, '</a><div class="recentInline">')
                .replace(/\<a href="\/u([0-9])"\>(.*?)<\/a\>/g, '<a href="/u$1">$2</a><br>')
      ).find('li').wrapAll('<ul></ul>');
      $('a[href^="/u"]', this).each(function() {
          var jLinkUser = $(this).attr('href');
          $(this).before(
          '<a href="' + jLinkUser + '" class="user_photo lastpost-avatar">' +
          '    <img src="http://r26.imgfast.net/users/2617/31/90/74/avatars/1-40.png" alt="no_photo" class="mini_photo" />' +
          '</a>'
          );
          var jImg = $(this).prev().find('img'),
                jUser = sessionStorage.getItem(jLinkUser);
          if(jUser) {
              jImg.attr('src', jUser);
          } else {
          $.ajax({
                  url: jLinkUser + "?change_version=punbb",
                  type: 'GET',
                  success: function(data) {
                    var jImage = $('#profile-advanced-right .module:first img:first', data).attr('src');
                          jImg.attr('src', jImage);
                          sessionStorage.setItem(jLinkUser, jImage);
                  },
                  error: function(err)
                  {
                     alert("AJAX error in request (Last posts)");
                   }
          });
          }
      });
      $('a[href^="/t"]', this).each(function() {
          var jThis = $(this),
                jLinkTpc = jThis.attr('href').split('#')[0];
          $.ajax({
                  url: jLinkTpc + "?change_version=punbb",
                  type: 'GET',
                  success: function(recent) {
                  var jCreator = '',
                        jLocal = $('.crumbs:first a.nav', recent).wrapAll('<div></div>').parent().html(),
                        jPaging = $('.paging', recent)[0];
                  jThis.parents('.recentPost').append(
                  '<div class="small_links">' +
                  '    <span class="creator_post">Carregando...</span>' +
                  '    <span class="local">' + jLocal + '</span>' +
                  '</div>'
                  ).find('a[href*="change_version"]').each(function() {
                    var jHref = $(this).attr('href').split('?')[0];
                    $(this).attr('href', jHref);
                  });
                  if(jPaging) {
                      jCreator = $('a:contains("1")', jPaging).attr('href');
                      jThis.parents('.recentPost').find('.creator_post').load(jCreator + ' .username:first', function() {
                            $(this).text($(this).text());
                      });
                  } else {
                      jCreator = $('.username:first', recent).text();
                      jThis.parents('.recentPost').find('.creator_post').text(jCreator);
                  }
                  },
                  error: function(err)
                  {
                     alert("AJAX error in request (Last posts)");
                   }
          });
      });
 });
});

Importante: O widget de últimos assuntos precisa estar ativo para que o código entre em ação.


Última edição por Daemon em 09/07/15, 11:33 am, editado 2 vez(es)
avatar

Daemon
Membro do Fórum

Masculino
Inscrito dia : 01/03/2012
Mensagens : 1096
Pontos Ativos : 1688

Ver perfil do usuário http://bestskins.forumeiros.com/

Re: [AddOn] Últimos assuntos personalizado

Mensagem por Shaman em 31/05/15, 09:09 pm

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

Shaman
Membro do Fórum

Masculino
Inscrito dia : 30/01/2014
Mensagens : 1784
Pontos Ativos : 2448

Ver perfil do usuário http://www.nexplorer.tk https://www.facebook.com/pages/Nexplorer/857666487628799?fref=ts

Re: [AddOn] Últimos assuntos personalizado

Mensagem por JScript em 31/05/15, 09:11 pm

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
avatar

JScript
Membro do Fórum

Masculino
Inscrito dia : 14/03/2013
Mensagens : 1449
Pontos Ativos : 1900

Ver perfil do usuário http://jscript.forumeiros.com/

Re: [AddOn] Últimos assuntos personalizado

Mensagem por DeeW. em 19/06/15, 06:59 am

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

[]'s
avatar

DeeW.
Nível 10

Masculino
Inscrito dia : 27/05/2014
Mensagens : 271
Pontos Ativos : 389

Ver perfil do usuário http://webpixel.forum-pro.net https://www.facebook.com/headbanger.d

Re: [AddOn] Últimos assuntos personalizado

Mensagem por PrisoN†BreaK em 26/11/15, 11:39 am

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?
avatar

PrisoN†BreaK
Membro do Fórum

Masculino
Inscrito dia : 23/10/2015
Mensagens : 1236
Pontos Ativos : 1740

Ver perfil do usuário http://brasilplayfreedomofc.forumeiros.com/forum

Re: [AddOn] Últimos assuntos personalizado

Mensagem por Shek em 26/11/15, 11:49 am

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: http://ajuda.forumeiros.com/-f22 Muito feliz


Shek CrowleyAdmineiro - Fórum dos Fóruns

Clicar no botão ou no OBRIGADO não mata ninguém!
avatar

Shek
Admineiro
Admineiro

Masculino
Inscrito dia : 11/04/2009
Mensagens : 17141
Pontos Ativos : 21403

Ver perfil do usuário http://www.shiftactif.com https://go.topicit.net/ZosT/61pMt1mPsG https://www.facebook.com/shek.crowley https://twitter.com/shek_forumactif

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