Caracteres mínimos para responder um tópico

5 participantes

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

Tópico resolvido Caracteres mínimos para responder um tópico

Mensagem por Angel Presley 26.04.17 2:43

Detalhes da questão


Endereço do fórum: http://epfanelvis.livreforum.com
Versão do fórum: phpBB3

Descrição


Prezados amigos,
Com a ajuda da Staff desse fórum eu adicionei um código que limita o número mínimo de palavras para os membros responderem o tópico.
Acontece que muitos já descobriram como "burlar" esse Código JavaScript, usando o botão Pré-visualizar antes de enviar a resposta.
Como posso resolver essa falha?

Código:
jQuery(function() {
        /* Name of effect: Contagem de palavras antes de postar
        Criado por: Turbodeif - Fórum dos Fóruns Espanhol
        Disponível para: Todas as versões:
        Descrição:
        */
        var MinNumberOfWords = 6; /* Mínimo de palavras para destravar o botão ENVIAR */
        var LetterCountPerWord = 4; /* Comprimento mínimo da palavra */
        var ico_compl = "http://i73.servimg.com/u/f73/18/10/89/49/ok-gre10.png"; /* Ícone que aparecerá quando o usuário tiver digitado tudo */
        var ico_incompl = "http://i73.servimg.com/u/f73/18/10/89/49/exclam10.png"; /* Ícone que aparecerá quando o usuário não tiver digitado tudo */


        if (jQuery("#text_editor_textarea").length != 0) {
            jQuery("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
            jQuery(".sceditor-container").after("<br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Mínimo de letras para postar: " + MinNumberOfWords + " (ou pelo menos) " + LetterCountPerWord + " letras</div><div id='div_minchars_info'></div></div>  \n <br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Minimum of words to post: " + MinNumberOfWords + " (or at least) " + LetterCountPerWord + " letters</div><div id='div_minchars_info'></div></div>");

            var sceditor = jQuery("#text_editor_textarea").sceditor("instance");
            var str = sceditor.val();
            var regex = new RegExp('\\w{' + LetterCountPerWord + ',}\\b', 'g');
            var str_arr = str.match(regex);
            var str_len = str_arr == null ? 0 : str_arr.length;

            if (str_len >= MinNumberOfWords) jQuery("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");

            sceditor.keyUp(function(e) {
                str = sceditor.val();
                str_arr = str.match(regex);
                str_len = str_arr == null ? 0 : str_arr.length;
                if (str_len >= MinNumberOfWords) {
                    jQuery("#div_minchars_info").html("Você escreveu <span style='color:green'>" + str_len + "</span> palavras. Agora você pode enviar a mensagem <img src='" + ico_compl + "' /></br> \n You wrote <span style='color:green'>" + str_len + "</span> words. Now you can send the message. <img src='" + ico_compl + "' />");
                    jQuery("input[type='submit'][name='post']").attr("disabled", false).css("opacity", "1");
                } else {
                    jQuery("#div_minchars_info").html("Você escreveu <span style='color:red'>" + str_len + "</span> palavras. Você precisa " + (MinNumberOfWords - str_len) + " palavras para enviar esta mensagem <img src='" + ico_incompl + "' /></br> \n You wrote <span style='color:red'>" + str_len + "</span> words. You need at least " + (MinNumberOfWords - str_len) + " words to send this message. <img src='" + ico_incompl + "' />");
                    jQuery("input[type='submit'][name='post']").attr("disabled", true).css("opacity", "0.5");
                }
            });
        }
    })
});

https://i.servimg.com/u/f58/19/68/04/97/thank_11.jpg

https://i.servimg.com/u/f58/19/68/04/97/thank_10.jpg

Atenciosamente,
Angel
Angel Presley

Angel Presley
**

Membro desde : 05/07/2010
Mensagens : 65
Pontos : 101

http://www.epfanelvis.org

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por MateusV. 26.04.17 13:43

Você precisa colocar o investimento do código "Em todas as páginas".

Abraços.
MateusV.

MateusV.
Membro Entusiasta
Membro Entusiasta

Membro desde : 30/10/2011
Mensagens : 7017
Pontos : 9284

http://mateusv.site11.com/gerador2.html

Ir para o topo Ir para baixo

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Angel Presley 26.04.17 15:55

Olá MateusV.!!
Já está colocado em todas as páginas. Como eu disse, funcionou por um bom tempo mas agora alguns deles descobriram como burlar usando o botão Pré-visualizar.
Angel Presley

Angel Presley
**

Membro desde : 05/07/2010
Mensagens : 65
Pontos : 101

http://www.epfanelvis.org

Ir para o topo Ir para baixo

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Connor R. 26.04.17 16:55

O senhor pode ocultar o botão pré-visualizar nos tópicos que deseja...veja abaixo.

Coloque no 1 o número dos tópicos que deseja que o botão fique oculto.

Investimento nos tópicos.

Código:

$(function() {
    var forums;
    forums = [1];
    if (forums.indexOf(parseInt($('.crumbs a[href^="/f"]:last').attr('href').replace(/[^\d]+/g, ''))) !== -1) {
        $('input[name="preview"]').css('display', 'none');
    }
});
Connor R.

