Sistema de Prefixo

2 participantes

Ir para baixo

Tópico resolvido Sistema de Prefixo

Mensagem por Convidado 24.07.18 13:57

Detalhes da questão


Endereço do fórum: http://jogosemaisjogos.forumeiros.com
Versão do fórum: phpBB3

Descrição


Como coloco este código apenas para Moderadores e Administradores (id: 1, 2, 3) e na parte de resposta rápida, para não ter que editar o tópico e adicionar o código.

Obrigado.
Código:
/*globals jQuery*/
/**
 * @name Sistema de Prefixos.
 * @version 1.0
 * @author Luiz
 * @see {@link http://ajuda.forumeiros.com/}
 * @licence MIT
 */
(function ($) {
  'use strict';
 
  var config = {
    prefixes: [
      'Dúvida', 'Pedido', 'Em Curso',
      'Jogos', 'Recusado', 'Resolvido',
      'Negado'
    ],
 
    lang: {
      all: 'Sem Prefixo'
    },
 
    engine: {
      /**
      * @name Inicializador.
      * @desc Usado para iniciar o script.
      * @param {object} input - Corresponde ao seletor do input-alvo do script.
      */
      init: function (input) {
        var self = this;
       
        var $input = $(input);
        var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
       
        if (!/^\/post$/g.test(location.pathname) && $input) {
          return false;
        }
   
        var $select = $('<select>', {
          'class': 'fa-prefix-select'
        });
 
        $dummy
          .clone()
            .text(config.lang.all)
            .attr('value', '')
            .attr('selected', true)
            .appendTo($select)
        ;
   
        $.each(config.prefixes, function (index, prefix) {
          $dummy
            .clone()
              .text('[' + prefix + ']')
              .attr('value', '[' + prefix + ']')
              .attr('id', 'fa-prefix-item-' + index)
              .appendTo($select)
          ;
        });
   
        $select
          .insertAfter($input)
          .on('change', function () {
            var $this = $(this);
            var value = $this.val();
   
            self.prefix(value, $this.prev());
          })
        ;
      },
     
      /**
      * @name Prefixador.
      * @desc Usada para colocar o prefixo no input.
      * @param {string} value - Corresponde ao prefixo que será colocado.
      * @param {object} input - Corresponde ao seletor do input que será prefixado.
      */
      prefix: function (value, input) {
        var $input = $(input);
 
        if (/^\[.*\]/g.test($input.val())) {
          $input.val($.trim($input.val().replace(/^\[.*\]/, '')));
        }
 
        $input.val($.trim(value + ' ' + $input.val()));
       
      }
    }
  };
 
  $(function () {
    var $input = $('input[name="subject"]');
    config.engine.init($input);
  });
}(jQuery));
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por tikky 24.07.18 14:30

Olá @Roger123,
Mude o seu script para:
Código:
/*globals jQuery*/
/**
 * @name Sistema de Prefixos.
 * @version 1.0
 * @author Luiz
 * @see {@link http://ajuda.forumeiros.com/}
 * @licence MIT
 */
(function ($) {
  'use strict';

 
 
  var config = {
    prefixes: [
      'Dúvida', 'Pedido', 'Em Curso',
      'Jogos', 'Recusado', 'Resolvido',
      'Negado'
    ],
 
    lang: {
      all: 'Sem Prefixo'
    },
 
    engine: {
      /**
      * @name Inicializador.
      * @desc Usado para iniciar o script.
      * @param {object} input - Corresponde ao seletor do input-alvo do script.
      */
      init: function (input) {
       
         
        var self = this;
     
        var $input = $(input);
        var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
     
       
      if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
 
      if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
        return;
      }
 
        var $select = $('<select>', {
          'class': 'fa-prefix-select'
        });
 
        $dummy
          .clone()
            .text(config.lang.all)
            .attr('value', '')
            .attr('selected', true)
            .appendTo($select)
        ;
 
        $.each(config.prefixes, function (index, prefix) {
          $dummy
            .clone()
              .text('[' + prefix + ']')
              .attr('value', '[' + prefix + ']')
              .attr('id', 'fa-prefix-item-' + index)
              .appendTo($select)
          ;
        });
 
        $select
          .insertAfter($input)
          .on('change', function () {
            var $this = $(this);
            var value = $this.val();
 
            self.prefix(value, $this.prev());
          })
        ;
      }
        }
      },
   
      /**
      * @name Prefixador.
      * @desc Usada para colocar o prefixo no input.
      * @param {string} value - Corresponde ao prefixo que será colocado.
      * @param {object} input - Corresponde ao seletor do input que será prefixado.
      */
      prefix: function (value, input) {
        var $input = $(input);
 
        if (/^\[.*\]/g.test($input.val())) {
          $input.val($.trim($input.val().replace(/^\[.*\]/, '')));
        }
 
        $input.val($.trim(value + ' ' + $input.val()));
     
      }
  };
 
  $(function () {
    var $input = $('input[name="subject"]');
    config.engine.init($input);
  });
}(jQuery));

