Como envio dados HTTP POST / GET para o drupal?
por exemplo: eu tenho um formulário html:
<form action="mydrupalcite.com" method="get">
<input type="text" name="title" />
</form>
como faço para colocar os title
dados no módulo de respostas do drupal? (ou qualquer módulo?)
Estou procurando a maneira drupal de fazer isso (eu sou relativamente novo no Drupal e como ele realmente funciona)
Isso tem algo a ver com o módulo Serviços?
Respostas:
A API do formulário do Drupal possui proteção CSRF integrada, portanto, o envio de um formulário de um domínio externo não funcionará. Você pode desativar a CSRF (péssima ideia) ou, como sugere, usar o módulo Serviços.
Não existe um mapeamento individual entre o módulo de serviços e os formulários no site, em vez dos módulos implementarem recursos para determinadas tarefas serem consumidas de um cliente externo. Você obtém nó, usuário, termo de taxonomia e provavelmente outros por padrão. Portanto, você pode (por exemplo) adicionar um novo nó / usuário / termo, mas enviando solicitações xml / json / etc ao servidor após a autenticação, e não enviando um formulário como tal.
A obtenção de dados funciona da mesma maneira. Você pode usar os Serviços para fazer isso ou, se conseguir gerenciar / não precisar de sua própria autenticação, consulte a resposta da indrock para um bom método.
Os serviços são muito extensíveis; portanto, mesmo que o módulo de respostas não implemente recursos, é uma tarefa muito fácil adicionar suas próprias funções que envolvem as funções da API a partir do módulo de respostas (ou qualquer outro).
A documentação dos serviços provavelmente seria um bom ponto de partida.
fonte
Você primeiro precisará criar uma página (URL) no Drupal para obter esses parâmetros. Você pode fazer isso implementando
hook_menu()
, em seu módulo personalizado. Consulte isso para criar seu módulo personalizado .Isso criará uma página no seu site em url http://mydrupalsite.com/get_details
Agora, no seu HTML, faça a chamada como
NOTA: Conforme a resposta do @ clive, sugiro que você o use apenas para fins educacionais / de desenvolvimento. Isso pode ter implicações de segurança.
fonte