logo

Paleta - Deixe colorido🎨

Palette — Construtor visual de páginas. Não precisa ser designer.

Demonstração ao vivo Baixar Palette

Scroll

Módulo Drupal WebForm. Criação de um formulário de pedido de produto

28/11/2019, by Ivan

Voltemos ao nosso catálogo de produtos, que criamos em um dos artigos anteriores. O catálogo está sendo preenchido com sucesso e está sendo exibido razoavelmente bem, mas fazer pedidos de produtos através de um formulário de contato é bastante inconveniente - você precisa copiar o nome, código do produto, depois colá-lo no formulário e escrever uma mensagem. Vamos criar um formulário que simplifica o processo de pedido. Para isso, precisaremos do módulo Webform, que serve para criar formulários através do Drupal. Através do formulário, transmitiremos o nome do produto e sua quantidade; se você precisar do código do produto, então por analogia, você também pode transmitir o código.

Baixe e instale o módulo Webform.

Após a instalação, deve aparecer um tipo de conteúdo Webform. Crie um conteúdo do tipo Webform, nomeie-o como Formulário de pedido de produto (ou como preferir). Após a criação, você será redirecionado para a página de configuração do material do formulário web.

Precisamos criar dois campos para o nome do produto e sua quantidade; para isso, precisaremos de dois campos de texto (textfields).

No campo de nome, você precisa escrever %get[product]

Drupal webform

No campo de preço, definiremos o valor padrão como "1".

Também adicionaremos um campo de texto para o e-mail e uma área de texto para desejos e preferências dos clientes.

%get[product] - análogo à variável php $_GET['product'], que obtém o valor da URL.

O formulário está pronto, agora precisamos criar um link para este formulário, e também adicionar um parâmetro de produto a este link, no qual o nome do produto será registrado. Vamos formatar este link como um bloco separado, que será colocado na parte inferior do nó de cada produto.

Para executar as operações seguintes, é necessário ativar o módulo integrado PHP filter, que permite inserir código PHP diretamente em um bloco ou material. Após ativar este módulo, deve aparecer um novo formato de entrada de código PHP.

Vamos criar um novo bloco e selecionar o formato de entrada do código PHP. No texto do bloco, inseriremos o seguinte

<a href="<?php print base_path(); ?>node/6?product=<?php print drupal_get_title(); ?>">encomendar produto</a>

, onde node/6 é o endereço do nó do formulário de pedido de produto.

A função drupal_get_title() retorna o título do nó; em nosso caso, o título do nó é o nome do produto. A função base_path() retorna o caminho para a raiz do site (por exemplo drupalbook.org/). Agora precisamos colocar o bloco na região de Conteúdo (Content). E definir a seguinte visibilidade do bloco no modo PHP (PHP mode):

$types['tovar'] = 1;
$match = false;
if ((arg(0) == 'node') && is_numeric(arg(1))) {
  $node = node_load(arg(1));
  $match = isset($types[$node->type]); }
  return $match;
}

Aqui "tovar" é o nome da máquina do tipo de conteúdo Produto.

Nosso formulário de pedido de produto está pronto.