Cordialmente,
pedxz
tikky
tikky
Admineiro
Admineiro

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 24.07.18 14:36

Olá

Tem como colocar aqui: http://prntscr.com/kae17i.

Obrigado Feliz

Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por tikky 24.07.18 15:16

Têm, porém não tem sentido por ai visto que na "resposta rápida", não dá para escolher o nome do comentário, compreende?
tikky
tikky
Admineiro
Admineiro

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 24.07.18 15:20

Pedxz escreveu:Têm, porém não tem sentido por ai visto que na "resposta rápida", não dá para escolher o nome do comentário, compreende?
Sim, mas eu estava a falar para modificar o título do tópico.
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 26.07.18 11:00

UP...
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 27.07.18 15:29

UP...
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 29.07.18 8:35

Up...
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 31.07.18 19:06

UP...
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Neox 02.08.18 0:34

Olá,
Mude o script para este:
só para testar uma coisa
Código:
(function ($) {
          'use strict';
        
          var config = [
            { name: 'Resolvido', id  : 3, background: '#8b5', onlyForMod: true },
            { name: 'Em andamento', id  : 2, background: '#ebb537', onlyForMod: true },
            { name: 'Importante', id: 4, background: '#9d1bab', onlyForAdmin: true },
            { name: 'Ignorado', id: 1, background: '#e3493b', onlyForAdmin: true }
          ];
        
          window.FA = window.FA || {};
          FA.Topic = FA.Topic || {};
        
          var MarkIcon;
          FA.Topic.MarkIcon = MarkIcon = function (config) {
            var self = this;
        
            self.userConfig = config;
            self.defaults = {
              name: undefined,
              id: undefined,
              background: undefined,
              onlyForMod: false,
              onlyForAdmin: false
            };
          
            self.config = $.extend({}, self.defaults, self.userConfig);
        
            $.each(self.config, function (key, value) {
              if (key === undefined) {
                throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
              }
        
              if (value === undefined) {
                throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões.');
              }
            });
          };
        
          MarkIcon.prototype.init = function () {
            var self = this;
        
            var $post = $('.post:first');
            var $link = $post.find('a[href$="mode=editpost"]');
        
            if (!$link.length) {
              return false;
            }
        
            if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
              return false;
            }
        
            if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
              return false;
            }
        
            self.messageLink = $link.attr('href');
        
            self.$button = $('<button>', {
              'class'  : 'fa-mark-icon-button',
              'data-id': self.config.id,
              'text'  : self.config.name
            });
        
            self.$button
              .css('background-color', self.config.background)
              .on('click', function (event) {
                event.preventDefault();
        
                self.runAjax();
              })
              .insertBefore($post)
            ;
        
            self.appendStyles();
          };
        
          MarkIcon.prototype.runAjax = function () {
            var self = this;
        
            self.changeText('<i class="fa fa-refresh fa-spin"></i> Marcando...');
        
            $.get(self.messageLink)
              .done(function (context) {
                var $form = $('form[action="/post"]', context);
        
                var encode  = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
        
                var formData = $form.serializeArray();
        
                var data = {};
                $.each(formData, function () {
                  var obj = this;
        
                  data[obj.name] = obj.value;
                });
        
                data.post_icon = self.config.id;
                data.post = 1;
        
                var encoded = $.map(data, function (value, key) {
                  return key + '=' + encode(value);
                }).join('&');
        
                $.post(self.messageLink, encoded)
                  .done(self.changeText('<i class="fa fa-check"></i> Marcado!'))
                  .fail(self.error)
                ;
              })
              .fail(self.error)
            ;
          };
        
          MarkIcon.prototype.changeText = function (text) {
            var self = this;
        
            self.runAjax = function () {
              return false;
            };
        
            self.$button
              .html(text)
              .prop('disabled', true)
            ;
          };
        
          MarkIcon.prototype.error = function () {
            var self = this;
        
            alert([
              'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
              'Por favor, contate o suporte técnico.'
            ].join('\n'));
          };
        
          MarkIcon.prototype.appendStyles = function () {
            $('<style>', {
              'text': [
                '.fa-mark-icon-button {',
                '  padding: 8px 8px 8px 8px;',
                '  border: none;',
                '  color: #fff;',
                '  margin: 10px 0 10px 6px;',
                '  box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.08);',
                '  border-radius: 3px;',
                '}'
              ].join('\n')
            }).appendTo('head');
          };
        
          $(function () {
            $.each(config, function () {
              var self = this;
        
              (new FA.Topic.MarkIcon(self)).init();
            });
          });
        }(jQuery));

