web-dev-qa-db-fra.com

Comment ajouter un bouton ou un lien pour effectuer une action sur un nœud avec node_view?

Je me demande comment ajouter un bouton ou un lien pour effectuer une action de la fonction _create_node. Je comprends comment le faire sur l'écran d'édition du nœud, mais pas sur l'affichage.

Je veux un bouton de création de "nouvel élément" sur l'affichage du nœud. Je crée un module personnalisé pour créer le nouveau nœud, mais j'ai besoin d'un bouton pour l'appeler.

Aucune suggestion?

5
SoundCheese

Vous pouvez implémenter la hook_node_view() comme le code suivant:

function YOUR_MODULE_node_view($node, $view_mode, $langcode) {
  if ($node->type == 'CONTENT_TYPE_NAME') {
    $form = drupal_get_form('redirect_button_form');
    $node->content['redirect_button'] = $form;
 }
}

function redirect_button_form($form, &$form_submit) {
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('New Item'),
    );
    return $form;
}

function redirect_button_form_submit($form, &$form_state) {
    //here the path where you need to go
    $path = 'node/add/CONTENT_TYPE_NAME';
    drupal_goto($path);
}
7
Adrian Cid Almaguer

Pour ajouter un lien/bouton personnalisé sur l'affichage du nœud, essayez d'ajouter votre code dans le fichier tpl . Pour personnaliser l'affichage des nœuds, ajoutez votre code dans node.tpl.php.

Pour les conventions de dénomination tpl et plus de détails, veuillez vous référer

  1. Thématisation des nœuds par type de contenu.
  2. Drupal 7 Template (Theme Hook) Suggestions

J'espère que cela vous aidera.

2
Abin