Problemas com Loja do Fórum

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

Resolvido Problemas com Loja do Fórum

Mensagem por Bruno Franks em 12/02/18, 11:37 pm

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, 11:45 am, editado 1 vez(es)
avatar

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 151
Pontos Ativos : 197

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

Resolvido Re: Problemas com Loja do Fórum

Mensagem por Alex em 13/02/18, 08:02 am

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:
Tenha cuidado ao postar acesso de contas ao seu fórum. Nunca sabemos quem está do outro lado do computador. Quando for assim, só dê acesso à conta quando for pedido, e, envie sempre por Mensagem Privada no FdF.

Espero ter ajudado.
Até!


Bem-vindo ao Fórum dos Fóruns!
Leia as regras do Fórum dos Fóruns e as regras do setor de suporte.
Antes de criar um tópico, verifique se sua questão já não foi respondida.
Se sua questão foi resolvida, marque-a clicando no botão resolvido para organizar o fórum.
Alex — Ajudeiro
avatar

Alex
Ajudeiro
Ajudeiro

Masculino
Inscrito dia : 09/09/2016
Mensagens : 498
Pontos Ativos : 705

Ver perfil do usuário https://mundogoph.org/

Resolvido Re: Problemas com Loja do Fórum

Mensagem por Bruno Franks em 13/02/18, 12:01 pm

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

Bruno Franks
Nível 9

Masculino
Inscrito dia : 20/06/2012
Mensagens : 151
Pontos Ativos : 197

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

Resolvido Re: Problemas com Loja do Fórum

Mensagem por Alex em 13/02/18, 12:30 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.

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


Bem-vindo ao Fórum dos Fóruns!
Leia as regras do Fórum dos Fóruns e as regras do setor de suporte.
Antes de criar um tópico, verifique se sua questão já não foi respondida.
Se sua questão foi resolvida, marque-a clicando no botão resolvido para organizar o fórum.
Alex — Ajudeiro
avatar

Alex
Ajudeiro
Ajudeiro

Masculino
Inscrito dia : 09/09/2016
Mensagens : 498
Pontos Ativos : 705

Ver perfil do usuário https://mundogoph.org/

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


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