Problemas com Loja do Fórum
2 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre o painel administrativo :: Questões resolvidas sobre o painel administrativo
Página 1 de 1 • Compartilhe
Problemas com Loja do Fórum
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.
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.
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)
Re: Problemas com Loja do Fórum
Olá caro @Bruno Franks.
O seu código parece bem, tente ver se é isto:
Acesse ao caminho:
Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas marque a opção Não e salve.
mode:post - Ele coloca no modo "postar". (Não deve alterar)
post:1 - Posta uma mensagem. (Não deve alterar)
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)
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)
subject:Pedido da loja - Coloca o título da MP "Pedido da loja". (Pode alterar se não quiser que o titulo seja esse)
message:texto - Ele pega as informações na variável texto e coloca no campo da mensagem. (Não deve alterar)
Espero ter ajudado.
Até!
O seu código parece bem, tente ver se é isto:
Acesse ao caminho:
E na opção:Painel de Controle Geral Fórum Segurança
Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas marque a opção Não e salve.
Ele já envia a mensagem privada da compra efetuada para todos os usuários que forem administradores do fórum nesse código: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.
- Código:
$.post('/privmsg', {
'mode': 'post',
'post': '1',
'folder': 'inbox',
'usergroup': '1',
'subject': 'Pedido da loja',
'message': texto
})
mode:post - Ele coloca no modo "postar". (Não deve alterar)
post:1 - Posta uma mensagem. (Não deve alterar)
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)
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)
subject:Pedido da loja - Coloca o título da MP "Pedido da loja". (Pode alterar se não quiser que o titulo seja esse)
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é!
Re: Problemas com Loja do Fórum
@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!
Re: Problemas com Loja do Fórum
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'.
Tópicos semelhantes
» Problemas com MP da loja
» Problemas em código HTML - Loja
» Problemas com saldo/pontos na loja
» Problemas com o uso do AddOn Loja de Ícones
» Loja no fórum
» Problemas em código HTML - Loja
» Problemas com saldo/pontos na loja
» Problemas com o uso do AddOn Loja de Ícones
» Loja no fórum
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre o painel administrativo :: Questões resolvidas sobre o painel administrativo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos