web-dev-qa-db-fra.com

Comment créer un nouveau type de champ

Je voudrais créer un nouveau type de champ qui peut être attaché au contenu (c'est-à-dire un article) via l'interface d'administration via "gérer les champs" du type de contenu. Je ne suis pas sûr du processus et des crochets requis pour y parvenir.

À ce stade, j'aimerais que le champ ne soit rien de plus qu'un simple champ de texte. Jusqu'à présent, j'ai défini le domaine dans:

hook_field_info
hook_field_schema (in .install file)

De quels autres hooks ai-je besoin pour obtenir ceci: a) apparaissent dans les options de gestion des champs. b) apparaître dans l'éditeur de contenu pour le contenu auquel il a été appliqué.

Merci beaucoup

7
RobotEyes

Quand je l'ai fait il y a quelque temps, j'ai adapté l'excellent field_example module du Module Exemples qui est toujours le premier endroit à regarder, car il contient beaucoup de Drupal meilleures pratiques).

Comme ils le disent dans les commentaires du module:

     * Providing a field requires:
     * - Defining a field:
     *   - hook_field_info()
     *   - hook_field_schema()
     *   - hook_field_validate()
     *   - hook_field_is_empty()
     *
     * - Defining a formatter for the field (the portion that outputs the field for
     *   display):
     *   - hook_field_formatter_info()
     *   - hook_field_formatter_view()
     *
     * - Defining a widget for the edit form:
     *   - hook_field_widget_info()
     *   - hook_field_widget_form()

Donc, pas pour les timides, mais comme d'autres l'ont dit, toutes les informations sont là pour vous aider à démarrer.

11
bloke_zero

Il existe de nombreux tutoriels de blog qui expliquent étape par étape comment configurer un module qui crée un type de champ personnalisé. Outre les articles suggérés par Djouuuh, je pense que celui-ci décrit exactement la fonctionnalité (de base) que vous demandez (c'est-à-dire, juste un widgit avec un champ de texte).

0
Watergate