Botão resolvido duvida!

2 participantes

Ir para baixo

Tópico resolvido Botão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 16:19

Detalhes da questão


Endereço do fórum: http://aquariumbrasil.forumeiro.com
Versão do fórum: phpBB3

Descrição


Pois bem pessoal gostaria de uma com a questão abaixo:

1-Botão resolvido (Onde apenas o usuário e os moderadores ou administrador podem clicar mudando assim o ícone de "em curso" para "resolvido" na postagem)


por enquanto acho que é só.


Última edição por BrunoLemos em 25.10.17 20:28, editado 2 vez(es)
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 16:22

Boa tarde,

Só é permitida uma questão por tópico. Sendo assim, o senhor só poderá prosseguir com uma aqui.
Com qual iremos continuar? o/
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 16:45

Botão resolvido!
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 16:51

Olá novamente,

Por favor, leia este tópico resolvido de uma dúvida semelhante à sua:
-> Clique aqui.

o/
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 16:54

Já li todo este tópico fiz o procedimento porém não consegui fazer funcionar corretamente e apaguei as modificações pra começar do zero
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 16:55

Certo. O senhor já possui os ícones de mensagem setados?
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 16:59

Sim são estes:

undefined | ID: 0
Resolvido | ID: 2
Em curso | ID: 1
Fechado | ID: 3
Artigo | ID: 4
Ok | ID: 5
Cancelado | ID: 6
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 16:59

O senhor deseja um botão para cada?
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 17:05

Para os seguintes icones com as seguintes autorizações (se possível for):

Resolvido - Dono da postagem Moderadores e Adm
Fechado - Moderadores e Adm
Artigo - Moderadores e Adm
Cancelado - Moderadores e Adm
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 17:09

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

o/
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 17:19

Funcionou 100% agora eu gostaria de mudar o icone desses botões (que estão com cores) por imagens
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 17:25

Quais as imagens?
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 17:45

Pode ser qualquer imagem pois irei editar depois
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 17:57

Eu precisarei das imagens para continuar. :/

Edit:
O senhor não acha melhor colocar um ícone antes do botão ao invés das imagens?

http://fontawesome.io/icons/
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 18:29

ResolvidoBotão resolvido duvida! Resolu11
FechadoBotão resolvido duvida! JQhcBgj
ArtigoBotão resolvido duvida! NqYmnBI
Cancelado Botão resolvido duvida! Cancel12

Favor colocar um exemplo para inserção desse icone
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 18:32

Troque o código por este:
Código:
/*globals jQuery, FA, _userdata*/
 
/**
 * Alterar o ícone do tópico com AJAX.
 *
 * @author lffg <https://github.com/lffg>
 * @version 1.2
 */
 
