var MarkIcon - Ajuste em escolher fóruns para funcionamento do js Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Ajuste em escolher fóruns para funcionamento do js

2 participantes

Ir para baixo

Tópico resolvido Ajuste em escolher fóruns para funcionamento do js

Mensagem por Don Corleone 21.07.18 15:41

Detalhes da questão


Endereço do fórum: http://somosmugiwara.forumeiros.com
Versão do fórum: ModernBB

Descrição


Olá, fui ajudado no tópico abaixo
Link: https://ajuda.forumeiros.com/t112505-escolher-foruns-para-funcionamento-de-codigo-js
Porém esta acontecendo algo, pois quando coloco para apenas aparecer no fórum 7, aparece também nos fóruns 71, 72, 73, 74, 75, 76 etc.
Don Corleone
Don Corleone
Super Membro

Membro desde : 06/08/2012
Mensagens : 1259
Pontos : 2032

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste em escolher fóruns para funcionamento do js

Mensagem por RafaelS. 21.07.18 15:43

Olá!

Isto deve resolver:

Código:
/*globals jQuery, FA, _userdata*/
        
        /**
         * Change the topic icon with AJAX and JavaScript.
         *
         * @author Luiz
        *
        * Modified by RafaelS. to add buttons to specific forums
        * https://ajuda.forumeiros.com/u54277
        *
         * @version 1.2
         * @licence MIT
         */
        
        (function ($) {
          'use strict';
        
          var config = [
            { name: 'Solved', id  : 4, background: '#8b5', onlyForMod: true, forum: 9 },
            { name: 'In Progress', id  : 1, background: '#ebb537', forum: 7},
            { name: 'Important', id: 5, background: '#e3493b', onlyForAdmin: true, forum: 76 }
          ];
        
          window.FA = window.FA || {};
          FA.Topic = FA.Topic || {};
        
          var MarkIcon;
          FA.Topic.MarkIcon = MarkIcon = function (config) {
            var self = this;
        
            self.userConfig = config;
            self.defaults = {
              name: undefined,
              id: undefined,
              background: undefined,
              onlyForMod: false,
              onlyForAdmin: false,
              forum: undefined,
            };
          
            self.config = $.extend({}, self.defaults, self.userConfig);
        
            $.each(self.config, function (key, value) {
              if (key === undefined) {
                throw new Error ('[Topic Icons] The ' + key + ' key was not specified in the script config.');
              }
        
              if (value === undefined) {
                throw new Error ('[Topic Icons] The ' + value + ' value was not specified in the settings.');
              }
            });
          };
        
          MarkIcon.prototype.init = function () {
            var self = this;
        
            var $post = $('.post:first');
            var $link = $post.find('a[href$="mode=editpost"]');
        
            if (!$link.length) {
              return false;
            }
        
            if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
              return false;
            }
        
            if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
              return false;
            }
            var atual = $('.sub-header-path a:last').attr("href");
            console.log("Forum detection by RafaelS.");
            if (atual.indexOf("f"+this.config.forum+"-") < 0) {
              console.log("O ícone "+this-config.name+" não está disponível no fórum: "+ atual);
              return false;
            }
        
            self.messageLink = $link.attr('href');
        
            self.$button = $('<button>', {
              'class'  : 'fa-mark-icon-button',
              'data-id': self.config.id,
              'text'  : self.config.name
            });
        
            self.$button
              .css('background-color', self.config.background)
              .on('click', function (event) {
                event.preventDefault();
        
                self.runAjax();
              })
              .insertBefore($post)
            ;
        
            self.appendStyles();
          };
        
          MarkIcon.prototype.runAjax = function () {
            var self = this;
        
            self.changeText('<i class="fa fa-refresh fa-spin"></i> Marking...');
        
            $.get(self.messageLink)
              .done(function (context) {
                var $form = $('form[action="/post"]', context);
        
                var encode  = document.charset.toLowerCase() === 'utf-8' ? window.encodeURIComponent : window.escape;
        
                var formData = $form.serializeArray();
        
                var data = {};
                $.each(formData, function () {
                  var obj = this;
        
                  data[obj.name] = obj.value;
                });
        
                data.post_icon = self.config.id;
                data.post = 1;
        
                var encoded = $.map(data, function (value, key) {
                  return key + '=' + encode(value);
                }).join('&');
        
                $.post(self.messageLink, encoded)
                  .done(self.changeText('<i class="fa fa-check"></i> Marked!'))
                  .fail(self.error)
                ;
              })
              .fail(self.error)
            ;
          };
        
          MarkIcon.prototype.changeText = function (text) {
            var self = this;
        
            self.runAjax = function () {
              return false;
            };
        
            self.$button
              .html(text)
              .prop('disabled', true)
            ;
          };
        
          MarkIcon.prototype.error = function () {
            alert([
              '[Topic Icons] AJAX Error.',
              'Refresh the page and try again.'
            ].join('\n'));
          };
        
          MarkIcon.prototype.appendStyles = function () {
            $('<style>', {
              'text': [
                '.fa-mark-icon-button {',
                '  padding: 8px 8px 8px 8px;',
                '  border: none;',
                '  color: #fff;',
                '  margin: 10px 0 10px 6px;',
                '  box-shadow: inset 0 0 0 3px rgba(0, 0, 0, 0.08);',
                '  border-radius: 3px;',
                '}'
              ].join('\n')
            }).appendTo('head');
          };
        
          $(function () {
            $.each(config, function () {
              var self = this;
        
              (new FA.Topic.MarkIcon(self)).init();
            });
          });
        }(jQuery));

Até mais. Feliz
avatar
RafaelS.
Membro Entusiasta

Membro desde : 26/04/2014
Mensagens : 5746
Pontos : 7156

http://techmais.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste em escolher fóruns para funcionamento do js

Mensagem por Don Corleone 21.07.18 16:07

Sim resolveu perfeitamente, muito obrigado cara.
Don Corleone
Don Corleone
Super Membro

Membro desde : 06/08/2012
Mensagens : 1259
Pontos : 2032

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

Ir para o topo Ir para baixo

Tópico resolvido Re: Ajuste em escolher fóruns para funcionamento do js

Mensagem por RafaelS. 21.07.18 16:07

Tópico resolvido


Movido para "Questões resolvidas".
avatar
RafaelS.
Membro Entusiasta

Membro desde : 26/04/2014
Mensagens : 5746
Pontos : 7156

http://techmais.forumeiros.com/

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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