Botões em Determinados Tópicos

2 participantes

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

Tópico resolvido Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 15:14

Detalhes da questão


Endereço do fórum: http://www.brasilplayultimate.com.br
Versão do fórum: ModernBB

Descrição


Como já havia pedido antes desta vez vou querer mesmo sendo propensos a causar erros :/
Devido a esta bagunça: http://prntscr.com/gwj417
Pois coloco um moderador na área de Designer e ele tem acesso a todos esses botões e tem botões ai que não quero nem pra um nem pra outro e fica difícil discernir qual é qual ...

Código utilizado:
Código:
/**
 * Código jQuery que permite adiconar múltiplos botões ao SCEditor;
 * Autores: Luiz~ e Kyo Panda (ajuda.forumeiros.com);
 * Plataforma: Forumeiros;
 * Versão: Todas;
 * Investimento: Todas as páginas;
 * Licence MIT;
 */
(function ($) {
  'use strict';
 var forumAdd = 6;

  var botoes = [
    {
      'somenteModVer': true,
      'name': 'Tópico Bloqueado',
      'text': 'Olá! \nO seu tópico encontra-se bloqueado. \nQueira ler nossas [i]regras[/i] para saber mais.',
      'id': 'tpc-lock',
      'imgUrl': 'http://i.imgur.com/z5lPhgz.png'
    }, {
      'somenteModVer': true,
      'name': 'Tópico Desbloqueado',
      'text': 'Olá! \nEsta é uma mensagem de status: \nSeu tópico foi desbloqueado. \nQueira ler nossas [i]regras[/i] para saber mais.',
      'id': 'tpc-unlock',
      'imgUrl': 'http://i.imgur.com/hsBvMRG.png'
    }, {
      'somenteModVer': true,
      'name': 'Mensagens de Denúncias',
      'id': 'mensagens-de-denuncias',
      'imgUrl': 'http://i.imgur.com/oAGWDdG.png',
      'filhos': [
        {
          'somenteModVer': true,
          'name': 'Denúncia UP',
          'text': '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/W5mUMil.png'
        }, {
          'somenteModVer': true,
          'name': 'Denúncia FAIL',
          'text': '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/E3r9Hh1.png'
        }, {
          'somenteModVer': true,
          'name': 'Denúncia Em Curso',
          'text': '[table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/l7KlLp6.png'
        }
      ]
    }
  ];

  // Begin CSS:
  $(function () {
    $([
      /**
      * Você pode customizar o CSS, mas lembre-se de incluir as linhas entre aspas simples,
      * E sempre usar aspas compostas dentro de cada linha.
      * Lembre-se também de sempre incluir vírgula após cada linha. Exceto na última linha.
      */
      '<style>',
      '  #main .sceditor-toolbar,',
      '  #main .sceditor-group {',
      '    overflow: initial;',
      '  }',
      '  .sceditor-group {',
      '    position: relative;',
      '  }',
      '  .fa-dropdown1 {',
      '    position: absolute;',
      '    padding: 0px!important;',
      '    top: 27px;',
      '    background-color: #fff;',
      '    border: 1px #ccc solid;',
      '    display: none;',
      '  }',
      '  .fa-dropdown1 a {',
      '    display: block;',
      '    line-height: 1.5em;',
      '    padding: 7px 15px 7px 30px;',
      '    white-space: nowrap;',
      '    border-bottom: 1px #ccc solid;',
      '    cursor: pointer;',
      '    font-size: 12px;',
      '  }',
      '  .fa-dropdown1 a:last-child {',
      '    border-bottom: none;',
      '  }',
      '  .fa-dropdown1-open {',
      '    display: block;',
      '  }',
    '.naoaparecer{display:none!important;}',
      '</style>'
    ].join('\n'))
      .appendTo('head');
    });

  // Begin 'code':
  $(window).on('load', function () {
 
    // Variáveis Importantes:
    var $ultimoGrupo = $('.sceditor-group:last');
    var $sceditor = $('#text_editor_textarea').sceditor('instance');
    var bgStyles1 = 'background-position: center!important; background-repeat: no-repeat!important;';
    var bgStyles2 = 'background-position: 8px 9px!important; background-repeat: no-repeat!important;';

    $.each(botoes, function (index, botoes) { 
      if (botoes.somenteModVer  && _userdata.user_level <= 0) {
        return;
      }
      if(botoes.id=='mensagens-de-denuncias'&&jQuery('p.crumbs a.nav[href^="/f'+forumAdd+'-"]').length==0){
        return false;
      }
    else {
        if ($(botoes.filhos).length) {
          // Caso seja um dropdown (TENHA UM FILHO):
          var $parent = $('<a>', {
              class: 'sceditor-button ' + botoes.id,
              title: ' ' + botoes.name,
              style: 'background-image: url(' + botoes.imgUrl + ')!important; ' + bgStyles1,
              unselectable: 'on'
            })
              .appendTo($ultimoGrupo)
                .on('click', function () {
                  $ultimoGrupo
                    .find('.fa-dropdown1-' + botoes.id)
                      .css('left', $parent.position().left + 'px')
                        .toggleClass('fa-dropdown1-open');
                });
               
          var $dropdown = $('<div>', {
            class: 'sceditor-dropdown fa-dropdown1 fa-dropdown1-' + botoes.id
            })       
              .appendTo($ultimoGrupo);

          // Dropdown children:
          $.each(botoes.filhos, function (index, filhos) {
            $('<a>', {
              html: filhos.name,
              class: filhos.id + 'fa-dropdown1-item',
              style: 'background-image: url(' + filhos.imgUrl + ')!important; ' + bgStyles2,
            })
              .appendTo($dropdown)
                .on('click', function () {
                  $sceditor.insertText(filhos.text);
                  $('.fa-dropdown1')
                    .toggleClass('fa-dropdown1-open');
                });
          });
         
          return;
         
        }
      }

    });
   
  });
}(jQuery));

