Ir para conteúdo

wneo

Members
  • Total de itens

    362
  • Registro em

  • Última visita

Reputação

5 Regular

Sobre wneo

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Skype
    williamshakespieretti@hotmail.com

Últimos Visitantes

743 visualizações
  1. wneo

    HTML & PHP

    Pense na arquitetura de seu projeto. Qual design pattern deseja seguir. Quais ferramentas irá utilizar. (Frameworks terceirizados ou próprios). Adapte seu conhecimento a esse planejamento. A melhor ferramenta é seu conhecimento. Abstração entre código lógico e código arquitetural é sempre uma boa pedida.
  2. wneo

    While com estrutura com template PHP+tpl

    Resolvido... while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; $pipes = array( array("id" => $id, "nome" => $nome) ); foreach ($pipes as $pipe) { $profile = new Template("../tpl/list_lines.tpl"); foreach ($pipe as $key => $value) { $profile->set($key, $value); }//end foreach pipe $pipeTemplates[] = $profile; }//end foreach pipes }//end while rs $pipeContents = Template::merge($pipeTemplates); $profile = new Template("../tpl/index.tpl"); $profile->set("list_lines", $pipeContents); /** * Outputs page */ echo $profile->output();
  3. wneo

    Logo por cima do slider

    Precisaria ver com mais detalhes o que está ocasionando isso, mas uma medida emergencial seria: <style> img{ margin:-40px 0 0 0; } </style>
  4. wneo

    Logo por cima do slider

    Então adiciona a imagem de outra forma. Hoje você colocou como elemento html direto, <img src>. Muda isso para background com css: #logo{ width:150px; background:url(projetos.wpmasterlab.com/micozinha/wp-content/uploads/2017/05/logo.png)no-repeat center ; background-size:contain; }
  5. wneo

    Logo por cima do slider

    vejamos com css: .logo{ position:absolute; z-index:999999999; }
  6. wneo

    While com estrutura com template PHP+tpl

    Fiz mais um estudo na estrutura, e consegui uma evolução, mas ainda falta carregar os dados. o index.tpl ficou assim: <meta charset="utf-8"> <h1>Olá...</h1> <div class="choose_box"> <ul> [@list_lines] </ul> </div><!-- /choose_box--> <script> $(document).ready(function(){ /* ... */ /* ... */ });//end doc </script> Criei mais um arquivo chamado list_lines.tpl: <form class=""> <p> <span class="icone icon-archive2"></span> <span class="big_text">[@nome]</span> </p> </form> E o index.php é onde está a questão: <?php include_once("../../../model/classes/template.class.php"); require_once("../../../model/conecta/conecta.php"); $sql = "SELECT * FROM tabela"; $rs = mysql_query($sql); /* while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; }//end while rs */ $pipes = array( array("nome" => "teste1"), array("nome" => "teste2"), array("nome" => "teste3"), ); foreach ($nomes as $nome) { $profile = new Template("../tpl/list_lines.tpl"); foreach ($nome as $key => $value) { $profile->set($key, $value); } $pipeTemplates[] = $profile; } $pipeContents = Template::merge($pipeTemplates); $profile = new Template("../tpl/index.tpl"); $profile->set("list_lines", $pipeContents); /** * Creates a new template for the user's profile. */ /** * Outputs the page with the user's profile. */ echo $profile->output(); ?> Com isso, consegui fazer o registro se repetir... Mas como faço para carregar no array os dados da tabela? $sql = "SELECT * FROM tabela"; $rs = mysql_query($sql); /* while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; }//end while rs */ $pipes = array( array("nome" => "teste1"), array("nome" => "teste2"), array("nome" => "teste3"), );
  7. wneo

    While com estrutura com template PHP+tpl

    Olá! Estou testando um recurso de template php(abstrair layout html do programa php). Tenho dúvida em como utilizar o while nessa estrutura: index.php: <?php include_once("../../../model/classes/template.class.php"); require_once("../../../model/conecta/conecta.php"); $sql = "SELECT * FROM tabela"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; }//end while rs /** * Creates a new template for the user's profile. */ $profile = new Template("../tpl/index.tpl"); $profile->set("nome", $nome); /** * Outputs the page with the user's profile. */ echo $profile->output(); ?> index.tpl: <meta charset="utf-8"> <div class="choose_box"> <ul> <!-- O form estaria no while --> <form class=""> <p> <span class="icone icon-archive2"></span> <span class="big_text">[@nome]</span> </p> </form> <script> $(document).ready(function(){ /* ... */ /* ... */ });//end doc </script> </ul> </div><!-- /choose_box--> Preciso que o form esteja dentro do while, para que dessa forma tenhamos como resultado a visualização de todos os registros dessa tabela nessa disposição. Tentei colocar nessa parte do php, assim: while($row = mysql_fetch_array($rs)){ $id = $row['id']; $nome = $row['nome']; $profile = new Template("../tpl/index.tpl"); $profile->set("nome", $nome); }//end while rs Mas das duas formas apenas aparece 1registro... gostaria que todos fossem listados nesse while, que seria em torno do form.. Alguém sabe como?
  8. wneo

    Ajuda na integração PHP+Pagseguro

    Ainda não, Vou ver como é, obrigado Ana!
  9. wneo

    Ajuda na integração PHP+Pagseguro

    Certo pessoal... Seguindo então com base nos últmos posts de Gabriel, Williams e ESerra. - Coloquei os arquivos no github sem rar. https://github.com/WPG2000/pagseguro-transparente-php - O desafio de um modo geral, é ter a integração completa funcionando, de inicio o pagseguro me parecia um bom recurso, no entanto receber mais ideias me atrai muito, assim como a do Guilherme, que falou sobre o gerencianet. Considero ideal o contexto colaborativo de uma idéia, para evolução mútua de quem frequenta e procura o forum, mantendo os questionamentos e respostas em um nível didático, no entanto cada um tem sua liberdade de expressão, embora nem sempre agreguem com algo de valor a todos. - Fazendo um resumo então da necessidade atual.. considerando os posts anteriores em que já a apresentei... e mencionando a orientação correta de Gabriel, e também do ESerra: - A idéia que montei, e para facilitar o entendimento, está dividida em 3 partes: 1 - Ter a foto dos produtos com sua descrição em uma pagina; 2 - Ao clicar no produto, abrir uma tela com mais detalhes, para o usuário escolher quantidade e demais itens conforme tipo de produto; 3 - Ao definir isso, ser direcionado a uma nova tela, onde carrega no carrinho o que o usuário quer comprar, e o formulário para dados do comprador. Podendo assim, escolher forma de pagamento e gerar o mesmo...(boleto ou cartões)... * O 1 e 2 já estão acontecendo na idéia que montei... * Originalmente nessa idéia com o material do pagseguro, o ítem 3, era uma pagina onde havia um recurso de adicionar os items, que seriam os produtos e ao lado dados do comprador e forma de pagamento. * Quero modificar isso, fazendo de um modo onde chegando nessa página, o produto já esteja selecionado com suas especificações escolhidas pelo cliente, e então possa ser finalizada a compra. * Persistir os dados até esse momento, já está acontecendo, pode ser visualizado no projeto para download... Gostaria então, de resgatar ele nesse contexto de código que vem do material do pagseguro, e finalizar a compra, pq atualmente fica apenas com a mensagem de aguardando na tela...não gera o boleto nem pgto via cartão: // Setting the application NameSpace var MyApplication = window.MyApplication || {}; MyApplication.CheckoutPage = new function() { var hasSessionId = false; // Inicia sem sessionId var updateSessionId = function(callback) { showLoading(); $.ajax({ url: "engine/pagseguro/sessionid.php", type:"GET", cache: false, success: function(response) { PagSeguroDirectPayment.setSessionId(response); hasSessionId = true; cardBrandEvents(); callback(); }, error: function() { alert(" Não foi possível obter o Session ID do PagSeguro "); }, complete: function() { hideMessages(); } }); }; // Atualiza dados de parcelamento atráves da bandeira do cartão var updateInstallments = function(brand) { var amount = Number($("#totalValue").html()); PagSeguroDirectPayment.getInstallments({ amount: amount, brand: brand, success: function(response) { // Para obter o array de parcelamento use a bandeira como "chave" da lista "installments" var installments = response.installments[brand]; var options = ''; for (var i in installments) { var optionItem = installments[i]; var optionQuantity = optionItem.quantity; // Obtendo a quantidade var optionAmount = optionItem.installmentAmount; // Obtendo o valor var optionLabel = (optionQuantity + "x " + formatMoney(optionAmount)); // montando o label do option var price = Number(optionAmount).toMoney(2,'.',','); options += ('<option value="' + optionItem.quantity + '" dataPrice="'+price+'">'+ optionLabel +'</option>'); }; // Atualizando dados do select de parcelamento $("#installmentQuantity").html(options); // Exibindo select do parcelamento $("#installmentsWrapper").show(); // Utilizando evento "change" como gatilho para atualizar o valor do parcelamento $("#installmentQuantity").trigger('change'); }, error: function(response) { }, complete: function(response) { } }); }; var updateCardBrand = function(cardBin) { PagSeguroDirectPayment.getBrand({ cardBin: cardBin, success: function(response) { var brand = response.brand.name; $("#cardBrand").attr('brand', brand); $("#creditCardBrand").val(brand); updateInstallments(brand); }, error: function(response) { }, complete: function(response) { } }); }; var changeMethod = function(method) { var loading = $("#paymentMethodLoading"); loading.show(); var showBox = function() { var allMethods = $(".paymentMethodGroup"); var thisMethod = allMethods.filter("[dataMethod='"+method+"']"); allMethods.hide(); thisMethod.show(); loading.hide(); }; if (hasSessionId) { showBox(); } else { // obter sessioId se ainda não foi setado updateSessionId(showBox); } }; var updateCardToken = function(callback) { PagSeguroDirectPayment.createCardToken({ cardNumber: $("#cardNumber").val(), brand: $("#creditCardBrand").val(), cvv: $("#cardCvv").val(), expirationMonth: $("#cardExpirationMonth").val(), expirationYear: $("#cardExpirationYear").val(), success: function(response) { // Obtendo token para pagamento com cartão var token = response.card.token; // Executando o callback (pagamento) passando o token como parâmetro callback(token); }, error: function(response) { showCardTokenErrors(response.errors); }, complete: function(response) { } }); }; // Fazer pagamento de qualquer tipo var doPayment = function(params, callback) { // travando a tela (loading) showLoading(); // Adicionando dados do comprador aos parâmentros de pagamento areaToParams("buyerData", params); // Adicionando dados dos items (carrinho) aos parâmetros de pagamento addCartData(params); // Atualizando hash do comprador params.senderHash = PagSeguroDirectPayment.getSenderHash(); // Request para o PHP passando os dados do pagamento $.ajax({ type:"POST", url: "payment.php", data: params, dataType: 'json', cache: false, success: function(response) { // Executa o callback passado como parâmentro callback(response.transaction); }, error: function(jqxhr) { // Liberando a tela (esconde o loading) //hideMessages(); // obtendo lista de erros var response = $.parseJSON(jqxhr.responseText); // Exibindo lista de erros showPaymentErrors(response.errors); } }); }; // Pagamento com cartão de crédito var creditCardPayment = function() { showLoading(); ////////////////////////////////////// // fazer validação nesse ponto; ////////////////////////////////////// updateCardToken(function(cardToken) { // Atualizando field que deve conter o valor do token $("#creditCardToken").val(cardToken); var params = { paymentMethod: 'creditCard' }; // Adicionando dados do cartão de crédito aos parâmentros de pagamento areaToParams("creditCardData", params); // Fazer pagamento via cartão de crédito passando um callback a ser executado no final doPayment(params, function(transaction){ // Aqui você tem o código da transação no final do pagamento showTransactionCode(transaction.code); }); }); }; // Alerando tipo de meio de pagamento (cartão, boleto ou tef) var changeMethodEvents = function() { var radioInputs = $("input[name='changePaymentMethod']"); radioInputs.click(function(){ var method = $(this).val(); changeMethod(method); }); radioInputs.filter(":checked").trigger("click"); }; // Pagamento via cartão de crédito no click do "botão pagar" var creditCardPaymentEvents = function() { $("#creditCardPaymentButton").click(function(){ creditCardPayment(); }); }; // Gerenciando bandeira do cartão var cardBrandEvents = function() { var verifyBrand = function() { // Obtendo apenas os 6 primeiros dígitos (bin) var cardBin = $("#cardNumber").val().substring(0, 6); // Atualizar Brand apenas se tiver 6 ou mais dígitos preenchidos if (String(cardBin).length >= 6) { // Atualizar Brand updateCardBrand(cardBin); } else { // Se não digitou o número do cartão, esconder parcelamento $("#installmentsWrapper").hide(); } }; // Verificar bandeira após qualquer mudança nos inputs de cartão de crédito $(".cardDatainput").change(function(){ verifyBrand(); }); // Verificar bandeira logo no início verifyBrand(); }; // Atualizando o valor do parcelamento var installmentQuantityEvents = function() { $("#installmentQuantity").change(function() { var option = $(this).find("option:selected"); if (option.length) { $("#installmentValue").val( option.attr("dataPrice") ); } }); }; var holderEvents = function() { var holderData = $("#holderData"); // Usar dados do comprador para preencher dados do dono do cartão $("#sameHolder").click(function(){ $("#buyerData input[holderField]").each(function(){ var fieldRef = $(this).attr('holderField'); var value = $(this).val(); holderData.find("input[holderField=\""+fieldRef+"\"]").val(value); }); $("#creditCardHolderBirthDate").focus(); holderData.show(); }); // limpar dados do dono do cartão para preecher novo $("#otherHolder").click(function(){ holderData.find("input").val(''); holderData.show(); $("#creditCardHolderBirthDate").focus(); }); // Verificar no início $("input[name='holderType']:checked").trigger('click'); }; // Adicionar dados do carrinho aos parâmetros de pagamento var addCartData = function(params) { $("#cartTable tbody tr").each(function(index, element){ $(element).find("td").each(function(){ if($(this).attr("data-name")) { if (startsWith($(this).attr("data-name"),"itemAmount")) { params[$(this).attr("data-name") + (index+1)] = $(this).html().replace(",","."); } else { params[$(this).attr("data-name") + (index+1)] = $(this).html(); } } }); }); }; // Eventos do carrinho (adicioanr item) var cartEvents = function() { $("#addItem").click(function(){ $.colorbox({ html: $("#cartItemHidden").html(), fixed: true }); $("#colorbox .addToCart").unbind('click').bind('click', function(){ var parent = $(this).parents(".cartItemFields"); var itemid = parent.find(".itemId").val(); var descr = parent.find(".itemDescription").val(); var amount = Number(parent.find(".itemAmount").val().replace(",", ".")); var qty = Number(parent.find(".itemQuantity").val()); var itemValue = (amount * qty); var html = ("<tr>"); html += ("<td data-name='itemId'>" + itemid + "</td>"); html += ("<td data-name='itemDescription'>" + descr + "</td>"); html += ("<td data-name='itemAmount'>" + amount.toMoney(2, ',', '.') + "</td>"); html += ("<td data-name='itemQuantity'>" + '<?php echo $quantidade; ?>' + "</td>"); html += ("<td>" + itemValue.toMoney(2, ',', '.') + "</td>"); html += ("</tr>"); $("#cartTable tbody").append(html); var total = Number($("#totalValue").html()); total = total + itemValue; $("#totalValue").html(total.toMoney(2, '.', ',')); if ($("#installmentQuantity").val() != "") { updateInstallments( $("#creditCardBrand").val() ); } $.colorbox.close(); }); }); }; // Pagamento com TEF var eftEvents = function() { $(".bank-flag").click(function(){ var bank = $(this).attr("dataBank"); var params = { paymentMethod: 'eft', bankName: bank }; doPayment(params, function(transaction){ window.open(transaction.paymentLink); showWaitingPayment("Débito online"); }); }); }; // Pagamento com boleto var boletoEvents = function() { $("#boletoButton").click(function(){ var params = { paymentMethod: 'boleto' }; doPayment(params, function(transaction){ window.open(transaction.paymentLink); showWaitingPayment("Pagamento com Boleto..."); }); }); }; // Aplicando eventos apenas quado o documento estiver pronto $(document).ready(function(){ cartEvents(); changeMethodEvents(); holderEvents(); creditCardPaymentEvents(); installmentQuantityEvents(); eftEvents(); boletoEvents(); }); };
  10. wneo

    Ajuda na integração PHP+Pagseguro

    Nesse link tem o código que eu montei para ser baixado e acompanhar a idéia: https://github.com/WPG2000/pagseguro-transparente-php *Como existe uma estrutura de modelo que montei, acredito ser melhor ter o código em mãos para quem quiser ajudar ter mais facilidade de entender, daí então falamos sobre trechos específicos. *Com relação a trazer minha dificuldade.. em post anterior apresentei: Seguindo minha necessidade, preciso: 1 - Ter a foto dos produtos com sua descrição em uma pagina; 2 - Ao clicar no produto, abrir uma tela com mais detalhes, para o usuário escolher quantidade e demais itens conforme tipo de produto; 3 - Ao definir isso, ser direcionado a uma nova tela, onde carrega no carrinho o que o usuário quer comprar, e o formulário para dados do comprador. Podendo assim, escolher forma de pagamento e gerar o mesmo...(boleto ou cartões)... * O 1 e 2 já estão acontecendo na idéia que montei... * O 3 ainda está no desafio... * Quem puder compartilhar alguma idéia, pode baixar o código... - Com relação a prós e contras de integrações.. sim sabemos que existem inúmeras. - Procurei o fórum para compartilhar a idéia e encontrar quem já fez ou tem vontade de fazer, colaborar com a solução contribuindo com sua própria evolução de conhecimento e dos demais assim como eu.
  11. wneo

    Ajuda na integração PHP+Pagseguro

    Olá Guilherme! Vou ver essa opção enquanto tento desvendar o pagseguro... Quem tiver mais idéias pode compartilhar, ainda estou na busca da integração perfeita...
  12. wneo

    Ajuda na integração PHP+Pagseguro

    Sim, esse é o guia de integração oficial... Tem bastante coisa, mas como toda integração de API, tem seu nível de complexidade e muitas vezes demorado sendo a primeira utilização.. =/ Lendo esse guia e outros conteúdos, montei essa parte, que pode ser baixada aqui: https://github.com/WPG2000/pagseguro-transparente-php E sigo no desafio de fazer uma boa integração transparente, como mencionei no primeiro post... Seguindo minha necessidade, preciso: 1 - Ter a foto dos produtos com sua descrição em uma pagina; 2 - Ao clicar no produto, abrir uma tela com mais detalhes, para o usuário escolher quantidade e demais itens conforme tipo de produto; 3 - Ao definir isso, ser direcionado a uma nova tela, onde carrega no carrinho o que o usuário quer comprar, e o formulário para dados do comprador. Podendo assim, escolher forma de pagamento e gerar o mesmo...(boleto ou cartões)... * O 1 e 2 já estão acontecendo na idéia que montei... * O 3 ainda está no desafio... * Quem puder compartilhar alguma idéia, pode baixar o código...
  13. wneo

    Ajuda na integração PHP+Pagseguro

    Não.. Por isso que estou conversando com quem já fez ou tem vontade de ver como funciona.. Quem tiver vontade e algo para agregar pode postar aqui. Disponibilizei o código que já iniciei, para quem quiser ajudar poder visualizar a idéia.
  14. wneo

    Ajuda na integração PHP+Pagseguro

    Nesse o pagamento tbm não segue adiante...
  15. wneo

    Ajuda na integração PHP+Pagseguro

    Essas documentações possuem bastante trecho de código.. mas em um contexto fica bastante vazio... Vou colocar a idéia que estou montando: https://github.com/WPG2000/pagseguro-transparente-php Quem puder ajudar, extrai no localhost...
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.