J’ai trouvé différentes versions sur internet pour appeler un formulaire de création de node sur drupal 6, beaucoup ne marchant pas toujours. J’ai donc opté pour le code suivant, avec succès, sur un site. Je n’ai pas testé ce code dans toutes les configurations possibles je ne sais donc pas si il fonctionne dans toutes les conditions.
<?php
global $user;
// quel type de node souhaitez vous ajouter ? mettre le nom machine
$type = 'page';
// sans cette inclusion, j'obtiens un message d'erreur. Quelqu'un sait pourquoi ?
include_once('modules/node/node.pages.inc');
// Il faut certaines informations de base pour afficher un formulaire d'ajout
$node = array(
'uid' => $user->uid,
'name' => (isset($user->name) ? $user->name : ''),
'type' => $type,
'language' => ''
);
print drupal_get_form($type .'_node_form', $node);
?>Pour plus de facilité on pourrait packager tout ça dans une petite fonction dans un module que l’on pourrait appeler facilement de n’importe où :
<?php
function afficher_formulaire_node($type){
include_once('modules/node/node.pages.inc');
global $user;
$node = array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => $type, 'language' => '');
return drupal_get_form($type .'_node_form', $node);
}
?>Ensuite il suffira de marquer par exemple dans un bloc (format d’entrée php) :
<?php
print afficher_formulaire_node('page');
?>pour afficher le formulaire d’ajout de notre type de contenu.
- Version imprimable
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
