Submitted by mathieuaz on
Bonjour à vous et merci d'avance pour votre aide. Voici ma situation, j'apprends à créer des modules, je prends des exemples sur internet simples pour afficher "helloworld", voici le code dans mon fichier .module:
/**
- Implementation of hook_menu().
*/
function helloworld_menu() {
$items = array();
$items['helloworld/sayhelloworld'] = array(
'title' => 'Hello World Test',
'page callback' => 'say_hello_world',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function say_hello_world() {
$vars = 'Hello World!';
return $vars;
}
Je vide les caches et quand je vais sur le lien helloworld/sayhelloworld, un message d'erreur AJAX s'affiche et je ne comprends pas pourquoi, je n'ai aucune idée de l'origine de l'erreur, voici le message :
erreur HTTP AJAX s'est produite.
Code de statut HTTP : 200
Informations de débogage ci-dessous.
Chemin : /drupalsite/edit/metadata
StatusText: OK
ResponseText : /**
- Implementation of hook_menu().
*/
MERCI ENCORE.
MENU_CALLBACK créé un appel
Permalien Soumis par Phili2pe le 3 Octobre, 2013 - 16:26
MENU_CALLBACK crée un appel ajax et ta fonction say_hello_world() retourne un string ça ne peut pas fonctionner.
Soit tu ne fais pas d'ajax et tu changes MENU_CALLBACK par MENU_LOCAL_TASK
Soit tu fais de l'ajax, tu laisses MENU_CALLBACK et tu changes ta fonction :
function say_hello_world() {
$a_command = array();
$a_command[] = ajax_command_html( '#un-id-qui-se-trouve-dans-ton-code-html', 'hello world");
ajax_deliver( array(
'#type' => 'ajax',
'#commands' => $a_command
));
}
Bonjour Phil2ipe, merci pour
Permalien Soumis par mathieuaz le 3 Octobre, 2013 - 17:16
Bonjour Phil2ipe, merci pour ta réponse rapide!
Je connais pas l'AJAX, j'ai pris ce code d'un tuto : http://akabia.fr/drupal-7-d%C3%A9veloppement-de-modules , j'essaie d'apprendre à faire un module, son utilité, comment l'utiliser et comment le faire apparaître.
J'ai changé ce que tu m'as dit, je n'ai plus l'erreur AJAX mais le code de mon module s'affiche toujours en haut de page :s et pourtant je suis à la lettre le tuto, si tu connais un bon site avec un bon tuto, fais m'en part s'il te plait.
Une très bonne solution est d
Permalien Soumis par Phili2pe le 4 Octobre, 2013 - 09:25
Une très bonne solution est d'installer le module : examples for developper que tu trouves sur drupal.org
En l'installant, tu ajoutes à Drupal une multitude de modules fonctionnels et commentés (en anglais)
Merci, je vais l'installer
Permalien Soumis par mathieuaz le 9 Octobre, 2013 - 14:33
Merci, je vais l'installer dès maintenant.
On s'est tous fait avoir sur
Permalien Soumis par gifad le 3 Octobre, 2013 - 19:45
On s'est tous fait avoir sur ce coup là,
contrairement à ce que tu pourrais penser, ce n'est pas parce que un fichier s'appelle machin.php qu'il va s'exécuter : en http, tout est par définition du html, c'est-à-dire du texte balisé, qui va s'afficher tel quel, après traitement des balises;
Il faut donc que ton module commence par la balise <?php pour que ce suit soit interprété comme du code php !
Un jour tu vas voir des templates (machin.tpl.php), où le html normal et le code php se mélagent plus ou moins harmonieusement...
Bonjour gifad, merci pour ton
Permalien Soumis par mathieuaz le 9 Octobre, 2013 - 15:42
Bonjour gifad, merci pour ton aide!En mettant la balise
, j'ai une page blanche du coup. Je ne sais plus quoi faire honnêtement..avec quel tuto tu as appris à creer les modules?
Sur les modules Drupal, le
Permalien Soumis par michael-emerya (non vérifié) le 9 Octobre, 2013 - 17:51
Sur les modules Drupal, le standard de programmation veut qu'on ne ferme pas la balise php en fin de fichier. Le laisser peut poser des erreurs d'en-tête, c'est probablement ce qui se passe ici et qui te donne cette page blanche.
Non plus, j'ai regardé avant
Permalien Soumis par mathieuaz le 10 Octobre, 2013 - 13:04
Non plus, j'ai regardé avant ta réponse dans les modules tout faits, il y avait que <?php, j'ai donc enlevé le ?> mais j'ai toujours un page blanche, le code m'a l'air juste pourtant, j'ai suivis les conseil de Phili2pe, le code s'affiche en haut de ma page même si je n'ai plus l'erreur AJAX..