Criação de novas variáveis

2 participantes

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

Tópico resolvido Criação de novas variáveis

Mensagem por Mirotic 23.03.22 6:43

Detalhes da questão


Endereço do fórum: https://utopiarpg.forumeiros.com/
Versão do fórum: phpBB3

Descrição


Olá, há alguma forma de criar variáveis como no exemplo abaixo, com os dados do campo de perfil?

<script>document.write(_userdata.avatar);</script>
Mirotic

Mirotic
Nível 8

Masculino
Membro desde : 17/11/2018
Mensagens : 136
Pontos ativos : 236

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Criação de novas variáveis

Mensagem por pedxz 23.03.22 11:56

Olá @Mirotic,

Crie uma página JavaScript com investimento em todas as páginas e use o seguinte código
Código:
(function($) {
    'use strict';

    $(function() {

        if (!_userdata.session_logged_in) return;

        $.get('/u' + _userdata.user_id, function(data) {
            $('dl[id^="field_id"]', data).each(function() {
                const label = $(this)
                    .find('dt')
                    .text()
                    .toUpperCase()
                    .normalize('NFD')
                    .replace(/[\u0300-\u036f]/g, '')
                    .replace(/[^a-z0-9]+/gi, '-')
                    .replace(/^-|-$/gi, '');
                const content = $(this).find('.field_uneditable').text();

                if (!label || !content) return;


                $('[data-user-field="' + label + '"]')
                    .replaceWith(content);


            });
        });


    });
}(jQuery));
O uso é bem simples basta criar um elemento nos tópicos ou nos templates usando o atributo data-user-field que vai ser sempre substituído pelo valor do campo, por exemplo "Créditos" (https://utopiarpg.forumeiros.com/u1)
Código:
<div data-user-field="CREDITOS"></div>
vai ser substituído por
Código:
10008
Repare que caso o campo tenha caracteres especiais e acentos vão ser removidos. O espaço passa a ser representado por -. O nome do campo fica em letra maiúscula. Outro exemplo a "Data de inscrição" passa a
Código:
<div data-user-field="DATA-DE-INSCRICAO"></div>
Qualquer dúvida, diga!
Atenciosamente,
pedxz.


Última edição por pedxz em 25.03.22 9:44, editado 1 vez(es) (Motivo da edição : ID para atributo data-user-field)
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7019
Pontos ativos : 8247

Ir para o topo Ir para baixo

Tópico resolvido Re: Criação de novas variáveis

Mensagem por Mirotic 23.03.22 23:57

Cara você é demais! Obrigado.
Funcionou para texto, há alguma forma de fazer com imagens?
Mirotic

Mirotic
Nível 8

Masculino
Membro desde : 17/11/2018
Mensagens : 136
Pontos ativos : 236

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Criação de novas variáveis

Mensagem por pedxz 24.03.22 0:36

Mirotic escreveu:há alguma forma de fazer com imagens?
Altere o código para
Código:
(function($) {
            'use strict';
        
            $(function() {
        
                if (!_userdata.session_logged_in) return;
        
                $.get('/u' + _userdata.user_id, function(data) {
                    $('dl[id^="field_id"]', data).each(function() {
                        const label = $(this)
                            .find('dt')
                            .text()
                            .toUpperCase()
                            .normalize('NFD')
                            .replace(/[\u0300-\u036f]/g, '')
                            .replace(/[^a-z0-9]+/gi, '-')
                            .replace(/^-|-$/gi, '');
                        const content = $(this).find('.field_uneditable').text();
                        const img = $(this).find('.field_uneditable > img');
        
        
                        $('[data-user-field="' + label + '"]')
                            .replaceWith((/\bhttps?:\/\/\S*?\/[^\/.]+\.(jpg|png)\b/g.test(content) ? '<img src="' + content + '" alt="' + label + '" title="' + label + '" loading="lazy" style="max-width: 100%;" />' : img.attr('src') ? img.clone() : content));
                            
        
                    });
                });
        
        
            });
        }(jQuery));


Última edição por pedxz em 25.03.22 9:42, editado 2 vez(es) (Motivo da edição : ID para atribuído [data-user-field])
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7019
Pontos ativos : 8247

Ir para o topo Ir para baixo

Tópico resolvido Re: Criação de novas variáveis

Mensagem por Mirotic 24.03.22 0:42

pedxz escreveu:
Mirotic escreveu:há alguma forma de fazer com imagens?
Altere o código para

Não funcionou.
Mirotic

Mirotic
Nível 8

Masculino
Membro desde : 17/11/2018
Mensagens : 136
Pontos ativos : 236

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Criação de novas variáveis

Mensagem por pedxz 24.03.22 0:49

Mirotic escreveu:Não funcionou.
Pode por visível um campo de perfil com uma imagem? Qual a URL dessa imagem?
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7019
Pontos ativos : 8247

Ir para o topo Ir para baixo

Tópico resolvido Re: Criação de novas variáveis

Mensagem por Mirotic 24.03.22 0:56

pedxz escreveu:
Mirotic escreveu:Não funcionou.
Pode por visível um campo de perfil com uma imagem? Qual a URL dessa imagem?

É essa imagem: https://i.ibb.co/pLq2csT/avatar.png

Está visível para convidados também
Mirotic

Mirotic
Nível 8

Masculino
Membro desde : 17/11/2018
Mensagens : 136
Pontos ativos : 236

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Criação de novas variáveis

Mensagem por pedxz 24.03.22 11:52

Mirotic escreveu:
pedxz escreveu:
Mirotic escreveu:Não funcionou.
Pode por visível um campo de perfil com uma imagem? Qual a URL dessa imagem?

É essa imagem: https://i.ibb.co/pLq2csT/avatar.png

Está visível para convidados também
Atualizei o código acima. Substitua, por favor Envergonhado
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7019
Pontos ativos : 8247

Ir para o topo Ir para baixo

Tópico resolvido Re: Criação de novas variáveis

Mensagem por Mirotic 24.03.22 21:55

Cara você é demais! Funcionou muito bem! Obrigado!
Mirotic

Mirotic
Nível 8

Masculino
Membro desde : 17/11/2018
Mensagens : 136
Pontos ativos : 236

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Criação de novas variáveis

Mensagem por pedxz 25.03.22 0:17

Tópico resolvido


Movido para "Questões resolvidas".
pedxz

pedxz
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7019
Pontos ativos : 8247

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