Rank automático no AwesomeBB

3 participantes

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

Tópico resolvido Rank automático no AwesomeBB

Mensagem por Rike100 11.10.22 1:36

Detalhes da questão


Endereço do fórum: http://dsapm.forumeiros.com
Versão do fórum: AwesomeBB
Acesso ao fórum:
  • Nome de usuário: Convidado
  • Palavra-passe: Convidado

Descrição


Eu tenho esse código mas ele só funciona no tema ModernBB, mas o meu fórum é AwesomeBB

O código é o seguinte:

Código:
/**
 * Automatic rank.
 *
 * @author   Luiz Felipe F. (luuuiiiz.)
 * @version  1.0.0
 * @license  MIT
 */

(function ($) {
  'use strict';

  var ranks = [
        {
      color: '#B71317',
      rank: {
        name: 'Administrador',
        className: 'rank adm'
      }
    },
            {
      color: '#0A0A0A',
      rank: {
        name: 'Estado Maior',
        className: 'rank cor'
      }
    },
                {
      color: '#0A0A0A',
      rank: {
        name: 'Estado Maior',
        className: 'rank cor'
      }
    },
    {
      color: '#A62323',
      rank: {
        name: 'CIGS',
        className: 'rank cot' 
      }
    },
        {
      color: '#00C6FF',
      rank: {
        name: 'Recursos Humanos',
        className: 'rank crh' 
      }
    },
            {
      color: '#EA7104',
      rank: {
        name: 'Relações Públicas',
        className: 'rank dcs' 
      }
    },
                {
      color: '#990909',
      rank: {
        name: 'Brigada de Preparação Militar',
        className: 'rank pcp' 
      }
    },
                    {
      color: '#1865A8',
      rank: {
        name: 'Brigada de Graduação Militar',
        className: 'rank scp' 
      }
    },
                        {
      color: '#3296FA',
      rank: {
        name: 'General-de-Brigada',
        className: 'rank supr' 
      }
    }
  ];

  var exceptions = [
    "rank adm",
    "rank pres",
    "rank emb",
    "rank exo"
  ];

  /**
   * Iterate over the rank array.
   * 
   * @param  {string} color
   * @param  {object<jQuery>} $originalRank
   * @return {void}
   */
  function iterate(color, $originalRank) {
    var $except = $originalRank.attr('class');
    var $is_except = false;
    
    $.each(exceptions, function(index, exception) {
      
      if($except == exception) {
        $is_except = true;
        return;
      }
    });
    
    if($is_except) return;

    $.each(ranks, function () {      
      var $dummy = $('<span>')
        .css('color', this.color);

      // If the color is not the same, pass to the next iteration:
      if ($dummy.css('color') !== color) {
        return;
      }

      // Create the rank element:
      var $newRank = $('<div>', {
        'class': 'lf-custom-rank',
      })
        .text(this.rank.name)
        .addClass(this.rank.className);

      $originalRank.replaceWith($newRank);
    });
  }

  $(function () {
    // Topics:
    $('.post .postprofile').each(function () {
      var $this = $(this);
      var $user = $this.find('.postprofile-name > a[href] > span[style]');

      if (!$user.length) {
        $this.css('border-left-color', '#f0f0f0');
        return;
      }
      
      iterate($user.css('color'), $this.find('.postprofile-rank .rank'));
      
      $this.css('border-left-color', $user.css('color'));
    });

    // Profile:
    if (!/^\/u\d+$/.test(location.pathname)) {
      return;
    }

    var $profile = $('#profile-advanced-right');
    var $user = $profile.find('.module > .h3 > span[style]');

      if (!$user.length) {
        return;
      }

    iterate($user.css('color'), $profile.find('.mod-login-rank > br + .rank'));
  });
})(jQuery);

Se alguém puder me ajudar, agradeço desde já.


Última edição por Rike100 em 16.10.22 17:22, editado 1 vez(es)
Rike100

Rike100
*

Masculino
Membro desde : 20/06/2020
Mensagens : 46
Pontos : 81

Ver perfil do usuário https://www.policiacrn.com

