Rank automático quando adicionado em um grupo
3 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1 • Compartilhe
Rank automático quando adicionado em um grupo
Detalhes da questão
Endereço do fórum: https://policiadme.forumeiros.com/
Versão do fórum: AwesomeBB
Descrição
Olá! Venho procurando deixar meu fórum cada vez mais prático de ser usado pelos moderadores/administradores e vi que uma função em específico pode ser otimizada, que no caso é a de adicionar membros em ranks. Procurei saber se há alguma forma de automatizar essa função, para quando o membro é adicionado no grupo e por consequência o perfil do mesmo ganha o rank, e de todas as formas que testei não consegui resultado.
O tópico que usei de referência para tentar adicionar a função no fórum foi esse: https://ajuda.forumeiros.com/t100282-como-setar-um-rank-altomaticamente-com-o-grupo
e todos os outros linkados no mesmo, ditos como tópicos que poderiam resolver a solução.
Que no caso foi adicionar o código abaixo em um novo JavaScript:
- Código:
- Código:
}
jQuery(document).ready(function(){jQuery('.post').each(function(){
var cor = "#760094";
var rank = "Academia Publicitária Militar";
var imagem = "https://i.imgur.com/A9K0F5N.png";
jQuery('.post span[style="color:'+cor+'"]').closest(".post").find("dl dd:eq(0)").html(rank+'<br><img src="'+imagem+'" alt='+rank+' title='+rank+'>');});});
}
jQuery(document).ready(function(){jQuery('.post').each(function(){
var cor = "#663300";
var rank = "Centro de Recursos Humanos";
var imagem = "https://i.imgur.com/wK2NNek.png";
jQuery('.post span[style="color:'+cor+'"]').closest(".post").find("dl dd:eq(0)").html(rank+'<br><img src="'+imagem+'" alt='+rank+' title='+rank+'>');});});
}
O que fiz foi repetir o código para 6 ranks que queria adicionar essa "automação"
E outra coisa, caso a minha questão acima tenha solução, os "ranks automáticos" terão ordem assim como, por exemplo, os ícones do Font Awesome nos grupos? Onde a ordem do grupo é levada em consideração para definir qual ícone irá aparecer no prefixo do nick do membro?
No mais, obrigado pela atenção o/
Re: Rank automático quando adicionado em um grupo
Oi, Aluado! Como vai? Espero que tudo bem.. Para aplicar a função desejada, crie uma página JavaScript com investimento em todas as páginas.
Para multiplicar e ir aplicando a todos os grupos, copie o código da explicação e arrume-o de acordo com o desejado. Quando fizer, retorne para dizer se funcionou, estou no aguardo!
- Código:
/**
* Automatic rank.
*
* @author Luiz Felipe F. (luuuiiiz.)
* @version 1.0.0
* @license MIT
*/
(function ($) {
'use strict';
var ranks = [
{
color: '#000000',
rank: {
name: 'Corregedor',
className: 'rank cor'
}
},
{
color: '#660000',
rank: {
name: 'GATE',
className: 'rank gate'
}
}
];
var exceptions = [
];
/**
* 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);
- Código:
{
color: '#000000', // Cor do grupo*
rank: {
name: 'Corregedor', // Nome do rank para o grupo que usa a cor "#000000"*
className: 'rank cor' // Nome da classe do rank (igual está na folha de estilo)
}
},
Para multiplicar e ir aplicando a todos os grupos, copie o código da explicação e arrume-o de acordo com o desejado. Quando fizer, retorne para dizer se funcionou, estou no aguardo!
Mpezin
Ajudeiro do Fórum dos Fóruns
Re: Rank automático quando adicionado em um grupo
Olá @Mpezin, obrigado pela resposta.
Infelizmente não deu resultado, não sei se foi algo que eu fiz de errado, muito provavelmente foi, então vou estar deixando as mudança que fiz abaixo:
Além do código, esses são os grupos e ranks do fórum:
Grupos: https://prnt.sc/1z7vhxt
Ranks: https://prnt.sc/1z7vlle
No mais, obrigado pela ajuda o/
Infelizmente não deu resultado, não sei se foi algo que eu fiz de errado, muito provavelmente foi, então vou estar deixando as mudança que fiz abaixo:
- Código:
/**
* Automatic rank.
*
* @author Luiz Felipe F. (luuuiiiz.)
* @version 1.0.0
* @license MIT
*/
(function ($) {
'use strict';
var ranks = [
{
color: '#760094',
rank: {
name: 'Academia Publicitária Militar (APM) ',
className: 'Academia Publicitária Militar'
}
},
{
color: '#663300',
rank: {
name: 'Centro de Recursos Humanos (CRH)',
className: 'Centro de Recursos Humanos'
}
},
{
color: '#36B5E3',
rank: {
name: 'Ministério Público (MNP)',
className: 'Ministro Público'
}
},
{
color: '#663300',
rank: {
name: 'Centro de Recursos Humanos (CRH)',
className: 'Centro de Recursos Humanos'
}
},
{
color: '#8A0000',
rank: {
name: 'Grupamento de Operações Especiais',
className: 'Grupamento de Operações Especiais'
}
},
{
color: '#466E46',
rank: {
name: 'ABIN',
className: 'Agência Brasileira de Inteligência'
}
},
];
var exceptions = [
];
/**
* 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);
Além do código, esses são os grupos e ranks do fórum:
Grupos: https://prnt.sc/1z7vhxt
Ranks: https://prnt.sc/1z7vlle
No mais, obrigado pela ajuda o/
Re: Rank automático quando adicionado em um grupo
Oh, ok.. Fiz umas alterações em seu código, segue:
Além de inserir o código arrumado, confira se o Gerenciamento dos Códigos JavaScript está ativado em seu fórum, segue o passo a passo:
Painel administrativo > Módulos > Gestão dos Códigos JavaScript >"Habilitar o gerenciamento dos códigos JavaScript"
Caso a opção se encontre como "Não", altere para "Sim" e clique em salvar.
Espero retorno,
Mpezin.
- Código:
/**
* Automatic rank.
*
* @author Luiz Felipe F. (luuuiiiz.)
* @version 1.0.0
* @license MIT
*/
(function ($) {
'use strict';
var ranks = [
{
color: '#760094',
rank: {
name: 'Academia Publicitária Militar (APM) ',
className: 'Academia Publicitária Militar'
}
},
{
color: '#663300',
rank: {
name: 'Centro de Recursos Humanos (CRH)',
className: 'Centro de Recursos Humanos'
}
},
{
color: '#36B5E3',
rank: {
name: 'Ministério Público (MNP)',
className: 'Ministro Público'
}
},
{
color: '#663300',
rank: {
name: 'Centro de Recursos Humanos (CRH)',
className: 'Centro de Recursos Humanos'
}
},
{
color: '#8A0000',
rank: {
name: 'Grupamento de Operações Especiais',
className: 'Grupamento de Operações Especiais'
}
},
{
color: '#466E46',
rank: {
name: 'ABIN',
className: 'Agência Brasileira de Inteligência'
}
},
];
var exceptions = [
];
/**
* 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);
Além de inserir o código arrumado, confira se o Gerenciamento dos Códigos JavaScript está ativado em seu fórum, segue o passo a passo:
Painel administrativo > Módulos > Gestão dos Códigos JavaScript >"Habilitar o gerenciamento dos códigos JavaScript"
Caso a opção se encontre como "Não", altere para "Sim" e clique em salvar.
Espero retorno,
Mpezin.
Re: Rank automático quando adicionado em um grupo
Tópico resolvidoTópico arquivado por inatividade por parte do autor, marcado como resolvido por ter solução apropriada à questão. |
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos