Movimento automático de tópico

3 participantes

Ir para baixo

Tópico resolvido Movimento automático de tópico

Mensagem por Troubleshoot 10.10.24 17:12

Detalhes da questão


Endereço do fórum: http://bricarus.forumeiros.com/
Versão do fórum: AwesomeBB

Descrição


Fala pessoal!
Podem me ajudar?

É possível fazer movimentos automáticos de Tópicos de acordo com o forum que o usuário tem acesso?

Contexto:

Tenho um formulário no meu fórum que, quando preenchido, envia informações para a seção /f1-. Essa seção está bloqueada para que os usuários possam apenas postar, sem acesso ao conteúdo, já que o formulário contém dados privados.

Necessidade:

Quero automatizar a movimentação dos tópicos postados em /f1-, de acordo com o grupo do usuário. Atualmente, tenho 5 grupos e fóruns privados, cada um acessível apenas ao grupo específico. Preciso que, ao identificar o grupo do usuário, o tópico seja movido automaticamente para o fórum correspondente, onde ele pode visualizar o conteúdo.

Solução Proposta:

Identificação Automática: Basear-se no nome do usuário e seu grupo para identificar para qual fórum o tópico deve ser movido.
Movimentação Automática: Após o envio, o sistema move o tópico do /f1- para o fórum privado correspondente ao grupo do usuário, garantindo que apenas membros daquele grupo tenham acesso.

Benefícios:

Eficiência ao eliminar a necessidade de movimentação manual.
Segurança ao garantir que apenas membros autorizados vejam as informações.
Escalabilidade para adicionar novos grupos e fóruns.
Troubleshoot
Troubleshoot
Hiper Membro

Membro desde : 25/09/2011
Mensagens : 2235
Pontos : 3009

http://guiatecnico.ativo-forum.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Movimento automático de tópico

Mensagem por Sleep 11.10.24 9:57

Olá "@Troubleshoot",

Vamos ter um javascript criado do zero para o efeito:

Painel administrativo > Módulos > HTML & JavaScript > Gestão dos códigos JavaScript.
Código:

Código:
$(document).ready(function() {
    // Definir os fóruns correspondentes aos grupos
    var forumGrupos = {
        "Grupo1": "/f2-",  // Fórum associado ao grupo "1"
        "Grupo2": "/f3-",  // Fórum associado ao grupo "2"
        "Grupo3": "/f4-",  // Fórum associado ao grupo "3"
        "Grupo4": "/f5-",  // Fórum associado ao grupo "4"
        "Grupo5": "/f6-"  // Fórum associado ao grupo "5"
    };

    // Função para capturar o grupo do usuário com base na listagem de grupos
    function identificarGrupo() {
        var grupo = "";  // Variável para armazenar o nome do grupo

        // Verifica se o grupo do usuário é "1" baseado no link presente
        if ($('ul.group_list.noList a[href*="/gxx-nomegrupo"]').length > 0) {
            grupo = "Grupo1";  // 1
        } else if ($('ul.group_list.noList a[href*="/gxx-nomegrupo"]').length > 0) {
            grupo = "Grupo2";  // 2
        } else if ($('ul.group_list.noList a[href*="/gxx-nomegrupo"]').length > 0) {
            grupo = "Grupo3";  // 3
        } else if ($('ul.group_list.noList a[href*="/gxx-nomegrupo"]').length > 0) {
            grupo = "Grupo4";  // 4
        } else if ($('ul.group_list.noList a[href*="/gxx-nomegrupo"]').length > 0) {
            grupo = "Grupo5";  // 5
        }

        return grupo;  // Retorna o nome do grupo identificado
    }

    // Função para capturar o ID do tópico
    function obterIdTopico() {
        var url = window.location.href;  // Obtém a URL da página
        var regex = /\/t(\d+)-/;  // Expressão regular para capturar o ID do tópico a partir da URL

        var match = url.match(regex);
        if (match) {
            return match[1];  // Retorna o ID do tópico se encontrado
        } else {
            return null;  // Retorna null se não encontrar o ID
        }
    }

    // Função para mover o tópico
    function moverTopicoParaForumCorreto() {
        var grupo = identificarGrupo();  // Identifica o grupo do usuário
        var topicoID = obterIdTopico();  // Obtém o ID do tópico da URL

        if (!topicoID) {
            console.log("Erro: Não foi possível obter o ID do tópico.");
            return;
        }

        var forumDestino = forumGrupos[grupo];  // Obtém o fórum correspondente ao grupo

        if (forumDestino) {
            // Exemplo de requisição POST para mover o tópico (certifique-se que tem permissão para isso)
            $.post("/modcp?mode=move&f=" + forumDestino, { tid: topicoID }, function(response) {
                console.log("Tópico movido com sucesso para o fórum: " + forumDestino);
            }).fail(function() {
                console.log("Erro ao tentar mover o tópico.");
            });
        } else {
            console.log("Erro: Grupo do usuário não corresponde a nenhum fórum.");
        }
    }

    // Dispara a movimentação do tópico automaticamente após a página carregar
    moverTopicoParaForumCorreto();
});

---
Não esqueça de Adaptar o seguinte:

- Identificação do grupo: O código captura o grupo do usuário com base nos links que você colocar no HTML (href*="/gXX-nomegrupo").

Movimentação do tópico: A função moverTopicoParaForumCorreto obtém o grupo do usuário e o ID do tópico, e então faz uma requisição POST para mover o tópico para o fórum correspondente.

*Código em Beta, criado. Avise-me de alguma falha ou dúvida.

Atenciosamente,
Sleep
Sleep
Sleep
Ajudeiro
Ajudeiro

Membro desde : 10/08/2012
Mensagens : 1117
Pontos : 1352

https://ajuda.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Movimento automático de tópico

Mensagem por Troubleshoot 11.10.24 16:38

Muito obrigado pela ajuda!!!

Slep só tenho uma dúvida, para fazer este movimento ele já reconhece o "moderador" daquele forum que tem permissão de mover para outro?

Se for necessário isso, pode usar o /u1 mesmo



Edit: tentei aplicar o código e não resultou... testei com membros e admins fazendo o tópico mas não moveu
Troubleshoot
Troubleshoot
Hiper Membro

Membro desde : 25/09/2011
Mensagens : 2235
Pontos : 3009

http://guiatecnico.ativo-forum.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Movimento automático de tópico

Mensagem por tikky 15.10.24 1:25

Olá @Troubleshoot,

Veja se esta questão resolvida "Mover tópicos automaticamente" ajuda!


Atenciosamente,
tikky.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

Ir para o topo Ir para baixo

Tópico resolvido Re: Movimento automático de tópico

Mensagem por Troubleshoot 17.10.24 19:39

Ainda não consegui pessoal..
Troubleshoot
Troubleshoot
Hiper Membro

Membro desde : 25/09/2011
Mensagens : 2235
Pontos : 3009

http://guiatecnico.ativo-forum.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Movimento automático de tópico

Mensagem por tikky 07.11.24 15:31

tikky escreveu:Olá @Troubleshoot,

Veja se esta questão resolvida "Mover tópicos automaticamente" ajuda!


Atenciosamente,
tikky.

Troubleshoot escreveu:Ainda não consegui pessoal..
Verifique se em Segurança a opção "Proibir formulários não oficiais de publicarem mensagens no fórum" esta marcada como Não.


Tópico resolvido


Tópico arquivado por inatividade por parte do autor, marcado como resolvido por ter solução apropriada à questão.
tikky
tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7962
Pontos : 9217

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