Se apresentarem outra solução além desta que não cause falhas ficarei feliz, caso contrário desejo prosseguir com isso pois funcionava perfeitamente sem dor de cabeça no PuNBB.
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 12.10.17 15:35

Mova os botões para esse código antes para que possamos continuar:
Código:
/*globals jQuery, FA, _userdata*/
 
/**
 * Botões de moderação para o SCEditor.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.0
 */

(function ($) {
  'use strict';

  var buttons = [
    {
      name      : 'Tópico Bloqueado',
      id        : 'topic-block-button',
      text      : 'Olá, o tópico foi bloqueado... [...]',
      topics    : [6],
      img      : 'https://i.imgur.com/z5lPhgz.png',
      onlyForMod: true
    }, {
      name        : 'Lista de Ações',
      id          : 'topic-actions-list',
      topics      : [6],
      img        : 'https://i.imgur.com/oAGWDdG.png',
      inGroup    : false,
      onlyForAdmin: true,
      children    : [
        { name: 'Ação 1', text: 'Texto da ação 1.', icon: 'fa fa-cog' },
        { name: 'Ação 2', text: 'Texto da ação 2.', icon: 'fa fa-cog' },
        { name: 'Ação 3', text: 'Texto da ação 3.', icon: 'fa fa-cog' }
      ]
    }
  ];

  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};

  var ModButtons;
  FA.Topic.ModButtons = ModButtons = function (userConfig) {
    var self = this;

    self.userConfig = userConfig;
    self.defaults = {
      name        : undefined,
      id          : '',
      inGroup    : true,
      topics      : ['6'],
      text        : '',
      children    : false,
      img        : 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 de moderação.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões de moderação.');
      }
    });

    self.createStyles();
  };

  ModButtons.prototype.init = function () {
    var self = this;
   
    if (self.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
   
    if (self.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
   
    if (self.config.topics.indexOf('*') === -1) {
      var topicId = parseInt(location.href.replace(/.*\/t(\d+).*|.*\/post\?t=(\d+)&.*/gi, function (string, match1, match2) {
        if (match1 === undefined) {
          return match2;
        }
   
        return match1;
      }));
   
      if (self.config.topics.indexOf(topicId) === -1) {
        return false;
      }
    }

    if (Array.isArray(self.config.children) && self.config.children.length >= 1) {
      self.createButton(true);
    } else {
      self.createButton(false);
    }
  };

  /**
  * @param {boolean} isDrop Se for true, significa que o botão tem filhos.
  *                        Caso contrário, o botão não tem filhos.
  */
  ModButtons.prototype.createButton = function (isDrop) {
    var self = this;
   
    if (!$.sceditor) {
      return false;
    }
   
    self.$group = $('.sceditor-group:last');
    self.$element = $('<a>', {
      'class'      : 'sceditor-button',
      'unselectable': 'on',
      'title'      : self.config.name,
      'data-id'    : self.config.id,
      'html'        : $('<div>', { 'unselectable': 'on' }).css('background-image', 'url(' + self.config.img + ')').prop('outerHTML')
    });

    switch (isDrop) {
      case true:
        self.$element.attr('data-dropdown', 'true');

        self.createChildren();
        self.documentListen();

        self.$element.on('click', function (event) {
          event.preventDefault();
          event.stopPropagation();

          var $this = $(this);

          var offset = $this.offset();
          var height = $this.height();

          self.$dropdown
            .css('position', 'absolute')
            .css('top', offset.top + height)
            .css('left', offset.left)
            .toggle()
          ;
        });
       
        break;

      case false:
        self.$element
          .attr('data-dropdown', 'false')
            .attr('data-text', self.config.text)
              .on('click', function (event) {
                self.insertText($(this), event);
              })
        ;
       
        break;
    }

    if (self.config.inGroup) {
      self.$group.append(self.$element);

      return;
    }
   
    $('<div>', { 'class': 'sceditor-group' })
      .insertBefore(self.$group)
        .append(self.$element)
    ;
  };
 
  ModButtons.prototype.createChildren = function () {
    var self = this;
   
    self.$dropdown = $('<div>', { 'class': 'sceditor-dropdown fa-mod-buttons-prototype-dropdown' });
   
    $.each(self.config.children, function (index, child) {
      $('<a>', {
        'data-text': child.text,
        'title'    : child.name,
        'html'    : [
          $('<i>', { 'class': child.icon }).prop('outerHTML'),
          $('<span>', { 'text': child.name }).prop('outerHTML')
        ].join('\n')
      })
        .appendTo(self.$dropdown)
          .on('click', function (event) {
            self.insertText($(this), event);

            self.$dropdown.hide();
          })
      ;
    });

    self.$dropdown
      .hide()
        .appendTo('body')
    ;
  };

  /**
  * @param {string} text - Corresponde ao texto que será inserido no editor.
  */
  ModButtons.prototype.insertText = function (context, contextEvent) {
    contextEvent.preventDefault();
    contextEvent.stopPropagation();

    var $this = $(context);

    var $textarea = $('#text_editor_textarea');
    var $sceditor = $textarea.sceditor('instance');

    $sceditor.insertText($this.attr('data-text'));
  };

  ModButtons.prototype.documentListen = function () {
    var self = this;
   
    self.$dropdown.on('click', function (event) {
      event.stopPropagation();
    });
   
    $(document).on('click', function (event) {
      self.$dropdown.hide();
    });
  };

  ModButtons.prototype.createStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mod-buttons-prototype-dropdown {',
        '  padding: 0px !important;',
        '  margin-top: 5px !important;',
        '  min-width: 120px;',
        '  max-height: 200px;',
        '  overflow-y: auto;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a {',
        '  display: block;',
        '  padding: 8px 10px;',
        '  border-bottom: solid 1px #ddd;',
        '  font-size: 10px;',
        '  cursor: pointer;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a:last-child {',
        '  border-bottom: none;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a > i {',
        '  font-size: 12px;',
        '  vertical-align: middle;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };

  $(window).on('load', function () {
    $.each(buttons, function () {
      var self = this;

      (new FA.Topic.ModButtons(self)).init();
    });
  });
}(jQuery));

Creio que seja melhor para trabalhar. Na verdade, eu não creio... Realmente é melhor para trabalhar.
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: Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 15:51

Como seria a personalização dele com base no que eu passe a cima? Poderia dar uma ideia?
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 12.10.17 15:54

Basta seguir os exemplos dentro do array buttons. 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: Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 15:56

Assim?
Código:
/*globals jQuery, FA, _userdata*/
 
/**
 * Botões de moderação para o SCEditor.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.0
 */

(function ($) {
  'use strict';

  var buttons = [
    {
      name      : 'Tópico Bloqueado',
      id        : 'topic-block-button',
      text      : 'Olá, o tópico foi bloqueado... [...]',
      topics    : [6],
      img      : 'https://i.imgur.com/z5lPhgz.png',
      onlyForMod: true
    }, {
      name        : 'Lista de Ações',
      id          : 'topic-actions-list',
      topics      : [6],
      img        : 'https://i.imgur.com/oAGWDdG.png',
      inGroup    : false,
      onlyForAdmin: true,
      children    : [
        { name: 'Em Curso', text: ' [table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Resolvido', text: '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Recusado', text: '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' }
      ]
    }
  ];

  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};

  var ModButtons;
  FA.Topic.ModButtons = ModButtons = function (userConfig) {
    var self = this;

    self.userConfig = userConfig;
    self.defaults = {
      name        : undefined,
      id          : '',
      inGroup    : true,
      topics      : ['6'],
      text        : '',
      children    : false,
      img        : 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 de moderação.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões de moderação.');
      }
    });

    self.createStyles();
  };

  ModButtons.prototype.init = function () {
    var self = this;
   
    if (self.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
   
    if (self.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
   
    if (self.config.topics.indexOf('*') === -1) {
      var topicId = parseInt(location.href.replace(/.*\/t(\d+).*|.*\/post\?t=(\d+)&.*/gi, function (string, match1, match2) {
        if (match1 === undefined) {
          return match2;
        }
   
        return match1;
      }));
   
      if (self.config.topics.indexOf(topicId) === -1) {
        return false;
      }
    }

    if (Array.isArray(self.config.children) && self.config.children.length >= 1) {
      self.createButton(true);
    } else {
      self.createButton(false);
    }
  };

  /**
  * @param {boolean} isDrop Se for true, significa que o botão tem filhos.
  *                        Caso contrário, o botão não tem filhos.
  */
  ModButtons.prototype.createButton = function (isDrop) {
    var self = this;
   
    if (!$.sceditor) {
      return false;
    }
   
    self.$group = $('.sceditor-group:last');
    self.$element = $('<a>', {
      'class'      : 'sceditor-button',
      'unselectable': 'on',
      'title'      : self.config.name,
      'data-id'    : self.config.id,
      'html'        : $('<div>', { 'unselectable': 'on' }).css('background-image', 'url(' + self.config.img + ')').prop('outerHTML')
    });

    switch (isDrop) {
      case true:
        self.$element.attr('data-dropdown', 'true');

        self.createChildren();
        self.documentListen();

        self.$element.on('click', function (event) {
          event.preventDefault();
          event.stopPropagation();

          var $this = $(this);

          var offset = $this.offset();
          var height = $this.height();

          self.$dropdown
            .css('position', 'absolute')
            .css('top', offset.top + height)
            .css('left', offset.left)
            .toggle()
          ;
        });
       
        break;

      case false:
        self.$element
          .attr('data-dropdown', 'false')
            .attr('data-text', self.config.text)
              .on('click', function (event) {
                self.insertText($(this), event);
              })
        ;
       
        break;
    }

    if (self.config.inGroup) {
      self.$group.append(self.$element);

      return;
    }
   
    $('<div>', { 'class': 'sceditor-group' })
      .insertBefore(self.$group)
        .append(self.$element)
    ;
  };
 
  ModButtons.prototype.createChildren = function () {
    var self = this;
   
    self.$dropdown = $('<div>', { 'class': 'sceditor-dropdown fa-mod-buttons-prototype-dropdown' });
   
    $.each(self.config.children, function (index, child) {
      $('<a>', {
        'data-text': child.text,
        'title'    : child.name,
        'html'    : [
          $('<i>', { 'class': child.icon }).prop('outerHTML'),
          $('<span>', { 'text': child.name }).prop('outerHTML')
        ].join('\n')
      })
        .appendTo(self.$dropdown)
          .on('click', function (event) {
            self.insertText($(this), event);

            self.$dropdown.hide();
          })
      ;
    });

    self.$dropdown
      .hide()
        .appendTo('body')
    ;
  };

  /**
  * @param {string} text - Corresponde ao texto que será inserido no editor.
  */
  ModButtons.prototype.insertText = function (context, contextEvent) {
    contextEvent.preventDefault();
    contextEvent.stopPropagation();

    var $this = $(context);

    var $textarea = $('#text_editor_textarea');
    var $sceditor = $textarea.sceditor('instance');

    $sceditor.insertText($this.attr('data-text'));
  };

  ModButtons.prototype.documentListen = function () {
    var self = this;
   
    self.$dropdown.on('click', function (event) {
      event.stopPropagation();
    });
   
    $(document).on('click', function (event) {
      self.$dropdown.hide();
    });
  };

  ModButtons.prototype.createStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mod-buttons-prototype-dropdown {',
        '  padding: 0px !important;',
        '  margin-top: 5px !important;',
        '  min-width: 120px;',
        '  max-height: 200px;',
        '  overflow-y: auto;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a {',
        '  display: block;',
        '  padding: 8px 10px;',
        '  border-bottom: solid 1px #ddd;',
        '  font-size: 10px;',
        '  cursor: pointer;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a:last-child {',
        '  border-bottom: none;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a > i {',
        '  font-size: 12px;',
        '  vertical-align: middle;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };

  $(window).on('load', function () {
    $.each(buttons, function () {
      var self = this;

      (new FA.Topic.ModButtons(self)).init();
    });
  });
}(jQuery));
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 12.10.17 16:01

Sim. Feliz
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: Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 16:25

Devo prosseguir ou errei em algo ?
Código:
/*globals jQuery, FA, _userdata*/
 
/**
 * Botões de moderação para o SCEditor.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.0
 */

(function ($) {
  'use strict';

  var buttons = [
    {
      name      : 'Tópico Bloqueado',
      id        : 'topic-block-button',
      text      : 'Olá, o tópico foi bloqueado... [...]',
      topics    : [6],
      img      : 'https://i.imgur.com/z5lPhgz.png',
      onlyForMod: true
    }, {
      name        : 'Mensagens de Denúncias',
      id          : 'topic-actions-list',
      topics      : [6],
      img        : 'https://i.imgur.com/oAGWDdG.png',
      inGroup    : false,
      onlyForAdmin: true,
      children    : [
        { name: 'Em Curso', text: ' [table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Resolvido', text: '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Recusado', text: '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' }
          }, {
      name        : 'Mensagens de Dúvidas',
      id          : 'topic-actions-list',
      topics      : [6],
      img        : 'http://i.imgur.com/blJDYza.png',
      inGroup    : false,
      onlyForAdmin: true,
      children    : [
        { name: 'Em Curso', text: ' [table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Resolvido', text: '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Recusado', text: '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' }
      ]
    }
  ];

  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};

  var ModButtons;
  FA.Topic.ModButtons = ModButtons = function (userConfig) {
    var self = this;

    self.userConfig = userConfig;
    self.defaults = {
      name        : undefined,
      id          : '',
      inGroup    : true,
      topics      : ['6'],
      text        : '',
      children    : false,
      img        : 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 de moderação.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões de moderação.');
      }
    });

    self.createStyles();
  };

  ModButtons.prototype.init = function () {
    var self = this;
   
    if (self.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
   
    if (self.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
   
    if (self.config.topics.indexOf('*') === -1) {
      var topicId = parseInt(location.href.replace(/.*\/t(\d+).*|.*\/post\?t=(\d+)&.*/gi, function (string, match1, match2) {
        if (match1 === undefined) {
          return match2;
        }
   
        return match1;
      }));
   
      if (self.config.topics.indexOf(topicId) === -1) {
        return false;
      }
    }

    if (Array.isArray(self.config.children) && self.config.children.length >= 1) {
      self.createButton(true);
    } else {
      self.createButton(false);
    }
  };

  /**
  * @param {boolean} isDrop Se for true, significa que o botão tem filhos.
  *                        Caso contrário, o botão não tem filhos.
  */
  ModButtons.prototype.createButton = function (isDrop) {
    var self = this;
   
    if (!$.sceditor) {
      return false;
    }
   
    self.$group = $('.sceditor-group:last');
    self.$element = $('<a>', {
      'class'      : 'sceditor-button',
      'unselectable': 'on',
      'title'      : self.config.name,
      'data-id'    : self.config.id,
      'html'        : $('<div>', { 'unselectable': 'on' }).css('background-image', 'url(' + self.config.img + ')').prop('outerHTML')
    });

    switch (isDrop) {
      case true:
        self.$element.attr('data-dropdown', 'true');

        self.createChildren();
        self.documentListen();

        self.$element.on('click', function (event) {
          event.preventDefault();
          event.stopPropagation();

          var $this = $(this);

          var offset = $this.offset();
          var height = $this.height();

          self.$dropdown
            .css('position', 'absolute')
            .css('top', offset.top + height)
            .css('left', offset.left)
            .toggle()
          ;
        });
       
        break;

      case false:
        self.$element
          .attr('data-dropdown', 'false')
            .attr('data-text', self.config.text)
              .on('click', function (event) {
                self.insertText($(this), event);
              })
        ;
       
        break;
    }

    if (self.config.inGroup) {
      self.$group.append(self.$element);

      return;
    }
   
    $('<div>', { 'class': 'sceditor-group' })
      .insertBefore(self.$group)
        .append(self.$element)
    ;
  };
 
  ModButtons.prototype.createChildren = function () {
    var self = this;
   
    self.$dropdown = $('<div>', { 'class': 'sceditor-dropdown fa-mod-buttons-prototype-dropdown' });
   
    $.each(self.config.children, function (index, child) {
      $('<a>', {
        'data-text': child.text,
        'title'    : child.name,
        'html'    : [
          $('<i>', { 'class': child.icon }).prop('outerHTML'),
          $('<span>', { 'text': child.name }).prop('outerHTML')
        ].join('\n')
      })
        .appendTo(self.$dropdown)
          .on('click', function (event) {
            self.insertText($(this), event);

            self.$dropdown.hide();
          })
      ;
    });

    self.$dropdown
      .hide()
        .appendTo('body')
    ;
  };

  /**
  * @param {string} text - Corresponde ao texto que será inserido no editor.
  */
  ModButtons.prototype.insertText = function (context, contextEvent) {
    contextEvent.preventDefault();
    contextEvent.stopPropagation();

    var $this = $(context);

    var $textarea = $('#text_editor_textarea');
    var $sceditor = $textarea.sceditor('instance');

    $sceditor.insertText($this.attr('data-text'));
  };

  ModButtons.prototype.documentListen = function () {
    var self = this;
   
    self.$dropdown.on('click', function (event) {
      event.stopPropagation();
    });
   
    $(document).on('click', function (event) {
      self.$dropdown.hide();
    });
  };

  ModButtons.prototype.createStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mod-buttons-prototype-dropdown {',
        '  padding: 0px !important;',
        '  margin-top: 5px !important;',
        '  min-width: 120px;',
        '  max-height: 200px;',
        '  overflow-y: auto;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a {',
        '  display: block;',
        '  padding: 8px 10px;',
        '  border-bottom: solid 1px #ddd;',
        '  font-size: 10px;',
        '  cursor: pointer;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a:last-child {',
        '  border-bottom: none;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a > i {',
        '  font-size: 12px;',
        '  vertical-align: middle;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };

  $(window).on('load', function () {
    $.each(buttons, function () {
      var self = this;

      (new FA.Topic.ModButtons(self)).init();
    });
  });
}(jQuery));
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 12.10.17 17:06

Está funcionando normal? Se sim, podemos prosseguir. Feliz
Isso é só o senhor que pode dizer.
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: Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 17:07

Luiz escreveu:Está funcionando normal? Se sim, podemos prosseguir. Feliz
Isso é só o senhor que pode dizer.
Não está nem aparecendo nada caro amigo...
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 12.10.17 17:20

Troque por este que deve funcionar, certo?
Código:
/*globals jQuery, FA, _userdata*/
 
/**
 * Botões de moderação para o SCEditor.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.0
 */

(function ($) {
  'use strict';

  var buttons = [
    {
      name      : 'Tópico Bloqueado',
      id        : 'topic-block-button',
      text      : 'Olá, o tópico foi bloqueado... [...]',
      img      : 'https://i.imgur.com/z5lPhgz.png',
      onlyForMod: true
    }, {
      name        : 'Mensagens de Denúncias',
      id          : 'topic-denuncias-item',
      img        : 'https://i.imgur.com/oAGWDdG.png',
      inGroup    : false,
      onlyForAdmin: false,
      children    : [
        { name: 'Em Curso', text: '[table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Resolvido', text: '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' },
        { name: 'Recusado', text: '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]', icon: 'fa fa-cog' }
      ]
    }
  ];

  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};

  var ModButtons;
  FA.Topic.ModButtons = ModButtons = function (userConfig) {
    var self = this;

    self.userConfig = userConfig;
    self.defaults = {
      name        : undefined,
      id          : '',
      inGroup    : true,
      topics      : ['*'],
      text        : '',
      children    : false,
      img        : 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 de moderação.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões de moderação.');
      }
    });

    self.createStyles();
  };

  ModButtons.prototype.init = function () {
    var self = this;
   
    if (self.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
   
    if (self.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
   
    if (self.config.topics.indexOf('*') === -1) {
      var topicId = parseInt(location.href.replace(/.*\/t(\d+).*|.*\/post\?t=(\d+)&.*/gi, function (string, match1, match2) {
        if (match1 === undefined) {
          return match2;
        }
   
        return match1;
      }));
   
      if (self.config.topics.indexOf(topicId) === -1) {
        return false;
      }
    }

    if (Array.isArray(self.config.children) && self.config.children.length >= 1) {
      self.createButton(true);
    } else {
      self.createButton(false);
    }
  };

  /**
  * @param {boolean} isDrop Se for true, significa que o botão tem filhos.
  *                        Caso contrário, o botão não tem filhos.
  */
  ModButtons.prototype.createButton = function (isDrop) {
    var self = this;
   
    if (!$.sceditor) {
      return false;
    }
   
    self.$group = $('.sceditor-group:last');
    self.$element = $('<a>', {
      'class'      : 'sceditor-button',
      'unselectable': 'on',
      'title'      : self.config.name,
      'data-id'    : self.config.id,
      'html'        : $('<div>', { 'unselectable': 'on' }).css('background-image', 'url(' + self.config.img + ')').prop('outerHTML')
    });

    switch (isDrop) {
      case true:
        self.$element.attr('data-dropdown', 'true');

        self.createChildren();
        self.documentListen();

        self.$element.on('click', function (event) {
          event.preventDefault();
          event.stopPropagation();

          var $this = $(this);

          var offset = $this.offset();
          var height = $this.height();

          self.$dropdown
            .css('position', 'absolute')
            .css('top', offset.top + height)
            .css('left', offset.left)
            .toggle()
          ;
        });
       
        break;

      case false:
        self.$element
          .attr('data-dropdown', 'false')
            .attr('data-text', self.config.text)
              .on('click', function (event) {
                self.insertText($(this), event);
              })
        ;
       
        break;
    }

    if (self.config.inGroup) {
      self.$group.append(self.$element);

      return;
    }
   
    $('<div>', { 'class': 'sceditor-group' })
      .insertBefore(self.$group)
        .append(self.$element)
    ;
  };
 
  ModButtons.prototype.createChildren = function () {
    var self = this;
   
    self.$dropdown = $('<div>', { 'class': 'sceditor-dropdown fa-mod-buttons-prototype-dropdown' });
   
    $.each(self.config.children, function (index, child) {
      $('<a>', {
        'data-text': child.text,
        'title'    : child.name,
        'html'    : [
          $('<i>', { 'class': child.icon }).prop('outerHTML'),
          $('<span>', { 'text': child.name }).prop('outerHTML')
        ].join('\n')
      })
        .appendTo(self.$dropdown)
          .on('click', function (event) {
            self.insertText($(this), event);

            self.$dropdown.hide();
          })
      ;
    });

    self.$dropdown
      .hide()
        .appendTo('body')
    ;
  };

  /**
  * @param {string} text - Corresponde ao texto que será inserido no editor.
  */
  ModButtons.prototype.insertText = function (context, contextEvent) {
    contextEvent.preventDefault();
    contextEvent.stopPropagation();

    var $this = $(context);

    var $textarea = $('#text_editor_textarea');
    var $sceditor = $textarea.sceditor('instance');

    $sceditor.insertText($this.attr('data-text'));
  };

  ModButtons.prototype.documentListen = function () {
    var self = this;
   
    self.$dropdown.on('click', function (event) {
      event.stopPropagation();
    });
   
    $(document).on('click', function (event) {
      self.$dropdown.hide();
    });
  };

  ModButtons.prototype.createStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mod-buttons-prototype-dropdown {',
        '  padding: 0px !important;',
        '  margin-top: 5px !important;',
        '  min-width: 120px;',
        '  max-height: 200px;',
        '  overflow-y: auto;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a {',
        '  display: block;',
        '  padding: 8px 10px;',
        '  border-bottom: solid 1px #ddd;',
        '  font-size: 10px;',
        '  cursor: pointer;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a:last-child {',
        '  border-bottom: none;',
        '}',
        '',
        '.fa-mod-buttons-prototype-dropdown > a > i {',
        '  font-size: 12px;',
        '  vertical-align: middle;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };

  $(function () {
    $.each(buttons, function () {
      var self = this;

      (new FA.Topic.ModButtons(self)).init();
    });
  });
}(jQuery));
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: Botões em Determinados Tópicos

Mensagem por iScroll 12.10.17 17:36

Não aparece nada, gostaria que eu lhe setasse rank de moderador para efetuar testes ?
Lembrando, esses botões de denúncias irão aparecer em tópicos desta área : http://www.brasilplayultimate.com.br/f6-denuncias
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll 14.10.17 0:47

UP
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll 16.10.17 3:46

UP
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 16.10.17 16:41

Tente este:
Código:
/**
 * Código jQuery que permite adiconar múltiplos botões ao SCEditor;
 * Autores: Luiz~ e Kyo Panda (ajuda.forumeiros.com);
 * Plataforma: Forumeiros;
 * Versão: Todas;
 * Investimento: Todas as páginas;
 * Licence MIT;
 */
(function ($) {
  'use strict';
  var f = 3;

  var botoes = [
    {
      'somenteModVer': true,
      'name': 'Tópico Bloqueado',
      'text': 'Olá! \nO seu tópico encontra-se bloqueado. \nQueira ler nossas [i]regras[/i] para saber mais.',
      'id': 'tpc-lock',
      'imgUrl': 'http://i.imgur.com/z5lPhgz.png'
    }, {
      'somenteModVer': true,
      'name': 'Tópico Desbloqueado',
      'text': 'Olá! \nEsta é uma mensagem de status: \nSeu tópico foi desbloqueado. \nQueira ler nossas [i]regras[/i] para saber mais.',
      'id': 'tpc-unlock',
      'imgUrl': 'http://i.imgur.com/hsBvMRG.png'
    }, {
      'somenteModVer': true,
      'name': 'Mensagens de Denúncias',
      'id': 'mensagens-de-denuncias',
      'imgUrl': 'http://i.imgur.com/oAGWDdG.png',
      'filhos': [
        {
          'somenteModVer': true,
          'name': 'Denúncia UP',
          'text': '[table class=sucesso][tr][td][b]Denúncia UP[/b] \n\[b]Motivo:[/b] Motivo Aqui \n\[b]Punição:[/b] Punição Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n \n[b]Tópico Marcado como Resolvido e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/W5mUMil.png'
        }, {
          'somenteModVer': true,
          'name': 'Denúncia FAIL',
          'text': '[table class=alerta][tr][td][b]Denúncia FAIL[/b]\n\[b]Motivo:[/b] Motivo Aqui \n \n[b]Achou injusto? Peça revisão nessa área: http://www.brasilplayultimate.com.br/f130-revisao-de-punicao[/b]\n\ \n\[b]Tópico Marcado como Recusado e movido para "Arquivos - Denúncias".[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/E3r9Hh1.png'
        }, {
          'somenteModVer': true,
          'name': 'Denúncia Em Curso',
          'text': '[table class=aviso][tr][td][b]Denúncia Em Curso[/b] \n \n[b]Tópico Marcado como Em Curso. Denúncias são fechadas no prazo de 24H caso o acusado responda, caso contrário, terá o fechamento no tempo de 48H.[/b][/td][/tr][/table]',
          'id': 'msm-denuncia',
          'imgUrl': 'http://i.imgur.com/l7KlLp6.png'
        }
      ]
    }
  ];

  // Begin CSS:
  $(function () {
    $([
      /**
      * Você pode customizar o CSS, mas lembre-se de incluir as linhas entre aspas simples,
      * E sempre usar aspas compostas dentro de cada linha.
      * Lembre-se também de sempre incluir vírgula após cada linha. Exceto na última linha.
      */
      '<style>',
      '  #main .sceditor-toolbar,',
      '  #main .sceditor-group {',
      '    overflow: initial;',
      '  }',
      '  .sceditor-group {',
      '    position: relative;',
      '  }',
      '  .fa-dropdown1 {',
      '    position: absolute;',
      '    padding: 0px!important;',
      '    top: 27px;',
      '    background-color: #fff;',
      '    border: 1px #ccc solid;',
      '    display: none;',
      '  }',
      '  .fa-dropdown1 a {',
      '    display: block;',
      '    line-height: 1.5em;',
      '    padding: 7px 15px 7px 30px;',
      '    white-space: nowrap;',
      '    border-bottom: 1px #ccc solid;',
      '    cursor: pointer;',
      '    font-size: 12px;',
      '  }',
      '  .fa-dropdown1 a:last-child {',
      '    border-bottom: none;',
      '  }',
      '  .fa-dropdown1-open {',
      '    display: block;',
      '  }',
    '.naoaparecer{display:none!important;}',
      '</style>'
    ].join('\n'))
      .appendTo('head');
    });

  // Begin 'code':
  $(window).on('load', function () {
   
    if ($('.sub-header-path').html().indexOf('/f' + f) === - 1) {
      return false;
    }
 
    // Variáveis Importantes:
    var $ultimoGrupo = $('.sceditor-group:last');
    var $sceditor = $('#text_editor_textarea').sceditor('instance');
    var bgStyles1 = 'background-position: center!important; background-repeat: no-repeat!important;';
    var bgStyles2 = 'background-position: 8px 9px!important; background-repeat: no-repeat!important;';

    $.each(botoes, function (index, botoes) { 
      if (botoes.somenteModVer  && _userdata.user_level <= 0) {
        return;
      }

        if ($(botoes.filhos).length) {
          // Caso seja um dropdown (TENHA UM FILHO):
          var $parent = $('<a>', {
              class: 'sceditor-button ' + botoes.id,
              title: ' ' + botoes.name,
              style: 'background-image: url(' + botoes.imgUrl + ')!important; ' + bgStyles1,
              unselectable: 'on'
            })
              .appendTo($ultimoGrupo)
                .on('click', function () {
                  $ultimoGrupo
                    .find('.fa-dropdown1-' + botoes.id)
                      .css('left', $parent.position().left + 'px')
                        .toggleClass('fa-dropdown1-open');
                });
               
          var $dropdown = $('<div>', {
            class: 'sceditor-dropdown fa-dropdown1 fa-dropdown1-' + botoes.id
            })       
              .appendTo($ultimoGrupo);

          // Dropdown children:
          $.each(botoes.filhos, function (index, filhos) {
            $('<a>', {
              html: filhos.name,
              class: filhos.id + 'fa-dropdown1-item',
              style: 'background-image: url(' + filhos.imgUrl + ')!important; ' + bgStyles2,
            })
              .appendTo($dropdown)
                .on('click', function () {
                  $sceditor.insertText(filhos.text);
                  $('.fa-dropdown1')
                    .toggleClass('fa-dropdown1-open');
                });
          });
         
          return;
         
       
      }

    });
   
  });
}(jQuery));

Só deverá aparecer — em tese — em tópicos do subfórum 3.
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: Botões em Determinados Tópicos

Mensagem por iScroll 16.10.17 21:46

Resultou, e agora, basta repetir o JS e criar novos ?
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 16.10.17 22:35

Yep. Feliz
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: Botões em Determinados Tópicos

Mensagem por iScroll 16.10.17 23:52

Resultou perfeitamente, mas uma dúvida.
Mensagens de denúncias ficou:
Código:
  var f = 6;
o de DS:
Código:
  var f = 22;

Aí por ser : /f62-arquivos-designer
Aparece os de denúncias também.
Há como limitar somente para /f6- ?
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 16.10.17 23:58

A forma como foi feita é a única possível que consegui pensar (utilizando os crumbs). 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: Botões em Determinados Tópicos

Mensagem por iScroll 17.10.17 0:03

Dá nada kk
Ta bom do jeito que está.
Obrigado Luiz.
iScroll

iScroll
Super Membro

Membro desde : 08/03/2015
Mensagens : 1701
Pontos : 2311

http://ultimatelife.forumeiros.com

Ir para o topo Ir para baixo

Membro Entusiasta

Tópico resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz 17.10.17 0:12

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
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


Permissões neste sub-fórum
Não podes responder a tópicos