Atenciosamente,
Neox
Neox
Neox
Membro

Membro desde : 16/08/2016
Mensagens : 698
Pontos : 976

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 02.08.18 11:17

Já adicionei...
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Neox 02.08.18 18:11

Poderia me mandar uma print do resultado?
Neox
Neox
Membro

Membro desde : 16/08/2016
Mensagens : 698
Pontos : 976

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 02.08.18 19:11

Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Neox 02.08.18 20:05

Você removeu o código anterior?
Vamos usar o código que passei, esquece o anterior
Neox
Neox
Membro

Membro desde : 16/08/2016
Mensagens : 698
Pontos : 976

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 03.08.18 11:21

Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Neox 03.08.18 18:17

Agora verifique se está somente para os administradores e moderadores.
Neox
Neox
Membro

Membro desde : 16/08/2016
Mensagens : 698
Pontos : 976

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 03.08.18 20:06

Neox escreveu:Agora verifique se está somente para os administradores e moderadores.
Sim
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Neox 05.08.18 0:29

Resolvido?
Neox
Neox
Membro

Membro desde : 16/08/2016
Mensagens : 698
Pontos : 976

https://ajuda.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 05.08.18 9:13

Não era isso... Estava a falar deste código adicionar um prefixo automaticamente ao título:
Código:
/*globals jQuery*/
/**
 * @name Sistema de Prefixos.
 * @version 1.0
 * @author Luiz
 * @see {@link http://ajuda.forumeiros.com/}
 * @licence MIT
 */
(function ($) {
  'use strict';
 
 
 
  var config = {
    prefixes: [
      'Dúvida', 'Pedido', 'Em Curso',
      'Jogos', 'Recusado', 'Resolvido',
      'Negado'
    ],
 
    lang: {
      all: 'Sem Prefixo'
    },
 
    engine: {
      /**
      * @name Inicializador.
      * @desc Usado para iniciar o script.
      * @param {object} input - Corresponde ao seletor do input-alvo do script.
      */
      init: function (input) {
     
       
        var self = this;
   
        var $input = $(input);
        var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
   
     
      if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
 
      if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
        return;
      }
 
        var $select = $('<select>', {
          'class': 'fa-prefix-select'
        });
 
        $dummy
          .clone()
            .text(config.lang.all)
            .attr('value', '')
            .attr('selected', true)
            .appendTo($select)
        ;
 
        $.each(config.prefixes, function (index, prefix) {
          $dummy
            .clone()
              .text('[' + prefix + ']')
              .attr('value', '[' + prefix + ']')
              .attr('id', 'fa-prefix-item-' + index)
              .appendTo($select)
          ;
        });
 
        $select
          .insertAfter($input)
          .on('change', function () {
            var $this = $(this);
            var value = $this.val();
 
            self.prefix(value, $this.prev());
          })
        ;
      }
        }
      },
 
      /**
      * @name Prefixador.
      * @desc Usada para colocar o prefixo no input.
      * @param {string} value - Corresponde ao prefixo que será colocado.
      * @param {object} input - Corresponde ao seletor do input que será prefixado.
      */
      prefix: function (value, input) {
        var $input = $(input);
 
        if (/^\[.*\]/g.test($input.val())) {
          $input.val($.trim($input.val().replace(/^\[.*\]/, '')));
        }
 
        $input.val($.trim(value + ' ' + $input.val()));
   
      }
  };
 
  $(function () {
    var $input = $('input[name="subject"]');
    config.engine.init($input);
  });
}(jQuery));
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por tikky 05.08.18 10:33

Olá @Roger123,
O meu colega @Neox está a fazer confusão. O Que o senhor que é possível fazer, porém não temos conhecimento para tanto. O Senhor pode deixar o tópico aberto para ver se alguém o ajuda, ou marcar como resolvido.
Desde já peço desculpa  Positivo


cordialmente,
pedxz
tikky
tikky
Admineiro
Admineiro

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 05.08.18 11:59

Ok! Então, apenas quero que me ajude:

O código não está a funcionar... Não adiciona os prefixos...

Código:
/*globals jQuery*/
/**
 * @name Sistema de Prefixos.
 * @version 1.0
 * @author Luiz
 * @see {@link http://ajuda.forumeiros.com/}
 * @licence MIT
 */
