Comment envoyer des données HTTP POST / GET à Drupal?
par exemple: j'ai un formulaire html:
<form action="mydrupalcite.com" method="get">
<input type="text" name="title" />
</form>
comment puis-je obtenir les title
données de dans le module de réponses de drupal? (ou n'importe quel module?)
Je cherche la façon drupale de le faire (je suis relativement nouveau sur Drupal et comment cela fonctionne vraiment)
At-il quelque chose à voir avec le module Services?
Réponses:
L'API de formulaire de Drupal dispose d'une protection CSRF intégrée, donc l'envoi d'un formulaire à partir d'un domaine externe ne fonctionnera pas. Vous pouvez soit envisager de désactiver le CSRF (très mauvaise idée), soit, comme vous le suggérez, utiliser le module Services.
Il n'y a pas de mappage un à un entre le module de services et les formulaires sur le site, mais les modules implémentent des ressources pour certaines tâches à consommer à partir d'un client externe. Vous obtenez le nœud, l'utilisateur, le terme de taxonomie et probablement d'autres par défaut. Vous pouvez donc (par exemple) ajouter un nouveau nœud / utilisateur / terme, mais vous le faites en envoyant des requêtes xml / json / etc au serveur après vous être authentifié, et non en soumettant un formulaire en tant que tel.
Obtenir des données fonctionne de la même manière. Vous pouvez utiliser les Services pour cela, ou si vous pouvez gérer / n'avez pas besoin de votre propre authentification, voir la réponse d'indrock pour une bonne méthode.
Les services sont très extensibles, donc même si le module de réponses n'implémente pas de ressources, il est assez facile d'ajouter les vôtres qui encapsulent les fonctions API du module de réponses (ou de tout autre).
La documentation des services serait probablement un bon point de départ.
la source
Vous devrez d'abord créer une page (URL) dans Drupal pour obtenir ces paramètres. Vous pouvez le faire en implémentant
hook_menu()
, dans votre module personnalisé. Référez - vous ceci pour créer votre module personnalisé .Cela va créer une page sur votre site à l'url http://mydrupalsite.com/get_details
Maintenant, à partir de votre HTML, appelez comme
REMARQUE: selon la réponse de @ clive, je vous suggère de l'utiliser uniquement à des fins de développement / pédagogique. Cela pourrait avoir des implications sur la sécurité.
la source