2010-06-30 5 views
1

J'ai une vue qui liste mes entrées de table de module. Quelle est la manière la plus élégante de joindre un formulaire sous la vue pour ajouter un enregistrement? Waht J'essaie de ne savoir est:vues Drupal ajouter un formulaire pour ajouter un enregistrement

  1. J'ai créé formulaire dédié dans mon module:

    function my_module_form_add_record($form_state) { 
    form fields..... 
    

    }

  2. J'ai ajouté au fichier thème vue:

    $ add_form = drupal_get_form ('my_module_form_add_record'); imprimer $ add_form;

Mais je n'aime pas cette solution pour au moins 2 raisons:

  1. Je ne fonctionne pas ...

2. Même si cela a fonctionné - il est dépendait sur le fichier de thème! Donc, si je change le thème - la fonctionnalité est écrasée. Je voudrais trouver une solution plus élégante pour attacher la forme du module personnalisé à la vue.

Je connais l'existence du module "Views Attach" mais il n'a pas la possibilité d'ajouter des formulaires personnalisés. Je connais aussi l'existence du formulaire Views Embedded (et je l'utilise) mais ce n'est utile que si vous voulez ajouter un formulaire à chaque ligne.

Semble le doit être une solution pour ajouter un enregistrement à partir de la page d'affichage! Merci de votre aide.

Répondre

1

vous pouvez utiliser hook_views_pre_render:

Ce crochet est appelé juste avant le processus de rendu. La requête a été exécutée et la phase pre_render() a déjà eu lieu pour les gestionnaires, donc toutes les données devraient être disponibles.

L'ajout de la sortie à la vue peut être accompli en plaçant du texte dans $ view-> attachment_before et $ view-> attachment_after. Vous pouvez modifier le contenu en modifiant les éléments de $ view-> result.

+0

Merci, mais est-ce un crochet de modèle ou un crochet de module? – Lukasz

+0

En regardant le code des vues, il semble que ce soit les deux. –

+0

Mise à jour .. vous avez raison. Je vous remercie. J'ai joué avec ce hook dans le fichier template.php en premier donc j'ai supposé que c'était seulement un hook de thème. Je n'étais pas au courant jusqu'à présent, les hameçons peuvent être à la fois thème et module. Merci pour cela aussi. – Lukasz

Questions connexes