(function ($) {
  'use strict';
 
 
 
  var config = {
    prefixes: [
      'Dúvida', 'Pedido', 'Em Curso',
      'Jogos', 'Recusado', 'Resolvido',
      'Negado'
    ],
 
    lang: {
      all: 'Sem Prefixo'
    },
 
    engine: {
      /**
      * @name Inicializador.
      * @desc Usado para iniciar o script.
      * @param {object} input - Corresponde ao seletor do input-alvo do script.
      */
      init: function (input) {
   
     
        var self = this;
 
        var $input = $(input);
        var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
 
   
      if (location.pathname === '/post' && $('form input[name="subject"]').length > 0) {
 
      if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
        return;
      }
 
        var $select = $('<select>', {
          'class': 'fa-prefix-select'
        });
 
        $dummy
          .clone()
            .text(config.lang.all)
            .attr('value', '')
            .attr('selected', true)
            .appendTo($select)
        ;
 
        $.each(config.prefixes, function (index, prefix) {
          $dummy
            .clone()
              .text('[' + prefix + ']')
              .attr('value', '[' + prefix + ']')
              .attr('id', 'fa-prefix-item-' + index)
              .appendTo($select)
          ;
        });
 
        $select
          .insertAfter($input)
          .on('change', function () {
            var $this = $(this);
            var value = $this.val();
 
            self.prefix(value, $this.prev());
          })
        ;
      }
        }
      },
 
      /**
      * @name Prefixador.
      * @desc Usada para colocar o prefixo no input.
      * @param {string} value - Corresponde ao prefixo que será colocado.
      * @param {object} input - Corresponde ao seletor do input que será prefixado.
      */
      prefix: function (value, input) {
        var $input = $(input);
 
        if (/^\[.*\]/g.test($input.val())) {
          $input.val($.trim($input.val().replace(/^\[.*\]/, '')));
        }
 
        $input.val($.trim(value + ' ' + $input.val()));
 
      }
  };
 
  $(function () {
    var $input = $('input[name="subject"]');
    config.engine.init($input);
  });
}(jQuery));
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por tikky 05.08.18 12:33

Mude para:
Código:
/*globals jQuery*/
/**
 * @name Sistema de Prefixos.
 * @version 1.0
 * @author Luiz
 * @see {@link http://ajuda.forumeiros.com/}
 * @licence MIT
 */
(function ($) {
  'use strict';
 
  var config = {
    prefixes: [
      'Dúvida', 'Pedido', 'Em Curso',
      'Jogos', 'Recusado', 'Resolvido',
      'Negado'
    ],
 
    lang: {
      all: 'Sem Prefixo'
    },
 
    engine: {
      /**
      * @name Inicializador.
      * @desc Usado para iniciar o script.
      * @param {object} input - Corresponde ao seletor do input-alvo do script.
      */
      init: function (input) {
        var self = this;
     
        var $input = $(input);
        var $dummy = $('<option>', { 'class': 'fa-prefix-item' });
     
        if (_userdata.user_level !== 1 && _userdata.user_level !== 2) {
          return;
        }

        if (!/^\/post$/g.test(location.pathname) && $input) {
          return;
        }
 
        var $select = $('<select>', {
          'class': 'fa-prefix-select'
        });
 
        $dummy
          .clone()
            .text(config.lang.all)
            .attr('value', '')
            .attr('selected', true)
            .appendTo($select)
        ;
 
        $.each(config.prefixes, function (index, prefix) {
          $dummy
            .clone()
              .text('[' + prefix + ']')
              .attr('value', '[' + prefix + ']')
              .attr('id', 'fa-prefix-item-' + index)
              .appendTo($select)
          ;
        });
 
        $select
          .insertAfter($input)
          .on('change', function () {
            var $this = $(this);
            var value = $this.val();
 
            self.prefix(value, $this.prev());
          })
        ;
      },
   
      /**
      * @name Prefixador.
      * @desc Usada para colocar o prefixo no input.
      * @param {string} value - Corresponde ao prefixo que será colocado.
      * @param {object} input - Corresponde ao seletor do input que será prefixado.
      */
      prefix: function (value, input) {
        var $input = $(input);
 
        if (/^\[.*\]/g.test($input.val())) {
          $input.val($.trim($input.val().replace(/^\[.*\]/, '')));
        }
 
        $input.val($.trim(value + ' ' + $input.val()));
     
      }
    }
  };
 
  $(function () {
    var $input = $('input[name="subject"]');
    config.engine.init($input);
  });
}(jQuery));
tikky
tikky
Admineiro
Admineiro

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por Convidado 05.08.18 12:51

Resolvido! Obrigado Feliz
Anonymous
Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Sistema de Prefixo

Mensagem por tikky 05.08.18 13:21

Desculpe qualquer inconveniência @Roger123

Tópico resolvido


Movido para "Questões resolvidas".
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