(function ($) {
  'use strict';
 
  var config = [
    { name: 'Resolvido', id: 2, img: 'http://i45.servimg.com/u/f45/11/65/59/72/resolu11.png' },
    { name: 'Fechado', id: 3, img: 'http://i.imgur.com/jQhcBgj.png', onlyForMod: true },
    { name: 'Artigo', id: 4, img: 'http://i.imgur.com/nqYmnBI.png', onlyForMod: true },
    { name: 'Cancelado', id: 6, img: 'http://i86.servimg.com/u/f86/11/66/91/15/cancel12.png', onlyForMod: true }
  ];
 
  window.FA = window.FA || {};
  FA.Topic = FA.Topic || {};
 
  var MarkIcon;
  FA.Topic.MarkIcon = MarkIcon = function (config) {
    var self = this;
 
    self.userConfig = config;
    self.defaults = {
      name: undefined,
      id: undefined,
      background: undefined,
      onlyForMod: false,
      onlyForAdmin: false
    };
   
    self.config = $.extend({}, self.defaults, self.userConfig);
 
    $.each(self.config, function (key, value) {
      if (key === undefined) {
        throw new Error ('Não foi especificado um: ' + key + ' para o script de botões.');
      }
 
      if (value === undefined) {
        throw new Error ('Não foi especificado um valor: ' + value + ' para o script de botões.');
      }
    });
  };
 
  MarkIcon.prototype.init = function () {
    var self = this;
 
    var $post = $('.post:first');
    var $link = $post.find('a[href$="mode=editpost"]');
 
    if (!$link.length) {
      return false;
    }
 
    if (this.config.onlyForMod && (_userdata.user_level !== 1 && _userdata.user_level !== 2)) {
      return false;
    }
 
    if (this.config.onlyForAdmin && _userdata.user_level !== 1) {
      return false;
    }
 
    self.messageLink = $link.attr('href');
 
    self.$button = $('<button>', {
      'class'  : 'fa-mark-icon-button',
      'data-id': self.config.id,
      'html'  : $('<img />', { 'src': self.config.img }).prop('outerHTML')
    });
 
    self.$button
      .on('click', function (event) {
        event.preventDefault();
 
        self.runAjax();
      })
      .insertBefore($post)
    ;
 
    self.appendStyles();
  };
 
  MarkIcon.prototype.runAjax = function () {
    var self = this;
 
    $.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)
          .fail(self.error)
        ;
      })
      .fail(self.error)
    ;
  };
 
  MarkIcon.prototype.error = function () {
    var self = this;
 
    alert([
      'Houve um erro ao marcar o tópico como "' + self.config.name + '".',
      'Por favor, contate o suporte técnico.'
    ].join('\n'));
  };
 
  MarkIcon.prototype.appendStyles = function () {
    $('<style>', {
      'text': [
        '.fa-mark-icon-button {',
        '  margin: 10px 0 10px 6px;',
        '  background-color: transparent;',
        '  border: none;',
        '}'
      ].join('\n')
    }).appendTo('head');
  };
 
  $(function () {
    $.each(config, function () {
      var self = this;
 
      (new FA.Topic.MarkIcon(self)).init();
    });
  });
}(jQuery));

o/
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 19:03

Como ficaria o codigo do resolvido com o icone abaixo nas 4 opções:

<i class="fa fa-flag" aria-hidden="true"></i>
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 19:08

Não consegui entender.
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 19:15

Luiz escreveu:Eu precisarei das imagens para continuar. :/

Edit:
O senhor não acha melhor colocar um ícone antes do botão ao invés das imagens?

http://fontawesome.io/icons/

Voce me passou esse site ai como ficaria com uma bandeirinha nas minhas 4 opções mais o nome exemplo :

(Bandeirinha) Resolvido
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 19:19

O senhor vai querer com as imagens ou com os ícones? Louco
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 19:23

Quero os icones por enquanto com a bandeirinha, lhe pedi o design com as imagens apenas para salvar logo para futuras edições
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 19:44

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

Você pode configurá-los nessa parte do script:
Código:
var config = [
  { name: 'Resolvido', id: 2, background: '#8b5', icon: 'fa-flag' },
  { name: 'Fechado', id: 3, background: '#ebb537', icon: 'fa-flag', onlyForMod: true },
  { name: 'Artigo', id: 4, background: '#e3493b', icon: 'fa-flag', onlyForMod: true },
  { name: 'Cancelado', id: 6, background: 'red', icon: 'fa-flag', onlyForMod: true }
];

Não se esqueça de instalar a FontAwesome no seu fórum:
-> https://ajuda.forumeiros.com/t103208-tutorial-instalacao-do-font-awesome-no-forum
Luiz
Luiz
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ão resolvido duvida!

Mensagem por BrunoLemos 25.10.17 20:28

Resultou obrigado!
BrunoLemos
BrunoLemos
***

Membro desde : 06/10/2016
Mensagens : 156
Pontos : 208

http://aquariumbrasil.forumeiro.com https://www.facebook.com/admbrunolemos

Ir para o topo Ir para baixo

Tópico resolvido Re: Botão resolvido duvida!

Mensagem por Luiz 25.10.17 20:28

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 desde : 23/04/2016
Mensagens : 6645
Pontos : 7451

https://luizfelipe.dev

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