Ir para o topo Ir para baixo

  • 0

Tópico resolvido Re: Rank automático no AwesomeBB

Mensagem por Musashi 15.10.22 18:06

@Rike100 muita boa tarde!

Como sentia falta de ajudar aqui no forumeiros, pena que meu tempo acabou ficando bastante curto... Enfim!

Você só precisa modificar o seu Javascript para este:

Código:
/**
 * Automatic rank.
 *
 * @author  Luiz Felipe F. (luuuiiiz.)
 * @version  1.0.0
 * @license  MIT
 */
 
(function ($) {
  'use strict';
 
  var ranks = [
        {
      color: '#B71317',
      rank: {
        name: 'Administrador',
        className: 'rank adm'
      }
    },
            {
      color: '#0A0A0A',
      rank: {
        name: 'Estado Maior',
        className: 'rank cor'
      }
    },
                {
      color: '#0A0A0A',
      rank: {
        name: 'Estado Maior',
        className: 'rank cor'
      }
    },
    {
      color: '#A62323',
      rank: {
        name: 'CIGS',
        className: 'rank cot'
      }
    },
        {
      color: '#00C6FF',
      rank: {
        name: 'Recursos Humanos',
        className: 'rank crh'
      }
    },
            {
      color: '#EA7104',
      rank: {
        name: 'Relações Públicas',
        className: 'rank dcs'
      }
    },
                {
      color: '#990909',
      rank: {
        name: 'Brigada de Preparação Militar',
        className: 'rank pcp'
      }
    },
                    {
      color: '#1865A8',
      rank: {
        name: 'Brigada de Graduação Militar',
        className: 'rank scp'
      }
    },
                        {
      color: '#3296FA',
      rank: {
        name: 'General-de-Brigada',
        className: 'rank supr'
      }
    }
  ];
 
  var exceptions = [
    "rank adm",
    "rank pres",
    "rank emb",
    "rank exo"
  ];
 
  $(".headline-small").css("display", "none");
    $(function() {
        $('.post-wrap .post-aside').each(function() {
            var $this = $(this);
            var $user = $this.find('.post-author .post-author-name > a[href] > span[style]');
            $.each(ranks, function(index, ranks) {
                var $attr = $user.attr('style');
                var reg = new RegExp(ranks.color,'gi');
                if (!reg.test($attr)) {
                    return
                }
                $this.find('.post-author-title').html('<div class="' + ranks.rank.className + '">' + ranks.rank.name + '</div>')
            });
            if (!$user.length) {
                $this.css('border-left-color', '#f0f0f0');
                return
            }
            $this.css('border-left-color', $user.css('color'))
        })
    });
    $(function() {
        $('.box').each(function() {
            var $this = $(this);
            var $user = $this.find('.box-head span > span[style]');
            $.each(ranks, function(index, ranks) {
                var $attr = $user.attr('style');
                var reg = new RegExp(ranks.color,'gi');
                if (!reg.test($attr)) {
                    return
                }
                $this.find('.mod-login-rank').html('<br>Rank: <div class="' + ranks.rank.className + '">' + ranks.rank.name + '</div><br>')
            });
            if (!$user.length) {
                $this.css('border-left-color', '#f0f0f0');
                return
            }
            $this.css('border-left-color', $user.css('color'))
        })
    })
}(jQuery));

Espero que eu tenha ajudado!

Atenciosamente,
Musashi!
Musashi

Musashi
*****

Masculino
Membro desde : 17/02/2021
Mensagens : 409
Pontos : 496

Ver perfil do usuário https://lucasthemes.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Rank automático no AwesomeBB

Mensagem por Rike100 15.10.22 22:39

Deu certo, já pode fechar.
Rike100

Rike100
*

Masculino
Membro desde : 20/06/2020
Mensagens : 46
Pontos : 81

Ver perfil do usuário https://www.policiacrn.com

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Rank automático no AwesomeBB

Mensagem por pedxz 20.10.22 12:16

Tópico resolvido


Movido para "Questões resolvidas".
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7254
Pontos : 8513

Ver perfil do usuário

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

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