Botões em Determinados Tópicos

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

Resolvido Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 11:14 am

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.
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 12/10/17, 11:35 am

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.
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 11:51 am

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

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 12/10/17, 11:54 am

Basta seguir os exemplos dentro do array buttons. o/
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 11:56 am

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));
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 12/10/17, 12:01 pm

Sim. Feliz
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 12:25 pm

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));
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 12/10/17, 01:06 pm

Está funcionando normal? Se sim, podemos prosseguir. Feliz
Isso é só o senhor que pode dizer.
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 01:07 pm

@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...
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 12/10/17, 01:20 pm

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));
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 12/10/17, 01:36 pm

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
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 13/10/17, 08:47 pm

UP
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 16/10/17, 12:46 am

UP
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 16/10/17, 01:41 pm

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.
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 16/10/17, 06:46 pm

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

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 16/10/17, 07:35 pm

Yep. Feliz
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 16/10/17, 08:52 pm

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- ?
avatar

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 16/10/17, 08:58 pm

A forma como foi feita é a única possível que consegui pensar (utilizando os crumbs). o/
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Resolvido Re: Botões em Determinados Tópicos

Mensagem por iScroll em 16/10/17, 09:03 pm

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

iScroll
Membro do Fórum

Masculino
Inscrito dia : 08/03/2015
Mensagens : 1567
Pontos Ativos : 2126

Ver perfil do usuário http://ultimatelife.forumeiros.com

Resolvido Re: Botões em Determinados Tópicos

Mensagem por Luiz em 16/10/17, 09:12 pm

Questão marcada como Resolvida ou o Autor solicitou que ela fosse arquivada.
Tópico marcado como Resolvido e movido para Questões resolvidas.
avatar

Luiz
Principal contribuidor
Principal contribuidor

Masculino
Inscrito dia : 22/04/2016
Mensagens : 5810
Pontos Ativos : 6649

Ver perfil do usuário https://github.com/lffg/

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum