Problemas com Loja do Fórum

2 participantes

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

Tópico resolvido Problemas com Loja do Fórum

Mensagem por Bruno Franks 13.02.18 1:37

Detalhes da questão


Endereço do fórum: http://ams7.forumeiros.com/
Versão do fórum: phpBB2

Descrição


Olá! Como você está? Espero que bem!
Bom, encontrei nesse tutorial uma forma de adicionar uma espécie de sistema de loja no meu fórum baseado no Sistema de Pontos do próprio forumeiros. Criar Loja de Ícones
Pelo que entendi, a pessoa selecionaria os itens que deseja adquirir e realiza a compra. Então, se as condições forem satisfeitas (ou seja, se a pessoa tiver o número de pontos suficientes) uma mensagem privada é enviada para alguém da administração que em seguida atualizará os dados: descontará os pontos no perfil do usuário e "adicionará" os itens adquiridos.
Entretanto, essa Mensagem Privada não está sendo enviada. Fiz algumas alterações no código, mas acho que não cheguei a prejudicar algo da funcionalidade dele, pois me atentei em modificar mais a aparência do mesmo. Gostaria de saber se há alguma correção para ser feita para a mensagem ser efetivamente enviada e se é possível também adicionar mais de um usuário para receber a tal mensagem privada, para dividir o serviço de atualizar os perfis dos jogadores.
Fica aqui meu código atual. A opção "Você deseja utilizar o início e o final da página do seu fórum ?" está marcada como "Sim" e mudei o termo "pontos" para "dracmas", para melhor contextualização com a temática do fórum.


Código:
<script type="text/javascript">
  $(function() {
  var produtos = {
 
    /* Ícones da loja abaixo.
    Lembre-se de adicionar uma vírgula ao final de cada novo ítem adicionado.
    Não adicione vírgula após o último ítem adicionado. */
 
    'Gold Star': {
        icone: 'http://i.imgur.com/taaL40o.png',
        preco: '200',
        descricao: 'Stars WHOA'
    },
 
    'Helmet': {
        icone: 'http://png.findicons.com/files/icons/2169/picnic/70/helmet2.png',
        preco: '250',
        descricao: 'Capacete de batalha'
    },
 
    'Charmander': {
        icone: 'http://i72.servimg.com/u/f72/18/07/42/17/shop_i33.png',
        preco: '250',
        descricao: 'Pokemón tipo fogo'
    }
    // Perceba que não existe vírgula após o último ítem. Caso queira adicionar mais ítens após o último, adicione uma vírgula logo após a chave "}". Lembre-se de deixar apenas o último ítem sem vírgula ao final.
 
 
  };
 
 
  var content = $('.content .itens');
      $.each(produtos, function (key, value) {
          content.append(
          '<tr class="item">' +
          '  <td class="icone" style="width: 10%;"><img src="' + value.icone + '" /></td>' +
          '  <td style="width: 50%;"><strong class="nome">' + key + '</strong><br /><br />' + value.descricao + '</td>' +
          '  <td>' +
          '  <ul>' +
          '  <li class="preco" data-myprice="' + value.preco + '"><img src="https://i62.servimg.com/u/f62/18/96/29/25/_211.png" /> Preço: ' + value.preco + ' dracmas de ouro</li>' +
          '  <br />' +
          '  <li><input type="button" onclick="addToCart(this)" value="Adicionar ao carrinho" style="background-color:white" /></li>' +
    '  </ul>' +
          '  </td>' +
          '</tr>'
          );
      });
      $.ajax({
        url: '/u' + _userdata.user_id,
        type: 'GET',
        success: function(responseHtml)
        {
        var myPoints = $('#field_id-13 dd', responseHtml).text();
        $('.myPoints').html('Meu saldo de dracmas: <span class="totalPoints">' + myPoints + '</span>');
        },
        error: function(err)
        {
          console.log("AJAX error in request (Store points)");
        }
      });
  });
  var $total = 0;
  function addToCart(item) {
    var getItem = $(item).parents('.item').find('.nome').text();
    var getPrice = parseInt($(item).parents('.item').find('.preco').attr('data-myprice'));
    $total += getPrice;
    $('.total').html('Valor total: <span class="totalVal">' + $total + '</span> dracmas');
    $('.cart').append('<span class="item-cart" onclick="removeFromCart(this)" data-myprice="' + getPrice + '">' + getItem + '</span>');
  }
  function removeFromCart(item) {
    var getPrice = parseInt($(item).attr('data-myprice'));
    $total -= getPrice;
    $('.total').html('Valor total: <span class="totalVal">' + $total + '</span> dracmas');
    $(item).remove();
  }
  function resetItems() {
    $('.cart').empty();
    $total = 0;
    $('.total').empty();
  }
  function buyItems() {
    if(!$('.cart').is(':empty')) {
      var valPoints = parseInt($('.totalPoints').text());
      var valTotal = parseInt($('.totalVal').text());
      if(valPoints >= valTotal) {
      var texto = '';
      var total = 0;
      $('.item-cart').each(function() {
        var item = $(this).text();
        var preco = parseInt($(this).attr('data-myprice'));
        texto += '[b]' + item.charAt(0).toUpperCase() + item.slice(1)
        //add line break at the end
        + ':[/b] ' + preco + " dracmas\n";
        total += preco;
      });
      texto += '\n\n[b]Valor total:[/b] ' + total + ' dracmas';
      $.post('/privmsg', {
            'mode': 'post',
            'post': '1',
            'folder': 'inbox',
            'usergroup': '1',
            'subject': 'Pedido da loja',
            'message': texto
      }).done(function() {
        alert("Seu pedido foi enviado! Aguarde até que um administrador adicione seus itens");
        resetItems();
      });
      } else {
        alert("Você não possui dracmas suficientes para efetuar a compra");
      }
    } else {
      alert("O carrinho está vazio");
    }
  }
</script><style type="text/css">
table.content {
  background: #fafafa;
  border: 1px solid #eaeaea;
  border-collapse: separate;
  empty-cells: show;
  table-layout: fixed;
  width: 100%;
}
.itens .nome {font-size: 14px; font-family:Century Gothic;}
.itens .icone {
text-align: center;
}
.itens .icone img {
  height: 50px;
  width: 50px;
}
.item-cart {
  background: orange url(https://cdn0.iconfinder.com/data/icons/very-basic-android-l-lollipop-icon-pack/24/close-16.png) no-repeat 5px;
  margin: 3px 4px;
  cursor: pointer;
  display: inline-block;
  font-weight: bold;
  padding: 5px;
  padding-left: 25px;
  color: white;
  border-radius: 3px;
}
table.content tr td {padding: 10px;background: #f0f0f0;border-bottom: 1px solid #e0e0e0;}
.itens ul li {list-style-type: none;}
.daemon {
  background: #053c73;
  text-align: center;
  padding: 10px;
  margin-bottom:15px;
}
#cart {
  background: #f0f0f0;
  border: 1px solid #e0e0e0;
  margin-top: 5px;
  padding: 5px;
}
.cart {
  background: white url("https://cdn1.iconfinder.com/data/icons/flat-artistic-shopping-icons/32/shopping-32.png") no-repeat 10px center;
  min-height: 50px;
  padding-left: 1px;
  border: 1px solid #ddd;
}
.total, .myPoints {font-size: 13px;display: block;margin-top: 5px;font-family: Century Gothic;display: block;font-style: italic;font-weight: lighter;}
</style>
<div class="daemon">
     <span style="color: white;font-size: 25px;font-weight: lighter; font-family:Century Gothic;">Loja do Acampamento</span>
</div>
<table class="content">
         <tbody class="itens"></tbody>
</table>
<div id="cart">
    
   <div class="cart">
   </div>
     <span class="myPoints"></span>  <span class="total"></span>
</div>
<div class="daemon">
     <input onclick="buyItems()" value="Concluir compra" type="button" />  <input onclick="resetItems()" value="Resetar itens" type="button" />
</div>



O link para a loja no fórum é esse → http://ams7.forumeiros.com/h1-loja-do-forum – Coloco-o aqui porque não publiquei o link em nenhum tópico do fórum ainda. Estou esperando ficar pronto para fazê-lo.
Desde já, fico agradecido pela ajuda e cooperação.


Última edição por Bruno Franks em 13.02.18 13:45, editado 1 vez(es)
Bruno Franks

Bruno Franks
***

Membro desde : 20/06/2012
Mensagens : 153
Pontos : 201

http://ams7.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Problemas com Loja do Fórum

Mensagem por Alex 13.02.18 10:02

Olá caro @Bruno Franks.

O seu código parece bem, tente ver se é isto:

Acesse ao caminho:
Painel de Controle Flecha ajudeiros Geral Flecha ajudeiros Fórum Flecha ajudeiros Segurança Flecha ajudeiros
E na opção:
Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas marque a opção Não e salve.

Bruno Franks escreveu:se é possível também adicionar mais de um usuário para receber a tal mensagem privada, para dividir o serviço de atualizar os perfis dos jogadores.
Ele já envia a mensagem privada da compra efetuada para todos os usuários que forem administradores do fórum nesse código:
Código:
$.post('/privmsg', {
            'mode': 'post',
            'post': '1',
            'folder': 'inbox',
            'usergroup': '1',
            'subject': 'Pedido da loja',
            'message': texto
      })
Entendendo este código:
Flecha ajudeiros mode:post - Ele coloca no modo "postar". (Não deve alterar)
Flecha ajudeiros post:1 - Posta uma mensagem. (Não deve alterar)
Flecha ajudeiros folder:inbox - A mensagem vai ser colocada na caixa de entrada das MP dos administradores. (Pode alterar se não quiser que mande para a caixa de entrada)
Flecha ajudeiros usergroup:1 - Id do grupo dos administradores, ou seja, todos os membros deste grupo receberá a mensagem da compra. (Pode alterar se não quiser que os administradores recebam a mensagem, mas sim outro grupo. Para isso, deve colocar o id do grupo em vez do 1)
Flecha ajudeiros subject:Pedido da loja - Coloca o título da MP "Pedido da loja". (Pode alterar se não quiser que o titulo seja esse)
Flecha ajudeiros message:texto - Ele pega as informações na variável texto e coloca no campo da mensagem. (Não deve alterar)

Spoiler:

Espero ter ajudado.
Até!
Alex

Alex
Membro

Membro desde : 09/09/2016
Mensagens : 651
Pontos : 883

https://policiadop.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Problemas com Loja do Fórum

Mensagem por Bruno Franks 13.02.18 14:01

@AlexG deu certo! Era a questão da configuração de segurança mesmo. Muito agradecido e considere suas recomendações aceitas. Mais uma vez, muito obrigado!
Bruno Franks

Bruno Franks
***

Membro desde : 20/06/2012
Mensagens : 153
Pontos : 201

http://ams7.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Problemas com Loja do Fórum

Mensagem por Alex 13.02.18 14:30

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

Tópico movido de 'Questões sobre códigos' para 'Questões sobre o painel de administração'.
Alex

Alex
Membro

Membro desde : 09/09/2016
Mensagens : 651
Pontos : 883

https://policiadop.com/

Ir para o topo Ir para baixo

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

- Tópicos semelhantes

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