Arquivo da categoria: Programação

Enviando dados via POST com file_get_contents() em PHP

A função file_get_contents() é utilizada para obter dados de arquivos e URLs.  Através dela, também é possível enviar dados via POST para uma página web e então receber o resultado desta página.

Para isto, basta utilizar o terceiro parâmetro da função. O terceiro parâmetro deve ser um stream de contexto que pode ser criado através da função stream_context_create().

Primeiro, vamos criar a query HTTP que será enviada por POST:

Continue lendo

Exemplo de pilha em C

Neste post trago a vocês um código fonte em C que exemplifica o conceito da estrutura de dados pilha. O arquivo possui funções para as duas operações básicas da pilha: empilhar e desempilhar. O código está todo comentado para facilitar o entendimento.

O arquivo fonte pode ser baixado AQUI.

Até a próxima 😉

Descobrindo o sistema operacional através do PHP

O PHP possui uma constante chamada PHP_OS que contém o nome do sistema operacional que está rodando a linguagem. Para descobrir qual sistema está rodando o script, basta exibir o conteúdo desta constante:

<?php echo PHP_OS; ?>

E o resultado será algo parecido com isto (dependendo do sistema operacional):

Darwin

Alguns dos valores possíveis são:

  • WINNT
  • WIN32
  • Linux
  • FreeBSD
  • OpenBSD
  • Darwin

Até a próxima 😉

Alterando o status de um produto via código no Magento

Neste post vou mostrar a vocês como alterar o habilitar/desabilitar um produto via código no Magento. Vamos supor que você esteja trabalhando em um controller. Vamos aos passos:

Primeiro, precisamos carregar o produto que desejamos alterar o status.

$product = Mage::getModel('catalog/product')->loadByAttribute('sku', '1234567890');

Onde 1234567890 é o SKU do produto. Após isto, vamos alterar o status do produto:

Continue lendo

Script para remover arquivos .DS_Store

Os arquivos .DS_Store são arquivos criados pelos sistemas Mac OS para armazenar informações sobre o diretório em que este arquivo se encontra que serão utilizadas pelo Finder (gerenciador de arquivos dos sistemas Mac). Porém este arquivo não tem muita utilidade em outros sistemas. É para isto que o script delete-dssstore.py serve. Ele simplesmente deleta recursivamente os arquivos .DS_Store de uma pasta.

Seu uso é muito simples, basta chamar o arquivo via linha de comando e passar o diretório desejado como parâmetro:

Continue lendo

Utilizando o Local Storage do HTML 5

HTML5_Logo_128Neste post vou mostrar pra vocês como utilizar o Local Storage, uma característica muito útil e interessante adicionada na versão 5 do HTML.

O Local Storage é um recurso que permite armazenar dados no computador do usuário que não são perdidos caso o usuário feche o navegador, através de JavaScript. É algo similar aos cookies, porém com suporte a um maior volume de dados.

A escrita e leitura de dados é feita através de chave e valor através do objeto localStorage. Vamos então gravar um dado no objeto localStorage:

Continue lendo

Formulários e CSRF no Magento

1364931728_Cart_by_Artdesigner.lvO Magento utiliza em seus formulários uma chave que serve de proteção contra ataques do tipo CSRF. Portanto se for necessário enviar um formulário para o Magento e este não tiver esta chave atualizada, o formulário não é aceito. Para obter esta chave, utilize o comando no controlador:

$formKey = Mage::getSingleton('core/session')->getFormKey();

Após obtida, esta chave deve ser adicionada ao formulário através de um campo do tipo hidden com o nome de form_key:

$html_campo_hidden = '<input name="form_key" type="hidden" value="' . $formKey . '">';

Pronto, agora basta adicionar este HTML ao seu formulário e ele já será aceito pelo Magento.

Até a próxima 😉

Exibindo mensagens de erro na administração do Magento

Quando estamos desenvolvendo um módulo para o Magento, precisamos certas vezes exibir uma mensagem de erro para o usuário. A forma mais fácil de fazer isto é adicionando o erro na sessão. Para isto, basta chamar o seguinte comando no controlador na qual deseja gerar o erro:

$this->_getSession()->addError('Mensagem de erro!');

Pronto, após isto sua mensagem de erro já poderá ser exibida no layout da administração do Magento.

Captura de tela 2013-04-02 às 11.19.23

(Este post foi baseado na versão 1.7.0.0 do Magento)

Até a próxima 😉

Criando blocos diretamente nos controladores do Magento

1364931728_Cart_by_Artdesigner.lvCriar um bloco no Magento é uma tarefa trabalhosa, sendo que muitas vezes precisamos de algo rápido na qual não vale a pena passar por todo o trabalho de criação de um bloco.  Podemos então criar um bloco diretamente no controlador e adicionar HTML nele. Para isto, basta utilizar os seguintes comandos:

$this->loadLayout();

$block = $this->getLayout()

->createBlock('core/text', 'test-block')

->setText('<h1>Alo Mundo!</h1>');

$this->_addContent($block);

$this->renderLayout();

Pronto, nosso bloco está criado e com HTML dentro. Com os comandos acima carregamos o layout, adicionamos o bloco e por fim renderizamos o layout.

(Este post foi baseado na versão 1.7.0.0 do Magento)

Até a próxima 😉

Criando um CRUD com o bake do CakePHP

cakephp_logoNeste pequeno tutorial vou mostrar como criar um sistema CRUD (Create, Read, Update, Delete) utilizando a ferramenta bake disponível no framework CakePHP.

O CakePHP é um framework de desenvolvimento rápido para PHP. Já o bake é um utilitário presente no CakePHP capaz de gerar códigos de forma rápida, eliminando assim o trabalho chato árduo de criar CRUDs.

Vamos utilizar a versão 2.3.1 e vamos partir do princípio que você já tenha o CakePHP instalado e funcionado. Vamos utilizar também o MySQL 5.5.

Continue lendo