Connor R.
Super Membro

Membro desde : 06/08/2012
Mensagens : 1253
Pontos : 2021

http://somosmugiwara.forumeiros.com https://www.facebook.com/kadandajr https://twitter.com/SomosMugiwara

Ir para o topo Ir para baixo

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Angel Presley 27.04.17 17:25

Olá Connor R.!!
Eu não quero ocultar o botão Pré-visualizar. Eu acredito que ambos botões, Pré-visualizar e Enviar tem que trabalhar simultaneamente.
Obrigada por comentar.
Angel Presley

Angel Presley
**

Membro desde : 05/07/2010
Mensagens : 65
Pontos : 101

http://www.epfanelvis.org

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Luiz 27.04.17 17:30

Tente este:
Código:
jQuery(function() {
        /* Name of effect: Contagem de palavras antes de postar
        Criado por: Turbodeif - Fórum dos Fóruns Espanhol
        Disponível para: Todas as versões:
        Descrição:
        */
        var MinNumberOfWords = 6; /* Mínimo de palavras para destravar o botão ENVIAR */
        var LetterCountPerWord = 4; /* Comprimento mínimo da palavra */
        var ico_compl = "http://i73.servimg.com/u/f73/18/10/89/49/ok-gre10.png"; /* Ícone que aparecerá quando o usuário tiver digitado tudo */
        var ico_incompl = "http://i73.servimg.com/u/f73/18/10/89/49/exclam10.png"; /* Ícone que aparecerá quando o usuário não tiver digitado tudo */
 
 
        if (jQuery("#text_editor_textarea").length != 0) {
            jQuery("input[type='submit'][name='post'], #quick_reply > div:nth-child(3) > input:nth-child(8)").attr("disabled", true).css("opacity", "0.5");
            jQuery(".sceditor-container").after("<br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Mínimo de letras para postar: " + MinNumberOfWords + " (ou pelo menos) " + LetterCountPerWord + " letras</div><div id='div_minchars_info'></div></div>  \n <br/><div id='div_minchars' align='center'><div id='div_minchars_header'> Minimum of words to post: " + MinNumberOfWords + " (or at least) " + LetterCountPerWord + " letters</div><div id='div_minchars_info'></div></div>");
 
            var sceditor = jQuery("#text_editor_textarea").sceditor("instance");
            var str = sceditor.val();
            var regex = new RegExp('\\w{' + LetterCountPerWord + ',}\\b', 'g');
            var str_arr = str.match(regex);
            var str_len = str_arr == null ? 0 : str_arr.length;
 
            if (str_len >= MinNumberOfWords) jQuery("input[type='submit'][name='post'], #quick_reply > div:nth-child(3) > input:nth-child(8)").attr("disabled", false).css("opacity", "1");
 
            sceditor.keyUp(function(e) {
                str = sceditor.val();
                str_arr = str.match(regex);
                str_len = str_arr == null ? 0 : str_arr.length;
                if (str_len >= MinNumberOfWords) {
                    jQuery("#div_minchars_info").html("Você escreveu <span style='color:green'>" + str_len + "</span> palavras. Agora você pode enviar a mensagem <img src='" + ico_compl + "' /></br> \n You wrote <span style='color:green'>" + str_len + "</span> words. Now you can send the message. <img src='" + ico_compl + "' />");
                    jQuery("input[type='submit'][name='post'], #quick_reply > div:nth-child(3) > input:nth-child(8)").attr("disabled", false).css("opacity", "1");
                } else {
                    jQuery("#div_minchars_info").html("Você escreveu <span style='color:red'>" + str_len + "</span> palavras. Você precisa " + (MinNumberOfWords - str_len) + " palavras para enviar esta mensagem <img src='" + ico_incompl + "' /></br> \n You wrote <span style='color:red'>" + str_len + "</span> words. You need at least " + (MinNumberOfWords - str_len) + " words to send this message. <img src='" + ico_incompl + "' />");
                    jQuery("input[type='submit'][name='post'], #quick_reply > div:nth-child(3) > input:nth-child(8)").attr("disabled", true).css("opacity", "0.5");
                }
            });
        }
    })
});

o/
Luiz

Luiz
Membro Entusiasta
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

Ir para o topo Ir para baixo

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Kyo Panda 27.04.17 23:36

Fica difícil de encontrar o problema sem acesso ao fórum. E pela mensagem (nada amistosa) que recebi por e-mail, assumo que já tenham encontrado a solução. Posso dar a questão como resolvida?
Kyo Panda

Kyo Panda
Hiper Membro

Membro desde : 08/01/2012
Mensagens : 4641
Pontos : 5939

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Caracteres mínimos para responder um tópico

Mensagem por Luiz 30.04.17 15:17

Questão abandonada pelo autor, mas considerada resolvida por ter solução para o problema.
Tópico marcado como Resolvido e movido para Questões resolvidas.
Luiz

Luiz
Membro Entusiasta
Membro Entusiasta

Membro desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

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